kaistshadow / blockchain-sim

Scalable blockchain simulator/emulator running on shadow simulator
MIT License
9 stars 1 forks source link

rel 0.2.0 - peer connection #265

Closed tkdlqm2 closed 3 years ago

tkdlqm2 commented 3 years ago
peer connection status : 

     node : 1.0.0.1  ---------- match rate : 2/4 
             - 1.1.0.1 
             - 1.4.0.1 
     node : 1.1.0.1  ---------- match rate : 2/4 
             - 1.0.0.1 
             - 1.2.0.1 
     node : 1.2.0.1  ---------- match rate : 2/4 
             - 1.1.0.1 
             - 1.3.0.1 
     node : 1.3.0.1  ---------- match rate : 2/4 
             - 1.2.0.1 
             - 1.4.0.1 
     node : 1.4.0.1  ---------- match rate : 2/4 
             - 1.0.0.1 
             - 1.3.0.1 

위에 로그는 5개의 노드를 리니어 토폴로지 형식으로 시뮬레이션 했을 시, peer connection의 결과 로그임. 시뮬레이션 시간을 15초로 짧게 잡아서 peer connection 이 "addnode" rpc reqeust로 명시한 peer들 끼리 연결이 이루어짐. 시뮬레이션 시간을 길게 잡고 시뮬레이션할 시, peer connection match rate이 커질 것임.

---------------------------------------------------------------------------------
1. node 갯수 : 5
2. simulation time : 15 sec
3.      3-1 IP address : 1.0.0.1
3.      3-2 IP address : 1.1.0.1
3.      3-3 IP address : 1.2.0.1
3.      3-4 IP address : 1.3.0.1
3.      3-5 IP address : 1.4.0.1
4. 생성된 블록 개수 : 3
5. 마지막 블록의 hash 값 : 000002170f08d114708667da555f60b1c55d4728a17066e1a06ce63941263385
6. 생성된 트랜잭션 개수 : 3
7. TPS : 0.2
8. Last block hash match rate : 5/5
---------------------------------------------------------------------------------
9. Blockhash list
    9-1 blockhash : 000002170f08d114708667da555f60b1c55d4728a17066e1a06ce63941263385
    9-2 blockhash : 0000025df3971e3453a896b713f82acee96a556ad939a7fdc59a599ee332b1ae
    9-3 blockhash : 000006d66f3cd0f0e2bf5ff0f3aa66bf4deec8eff96b7bc13fc7622532b10ad8

위 로그는 시뮬레이션 시 노드 마다 갖게될 최종 결과 로그임. rel 0.1.0에서 추가 보완된 부분은 8.Last block hash match rate으로서, 각 노드들끼리 마지막 블록 해시 값이 일치 여부를 비율로 표현을 해놓음. 또한 9. Blockhash list는 rel0.1.0에서는 오로지 "updatetip"으로만 필터링을 하여서 리스트업을 시켜주었는데, 멀티 노드 환경에서는 블록 전파가 이루어지면서 updatetip이 아닐 경우에도 블록 동기화가 이루어지는 것을 로그를 통해 확인을 하였음. 그렇기에 그 부분에 대한 예외처리를 추가하여 구현을 해주었음.