망해서 첨부터 다시..
duli, duli1 폴더 삭제, key들, genesis만 남겨둠
제네시스를 이용해 네트워크를 초기화한다.
geth --datadir duli --networkid 7019 init genesis.json
Successfully wrote genesis state..
만든 키들을 옮겨준다.
이걸 실행한다.
geth --datadir duli --networkid 7019
//
이제 prysm을 실행한다.
./prysm.sh beacon-chain --execution-endpoint=/home/lsj/eth_node/go-ethereum/duli1/geth.ipc --prater --jwt-secret=/home/lsj/eth_node/go-ethereum/duli1/geth/jwtsecret --suggested-fee-recipient=0xA9d64BA1243fbEAB5679bBdC5925D8b57e15EA1E --chain-id 7019
connected to new endpoint
//
geth attach /home/lsj/eth_node/go-ethereum/duli/geth.ipc
attach 실행
admin.nodeInfo
{
enode: "enode://5fcf02d4b35162e1700dc78ecdcf60a219483e5616891ada1d93e844b66c0b01f115b44d2e5b0b39c8e6aedddb1efe8240ddca5771c8f205a89a4cb5047dfaf2@211.210.219.90:30303",
enr: "enr:-KO4QAOwryDyHxl_3-FoTk7uVTurt2wOxuywHalLFTtyHMmOUH-C_vYSY_Ig_FgzxvcnVLA_ltNMCBcyKxF9s1F7RkyGAYSnp2ETg2V0aMfGhBAXYtCAgmlkgnY0gmlwhNPS21qJc2VjcDI1NmsxoQJfzwLUs1Fi4XANx47Nz2CiGUg-VhaJGtodk-hEtmwLAYRzbmFwwIN0Y3CCdl-DdWRwgnZf",
id: "2220f92ed2be61686081c6ee94f99103db3c62dcf481dd1b86549f05d4f3b4ff",
ip: "211.210.219.90",
listenAddr: "[::]:30303",
name: "Geth/v1.10.26-stable-e5eb32ac/linux-amd64/go1.18.5",
ports: {
discovery: 30303,
listener: 30303
},
protocols: {
eth: {
config: {
berlinBlock: 0,
byzantiumBlock: 0,
chainId: 7019,
clique: {...},
constantinopleBlock: 0,
eip150Block: 0,
eip150Hash: "0x0000000000000000000000000000000000000000000000000000000000000000",
eip155Block: 0,
eip158Block: 0,
homesteadBlock: 0,
istanbulBlock: 0,
londonBlock: 0,
petersburgBlock: 0,
terminalTotalDifficulty: 10790000
},
difficulty: 1,
genesis: "0x06e05535071275819c1c40a9b0424f47585a0a7ed30a0d17d097cbc523ef3f1e",
head: "0x06e05535071275819c1c40a9b0424f47585a0a7ed30a0d17d097cbc523ef3f1e",
network: 7019
},
snap: {}
}
}
//
geth --datadir duli --networkid 7019
실행 한 번 해보고 p2p network 셋업으로 넘어간다.
//
이건 bootstrap node가 필요하다. 이는 다른 노드들이 네트워크에 참여할 때
엔트리 포인트가 되어주는 노드이다.
우선 ip address를 알아야 한다.
ifconfig : 192.168.0.180
bootstrap node는 --nat flag를 사용해 세팅할 수 있다.
geth --datadir duli --networkid 7019 --nat extip:192.168.0.180
아 이걸 해줘야 하나보다..
geth attach --exec admin.nodeInfo.enr duli/geth.ipc
치면 enr 값이 드디어 나옴..
//
이제 다른 노드 만든다.
// 초기 signer는 2개 이상 줄 수 있는가? 배열로 주면?
POS로 전환 시켜볼것..
staking은 어떻게 하는건지.. 방법부터 찾는다.
testnet은 pos로 전환 안되도록..?
// 아마 ttd를 지우면 되지 않을까?
POW.. POA..? >> Staking >> POS
//
일단 ttd 에 블록 난이도가 도달하면 pos로 전환이 되는지 확인하기 위해
제네시스에서 초기 난이도를 ttd-1 로 바꾸고 마이닝 해보기로 함.
genesis2.json을 생성하고, difficulty를 10789999로 바꾸고 마이닝 해보자..
chainId : 3476
duli2 네트워크를 만들거임..
geth --datadir duli2 --miner.etherbase 0xc4b0a55aab26f6bdd78fe5d2db4eaef6bba13c58 --unlock 0xc4b0a55aab26f6bdd78fe5d2db4eaef6bba13c58
생각보다 빨리 채굴이 된 것 같다. ttd를 넘어감.. 근데 그 후로 마이닝이 안되는데..
뭐지..?
ERROR powchain: Unable to process past deposit contract logs, perhaps your execution client is not fully synced error=no contract code at given address
이런 메시지는 예전에도 떳지만 아무튼 계속 뜸..
//
개발자 문서를 뒤져서 staking을 어떻게 하는지 찾아보기로 함
staking.md