망해서 첨부터 다시..

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