Closed hyojin5658 closed 3 years ago
BLEEPlib지원하는 Latency/ TPS 테스트를 만들기 위하여 다음과 같은 일을 해야한다.
해당 브랜치는 현재
현재 상태는 Monitoring node만 연결 해 놓은상태( generator 노드는 BLEEPlib들과 연결하지 않은 상태)
현재 커밋에서 예를들어, 1-2-3(tip) 순서로 블록이 생성 되어 있다고 했을때, monitoring node가 POWBLOCK-BLOCK 메세지를 2-1-3의 순서로 받았을 때, monitoring node의 동작이 멈추어 버리느 경우가 있다.
코드 상에서 정확히 에러나는 지점은 blocktreebase 함수의 2번째줄인 blocks에 해당 블록을 append 하는 부분에서 동작이 멈추어 버린다. 해당 블록의 block hash나, tx hash 들은 모두 정상적으로 포함되어 있으나, 에러가 발생한다.
이는 genesis block을 모르는 상태에서 tree에서 자신의 parent block 를 찾는 과정에서 해당 prevhash 블록이 없기 때문에 발생하는 문제이다.
이러한 문제를 해결 하기 위하여 3가지 방법이 존재한다.
1번의 방법은 genesis block 생성 한 후에 새로운 노드와의 connection이 이루어 지기 때문에 해당 방법으로 불가능( 메세지를 보내기 위해서는 해당 노드의 fd를 알아야 하기 때문) 2번의 방법은 블록의 해시를 외부의 txt 파일이나, 해당 블록의 해시값을 알아야 하는 BLEEPlib의 블록 해시가 보여지는 string 값이 아니기 때문에 불가능 따라서 genesis block 에 정보를 알고 있게 하기 위하여 genesis block 메세지를 받은 직후 부터 block tree에 저장하도록 해 주었다.
BLEEP library regtest
BLEEPlib 사용하여 블록체인을 사용할 때, TPS를 측정하도록 만들어 놓았다.
개발 하는 와중에 두가지 이슈가 있어서 정리하고, 그에 대한 해결 법을 정리하고자 한다.
BLEEPlibrary를 사용해서 만든 블록체인의 tps와 latency를 측정하는 테스트를 만들고자 한다.