kaistshadow / blockchain-sim

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

BLEEP - POS regression test #351

Closed tkdlqm2 closed 3 years ago

tkdlqm2 commented 3 years ago

BLEEP - POS regression test

Originally posted by @tkdlqm2 in https://github.com/kaistshadow/blockchain-sim/issues/326#issuecomment-861271057

tkdlqm2 commented 3 years ago

POS regression test 는

  1. Genesis : POS 환경에서 선언된 모든 노드가 동일한 Genesis block을 갖고 있는지 확인하는 테스트

  2. peer connection : POS 환경에서 연결 선언된 peer가 제대로 연결이 되는지 확인하는 테스트

  3. stake : stakefile.txt 파일에는 사전에 노드들의 지분 비율이 정의가 되어있음. 해당 txt 파일에 선언된 비율이 제대로 초기화 되는지 확인하는 테스트.

  4. blockcreator ratio : 3번 테스트에서 비율에 맞게 셋팅이 되었으면, 비율에 맞게 블록을 제대로 생성하는지 확인하는 테스트.

이렇게 진행이 됩니다.

tkdlqm2 commented 3 years ago

이전 regression test를 진행하는 동안 1,2 번 테스트는 자주 설명드렸던 부분이라 생략하고 POS regression test에서 처음 등장한 stake, blockcreator ratio test에 대해 설명을 하겠습니다.

  1. stake 실행할 해당 디렉토리에는 stakefile.txt 파일이 항상 존재하며, 없으면 실행이 되지 않는다. 왜냐하면 stakefile.txt에 정의된 stake에 의해 노드들의 지분이 셋팅이 되기 때문이다. stakefile.txt는 다음처럼 정의가 되어 있음.
    
    0:30
    1:60

이는 0번 노드가 30, 1번 노드가 60이라는 지분을 셋팅해주기 위함임.  shadow를 실행하면 이렇게 셋팅이 된 txt파일의 값을 통해 지분이 셋팅이되고, 시뮬레이션 환경에서 제대로 지분이 셋팅이 되었는지 확인하는 테스트이다.

4. blockcreator ratio test
3번에서 보셨듯이 지분 비율은 0번 노드와 1번 노드의 비율은 1:2 비율이다. 그렇기에 블록 생성 시 그 비율 또한 1:2여야한다. 즉 4번 테스트는 비율에 맞게 블록을 생성한지 확인하기 위한 테스트이다.