Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visualization updates #327

Open
ygnkim opened this issue May 2, 2021 · 2 comments
Open

Visualization updates #327

ygnkim opened this issue May 2, 2021 · 2 comments

Comments

@ygnkim
Copy link
Member

ygnkim commented May 2, 2021

공인인증시험을 위해 필요한 테스트 및 visualization에 대한 update가 필요(?)

현재, 예전에 구현해놨던 visualization도 일부 잘 돌아가는 상황.
예시로, 최근 구현한 PoW bundle 실험에 대한 visualization은 아래와 같이 동작시킬 수 있다.

cd tests/regtest/3_BLEEPlib/3_PoW_treesync
python test-treesync.py treesynctest2-tennode.xml
(web browser로 http://ipaddress_of_this_machine:1337/frontend.html 접속)

네트워크 상황(Network Event Visualization), 블록체인이 만들어지는 과정(Ledger Event Visualization)은 잘 visualization됨.
interactive한 동작은 예전에 구현해놓긴했지만 현재는 동작안함.

@victork86 @hyojin5658
지난번 회의에서 말했던 공인인증을 위해 필요한 visualization이 위와 같은 현재 구현된 수준으로 커버가 될까요?
테스트 케이스만 정리를 잘하면 될것 같기는 한데. interactive한 작동도 필요할지요?
어쨌든 명세화하여 필요한 구현이 있는지 (최소화된 형태로) 정리해놓을 필요성이 있어보입니다.

@victork86
Copy link
Collaborator

victork86 commented May 4, 2021

총 아래와 같이 5개의 평가 항목이 있으며

  1. P2P 프로토콜 모듈 개수
  2. 합의 알고리즘 모듈 개수
  3. 에뮬레이션 처리속도
  4. 에뮬레이션 메모리 중복 제거율
  5. 블록체인 실험 평가 지표

visualization은 2번 항목에 대해 다음과 같이 진행하면 될거 같습니다.

  • 합의 알고리즘 동작 결과 검증
    • 블록이 정상적(?)으로 증가하는지,
      • 현재, 노드간 연결 및 블록 전파 과정을 대시보드를 통해 확인가능
      • 또한, 블록이 시뮬레이션 시간에 따라 증가함을 대시보드를 통해 알 수 있음
      • 하지만 합의과정을 통해 정상적으로 증가하였는지는 판단이 어려움.
      • ping, pong, getaddr,addr 등 관련 없는 로그를 제외하여, 블록이 생성되고 어떻게 전파되는지 보여줄 필요가 있음
      • 만약 시간적으로 제한된다면, 어떠한 규칙에 의해 블록이 생성되었고 전파되었는지에 대한 설명과
      • 블록생성 및 전파를 검증할 수 있도록 로그를 확인할 수 있는 체크리스트 제공 필요.
    • 각 노드별 블록 정보가 일치하는지
      • 현재 대시보드를 통해 식별 가능
    • 합의 알고리즘 진행과정 검증
    • safety와 liveness 침해 기준 정의 필요. 정의된 기준에따라 대시보드에서 확인 가능하도록 구현 필요
    • 블록 업데이트 및 fork 발생 비율을 대시보드에서 명확히 식별할 수 있도록 구현
      • 현재 대시보드를 통해 어느정도 식별 가능하나
      • 블록 업데이트에 대한 정의 및 대시보드를 통한 표현 방법을 생각해보면 좋을 듯함
      • 또한, fork가 자주 발생하거나 실험종료 시점에 브랜치가 분리된 테스트 케이스가 필요해 보임.

how to reproduce

  • 프로그램 설치 및 실행
git clone https://github.com/kaistshadow/blockchain-sim
cd blockchain-sim
git checkokut develop
python setup.py --all
python setup.py --test
cd tests/regtest/BLEEPlib/3_PoW_treestbc/
python test-treesync.py <xml>
  • 대시보드 실행
브라우저에 "127.0.0.1:1337/frontend.html" 을 입력한다. 

@victork86
Copy link
Collaborator

victork86 commented May 4, 2021

develop 브랜치에서 3_PoW_treesync 빌드가 되지 않아서 원인 확인중에 있습니다.
빌드 오류는 없는데 libBLEREPlib-test-pow-node.so 파일이 생성되지 않네요.

python setup.py --all
python setup.py --test

로 해결 했습니다.
현재 develop 브랜치에서는 --test 옵션이 ON이 되어야 tests 폴더가 subdirectory로 add 되네요.
nodejs 설치하는 방법 참고

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants