사용가이드
준비과정 :
OS : 우분투 리눅스 기반의 개발 및 설치
자바 : JDK 1.8버전
웹서버 : 톰켓 8.5버전 이상
도커 : docker, docker compose 기본설치
개발도구 : 이클립스, Spring 4.0
개발자는 개발 환경을 이용하여 댑을 제작하고, 배포를 할 수 있습니다.
체인과 런처는 도커를 실행함으로써 쉽게 설치 및 운영이 가능합니다.
블록체인설치, 런처설치, 서비스등록 및 실행, 배포용 도커이미지만들기, 배포하기 과정을 진행하도록 하겠습니다.
자세한 내용은 동영상() 을 통해서 보실 수 있습니다.
※ 블록체인설치
1. http://github.com/nodehmoe-project/ 제공하는 nodehome-blockchain 를 다운로드합니다.
2. 실행파일 ./nodehome-blockchain.sh start 명령을 실행합니다. (중지는 stop 옵션입니다.)
3. http://github.com/nodehmoe-project/nodehome-blockchain/READMO.md 내용중에 Query to blockchain network 쿼리문을 복사해서 실행해 줍니다.
curl --header "Content-Type: application/json" --request POST --data '{"chaincode":"ecchain","query_type":"query","func_args":["PID","10000"],"func_name":"version"}' http://127.0.0.1:8050/chaincode_query
결과값이 {"ec":0,"pid":"PID","value":{"ver":"0.3.8"},"ref":"OK"} 정상적으로 나올때까지 계속 실행해줍니다.
curl --header "Content-Type: application/json" --request POST --data '{"chaincode":"ecchain","query_type":"query","func_args":["PID","10000"],"func_name":"version"}' http://127.0.0.1:8050/chaincode_query
결과값이 {"ec":0,"pid":"PID","value":{"ver":"0.3.8"},"ref":"OK"} 정상적으로 나올때까지 계속 실행해줍니다.
4. docker ps 명령으로 체인이 정상적으로 설치 되었는지 확인합니다.
블록체인 로그 확인은 docker exec -it CANTAINER ID bash 실행합니다.
pm2 logs all 명령어를 실행합니다.
블록체인 로그 확인은 docker exec -it CANTAINER ID bash 실행합니다.
pm2 logs all 명령어를 실행합니다.
※ 런처설치
1. http://github.com/nodehmoe-project/ 제공하는 nodehome-launcher 를 다운로드합니다.
2. nodehome-launcher/launcher-debug-runner/config/hosts/hosts_nhlauncher.properties 편집모드로 들어갑니다.
127.0.0.1 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
127.0.0.1 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
3. nodehome-launcher/launcher-debug-runner/config/hosts/na_hosts.properties 편집모드로 들어갑니다.
127.0.0.1 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
127.0.0.1 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
4. nodehome-launcher/launcher-debug-runner/config/globals.properties 편집모드로 들어갑니다.
project_seedHost = http://127.0.0.1:7080 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
project_seedHost = http://127.0.0.1:7080 => 자신의 로컬 IP 로 변경 및 세이브를 합니다.
5. 실행파일 ./docker-run.sh start 명령을 실행합니다. (중지는 stop 옵션입니다.)
6. docker ps 명령으로 런처가 정상적으로 설치 되었는지 확인합니다.
※ 앱다운르도 및 DevNet 모드 접속
1. 노드홈 홈페이지(nodehoem.io) OR
구글플레이스토어에서 nodehome 키워드 입력 후 앱 다운로드 및 설치를 진행합니다.
구글플레이스토어에서 nodehome 키워드 입력 후 앱 다운로드 및 설치를 진행합니다.
2. 앱을 실행 후 우측 상단 메뉴 클릭 후 설정 메뉴 클릭합니다.
3. 버전을 7번 클릭하시어 DevNet 으로 활성화 시켜줍니다. 하단에 시드호스트 목록이 생깁니다.
4. 시드호스트를 클릭 후 본인이 설치한 런처서버의 주소를 http://개발서비IP:7080 입력합니다.
5. Network ID 를 DEVNET 선택 후 뒤로가기를 클릭합니다.
6. DevNet 로 접속되었습니다. 회원가입 버튼을 클릭 후 DevNet 회원가입을 진행합니다.
※ 로그인 및 지갑선택
1. 로그인을 합니다.
2. 최초 접속시 본인의 지갑을 체크 후 지갑선택 클릭합니다.
3. 잔고 확인 후 우측 상단 메뉴 클릭 후 서비스 종료를 클릭합니다.
※ 무료충전
1. 런처화면 우측 상단 메뉴 클릭 후 무료충전 메뉴 클릭합니다.
2. request 2,000,000BON from faucet 버튼을 클릭합니다.
3. 런처화면 우측 상단 메뉴 클릭 후 지갑 서비스 메뉴 클릭 후 잔고를 확인합니다.
※ 이클립스 HelloWorld 프로젝트 생성하기
1. http://github.com/nodehmoe-project/ 제공하는 nodehome-svm 를 다운로드합니다.
2. 이클립스에서 다운로드 받은 SVM을 Import 해준다.
Import 된 nodehome-svm 프로젝트를 Rename 하여 helloworld 로 변경해준다.
Import 된 nodehome-svm 프로젝트를 Rename 하여 helloworld 로 변경해준다.
※ 서비스 추가 및 helloworld 에 발급받은 서비스ID 적용하기
1. 런처화면 우측 상단 메뉴 클릭 후 새서비스추가 메뉴 클릭합니다.
2. 원하시는 서비스명을 기재후 서비스등록 버튼을 클릭합니다.
3. 서비스 추가가 완료되었습니다. 서비스ID를 기억합니다.
4. WEB-INF/hosts/ 폴더안에 파일 2개의 파일명을 발급받으신 서비스 아이디값을 변경해줍니다.
host_nodehome.properties
wallet_nodehome.properties
host_nodehome.properties
wallet_nodehome.properties
5. 자바 src/resources/props/ 패키지안에 globals.properties 파일안의 project_serviceid 내용을 수정합니다.
project_serviceid = nodehome 내용을 그림처럼 변경해 줍니다.
Tomcat Restart 해줍니다.
project_serviceid = nodehome 내용을 그림처럼 변경해 줍니다.
Tomcat Restart 해줍니다.
6. 브라우저에서 http://자신의ip:8080/setup 실행합니다.
Host Wallet ID 에는 추후 운영시 수수료 받을 지갑 주소를 입력 후 Set Wallet ID 버튼을 클릭해 줍니다.
Host List 에는 자신이 서비스를 운영 할 호스트 서버의 도메인과 IP주소를 입력 후 My Host Add Request and List Update 버튼을 클릭해 줍니다.
Host Wallet ID 에는 추후 운영시 수수료 받을 지갑 주소를 입력 후 Set Wallet ID 버튼을 클릭해 줍니다.
Host List 에는 자신이 서비스를 운영 할 호스트 서버의 도메인과 IP주소를 입력 후 My Host Add Request and List Update 버튼을 클릭해 줍니다.
7. 런처화면 우측 상단 메뉴 클릭 후 서비스검색 메뉴 클릭합니다.
실행한 hellowrold 서비스가 보여지며, 선택 후 등록 버튼을 클릭해 줍니다.
실행한 hellowrold 서비스가 보여지며, 선택 후 등록 버튼을 클릭해 줍니다.
8. 등록된 helloworld 서비스가 보여집니다. helloworld 서비스를 클릭합니다.
9. 정상적으로 helloworld 돌아갑니다.
※ 배포용 도커이미지만들기
1. http://github.com/nodehmoe-project/ 제공하는 nodehome-service-docker 를 다운로드합니다.
2. helloworld 배표용 소스를 복사하여 nodehome-service-docker/source/ 폴더안에 붙여넣기 합니다.
bin/class 파일을 WEB-INF/classes/폴더안에 붙여넣기 합니다.
bin/class 파일을 WEB-INF/classes/폴더안에 붙여넣기 합니다.
3. nodehome-service-docker/docker-build.sh 파일을 편집모드로 진입합니다.
docker rmi {docker account}/{image name}:0.1
docker build -t {docker account}/{image name}:0.1
이 부분을 자신의 계정과 도커이미지명으로 변경해 줍니다.
ex) {docker account}/{image name}:0.1
nodehome/helloworld:0.1 이렇게 변경해 줍니다.
docker rmi {docker account}/{image name}:0.1
docker build -t {docker account}/{image name}:0.1
이 부분을 자신의 계정과 도커이미지명으로 변경해 줍니다.
ex) {docker account}/{image name}:0.1
nodehome/helloworld:0.1 이렇게 변경해 줍니다.
4. nodehome-service-docker/docker-compose.sh 파일을 편집모드로 진입합니다.
image: {docker account}/{image name}:0.1
이 부분을 자신의 계정과 도커이미지명으로 변경해 줍니다.
ex) {docker account}/{image name}:0.1
nodehome/helloworld:0.1 이렇게 변경해 줍니다.
image: {docker account}/{image name}:0.1
이 부분을 자신의 계정과 도커이미지명으로 변경해 줍니다.
ex) {docker account}/{image name}:0.1
nodehome/helloworld:0.1 이렇게 변경해 줍니다.
5. nodehome-service-docker/docker-build.sh 실행합니다.
docker images 명령으로 이미지가 정상적으로 만들어졌는지 확인합니다.
docker login 명령으로 로그인을 하시고 docker push 명령을 통해서 본인의 hub.docker.com 으로 업로드를 진행합니다.
docker images 명령으로 이미지가 정상적으로 만들어졌는지 확인합니다.
docker login 명령으로 로그인을 하시고 docker push 명령을 통해서 본인의 hub.docker.com 으로 업로드를 진행합니다.
6. 본인의 hub.docker.com 통해서 이미지가 정상적으로 올라갔는지 확인합니다.
※ 배포하기
1. Build 시 생성된 nodehome-service-docker/service-runner 폴더를 자신의 Cloud, DockerHub, Github, FileServier 등를 통해서 운영자들이 운영할 수 있게 업로드 및 공지해 줍니다.