hdac 테스트넷을 사용해서 payment 오류를 수정/테스트를 하려던 차에
hdac이 공개한 소스코드를 통해, hdac은 원래 멀티체인 소스코드 기반이라는 것을 알게 되었고,
멀티체인은 private 블록체인을 매우 손쉽게 구성할 수 있다는 사실을 알게되었습니다.
다음은 멀티체인을 이용하여 private 블록체인을 구성하는 방법입니다.
https://www.multichain.com/getting-started/
1단계 - 노드 1 구성
위 문서 및 hdacd -help 명령을 통해 여러 힌트를 얻어서 프라이빗 블록체인을 구성하였습니다.
0. 노드의 데이터를 저장할 디렉토리를 하나 생성. 예) node-alice => mkdir node-alice
1. hdac-util clone hdac twice -datadir=./node-alice # twice 라는 이름의 프라이빗 블록체인을 hdac 블록체인의 기본 설정을 copy해서 만듦.
이렇게 하면 node-alice/twice/params.data 파일이 얻어집니다. => params.dat 을 조금 변경해줍니다.
2. 지갑체계를 hdac과 동일하게 만듦. (이렇게 하지 않아도 상관 없으나, stratum-pool 소스를 수정해 줘야 해서 귀찮아집니다.
- address-pubkeyhash-version = 28
- address-scripthash-version = 08
- private-key-version = 83
3. 난이도 조정.
- pow-minimum-bits = 8 # 22로 되어있더 것을 8로 고쳐줍니다. (난이도를 낮춰서 테스트 채굴을 손쉽게 하기 위함. 8로 하면 난이도가 충분히 낮아서 블록 발견이 잘 됩니다~
4. 포트번호 선택 8822, 8823과 충돌하지 않게 바꿔줍니다.
- default-network-port = 9823 # 기본값 8823
- default-rpc-port = 9822 # 기본값 8822
5. 설정을 hdac.conf에 써준다.
node-alice/hdac.conf 파일을 고쳐줍니다.
~~~~
rpcuser=user rpcpassword=pass port=9823 # 이 값이 우선적임 rpcport=9822 # 이 값이 params.data의 포트값보다 우선됨. rpcbind=0.0.0.0 rpcallowip=::/0 discover=0 server=1
~~~~
5. 노드 실행
hdacd twice -daemon -rpcuser=xxxx -rpcpassword=yyyy -datadir=./node-alice
6. 노드 테스트
hdac-cli twice -rpcport=9822 -rpcuser=xxxx -rpcpassword=yyyy -datadir=./node-alice
- 접속해서 지갑을 만들어본다거나 (getnewaddress) getdifficulty 등의 값이 잘 나오는지 확인합니다.
7. 문제가 생기면 => params.dat를 지우고 다시 합니다.
2단계 : 노드 2 추가
1단계 노드를 이미 구성해서 genesis 블록을 생성했으므로, 단순히 노드를 추가하면 됩니다.
0. node-bob/hdac.conf 파일 작성
~~~~~
rpcuser=user rpcpassword=pass port=10833 # 원하는 두번째 세트의 번호 rpcport=10832 # 원하는 두번째 세트의 번호 rpcbind=0.0.0.0 rpcallowip=::/0 discover=0 server=1
~~~~~~
첫번째 노드의 IP가 192.168.0.xx라면,
$ hdacd twice@192.168.0.xx:9823 -rpcuser=xxxx -rpcpassword=yyyy -daemon -datadir=./node-bob
3단계 : 테스트용 pool 노드 추가
0. node-pool/hdac.conf 작성
~~~~
rpcuser=user rpcpassword=pass port=10843 # 실제로 사용될 포트 rpcport=10842 # 실제로 사용될 노드 rpc 포트 => nomp 풀 세팅에 들어감. rpcbind=0.0.0.0 rpcallowip=::/0 discover=0 server=1 addnode=192.168.0.20:9823 # 첫번째 노드 port addnode=192.168.0.20:10833 # 두번째 노드 port
1. 첫번째 노드에 붙입니다.
$ hdacd twice@192.168.0.xx:9823 -rpcuser=xxxx -rpcpassword=yyyy -daemon -datadir=./node-pool
2. 풀 노드로 접속해서 지갑 주소 확인 및 필요한 지갑 생성
~~~~~~~
이상, private 블록체인을 구성하는 방법을 알아보았습니다
위의 방식을 통해서 private 블록체인을 구성하여, payment 문제를 확인 및 수정완료하였습니다~
https://www.ddengle.com/mining/8106724 참조.