Local private network에서 staking 설정

안녕하세요. 이 포럼에 처음 참여하는군요.

CN 하나가 포함된 local private network을 구성하고, 여기에서 staking과 delegation 등을 시험해 보려고 합니다. 이를 위한 안내 문서나 가이드가 될 만한 예제가 있을까요? Local private network 구성은 GitHub - klaytn/local-klaytn-deploy 에 나와 있는 것을 참조하려고 하는데 staking에 관련된 내용은 잘 못 찾겠더군요. 도움 주시면 감사하겠습니다!

감사합니다.

안녕하세요.
staking을 시험해본다는게 어떤 의미인지 조금 더 자세하게 설명해주실 수 있으실까요?
local network에서 임의의 staking 서비스를 띄우고 테스트해보고 싶으신건지, 혹은 cnstaking 관련 세팅을 하고싶으신건지 등등을 명확하게 말씀해주시면 감사하겠습니다.

제가 Klaytn 에서의 staking 관련한 지식이 부족해서 질문이 좀 부실할 수 있습니다.

일단 해 보고 싶은 것이 무엇인지 말씀드리면, local network에서 staking이 되어 있는 consensus node를 돌리고 다른 계정에서 이 노드에게 delegation해서 reward를 나눠 받는 상황을 만들어보는 것입니다. 제가 이해하기로는 CN으로 참여하기 위해서는 CnStaking contract가 이 노드를 위해 deploy되어 있어야 하는 것 같습니다. 그런데 이 contract를 어떻게 deploy 할 수 있는지에 대한 정보가 어디 있는지 잘 모르겠습니다. delegation을 받는 것은 추가 contract를 돌려야 하는 것 같은데 이건 일단 나중에 하더라도 우선 cn contract를 올리고 stake 되는 양을 늘리고 줄이고 reward를 회수하는 과정을 진행해 보고 싶습니다. local-klaytn-deploy의 예제에서는 최초 세팅된 기본 노드가 CN으로 이미 설정돼 있는 듯 한데 어떻게 이게 설정되었는지 잘 모르겠습니다. genesis.json에 지정돼 있는가를 봐도 딱히 관련 정보는 찾질 못하겠습니다.

CNstaking contract를 deploy하고 관련 테스트를 해보시고 싶은 거라면 해당 리포의 스크립트를 참조하시면 될것 같습니다.

안녕하세요. CnStaking contract를 deploy하고 나면 AddressBook contract에 이 contract를 등록해야 하는 것으로 보입니다. 그런데 cn-staking-contract-tests repo의 예제에서는 이 과정은 빠져 있는 듯 합니다. 그리고 실행시 로그를 보면 다음과 같은 메시지가 있습니다.

The addressBook is not yet activated. Use empty stakingInfo reason=“incomplete node information from AddressBook”

사이드체인에서 카운실을 추가/제거하는 방법 - GenieKim 님의 게시물 #7 의 포스트를 읽어 보면 AddressBook contract에 constructContract method와 submitActivateAddressBook method를 호출하라고 되어 있는데 klaytn repo의 AddressBook.sol을 보면 constructContract method는 하드코딩된 계정(0x88bb3838aa0a140aCb73EEb3d4B25a8D3aFD58D4)으로부터 tx를 날려야 동작하도록 돼 있습니다. 기타 다른 method들은 admin이 아니라서 동작하지 않는군요. contructContract 통해서 admin을 등록해야 그 다음 무언가를 할 수 있는 것 같습니다. AddressBook.sol을 수정하여 하드코딩된 계정을 private key를 알고 있는 다른 계정으로 바꿔치기 하고 solc로 컴파일하여 genesis.json에 넣고 실행하면 될까요? solc 0.4.24로 컴파일해 보면 bytecode 사이즈도 차이가 나고 내용도 얼추 보면 꽤 다릅니다.