BOSAGORA
Published in

BOSAGORA

Add validation checking code for pre-images being revealed, Implement range support in ocean.text. convert.Formatter, etc.

Dev. Team Update Sprint 16

Functionality Implementations

#694 Add validation checking code for pre-images being revealed

In the current implementation of managing enrollments and pre-images, there is no code for checking the validity of pre-images. The end result is to have a validator set check the validity of the pre-images being received from several validators.

Definition of Done:

  • The validator set checks incoming pre-images with enrollment data

How to implement:

  • The validator set hashes a random seed of an enrollment by the difference in the height between the random seed and the incoming pre-image, and compares the hash value and one of the pre-image.
  • The Enrollment structure must have the height of its random seed for checking the validity.

#718 Implement range support in ocean.text.convert.Formatter

Agora uses a library called Ocean to print logs during operation. Ocean does not support the ‘Range’ type so we cannot understand the ‘Range’ type output. The goal is to make sure we are able to understand the ‘Range’ type output.

#767 Apply the sliding window concept for managing pre-images

Currently, node use somewhere around 100,000 pre-images created and the pre-images are matched each with a blocks height. One area of improvement has been identified in regards to matching each pre-image with a blocks height. This alternative is to apply the sliding window concept. This concept allows for pre-images to be retrieved based on the round and cycle.

Definition of Done:

  • To manage pre-images based on cycle and round
  • To determine the current round and cycle when restoring all the information when a node needs to restore all the information.
  • To use a PreImageCache in managing pre-images.

Ongoing Development

  • SCP messages need to be broadcasted to all a Node’s connected Validator peers #606
  • Implement a TCP, binary-based interconnection protocol #203
  • [upstream] Tracker for upstream bugs #561
  • Implement shell quorum balancing #785
  • Remove the table in the `EnrollmentManager` #789
  • Error code is returned when unittest is performed on Windows #820
  • Test Server Needed For Admin Interface #788

Functionality Implementations

#694 공개되는 프리이미지에 대한 검증 체크 코드 추가

등록과 프리이미지의 기존 구현 방법에는 프리이미지의 유효성을 확인하는 코드가 없습니다. 따라서, 궁극적으로 검증자 세트가 여러 검증자로부터 받은 프리이미지의 유효성을 체크하도록 할 것입니다.

완료 정의:

  • 검증자 세트가 유입되는 프리이미지를 등록 데이터를 가지고 확인합니다.

구현 방법:

  • 검증자 세트는 랜덤 시드와 유입되는 프리이미지 사이의 높이 격차만큼 등록 랜덤시드를 해시하고, 해시값과 프리이미지 중 하나를 비교합니다.
  • Enrollment 스트럭처는 유효성을 확인하기 위해 랜덤 시드 높이를 반드시 가져야 합니다.

#718 ocean.text.convert.Formatter에 대한 범위 지원를 구현합니다

아고라는 로그를 출력하기 위해 Ocean이라는 라이브러리를 사용합니다. 하지만, Ocean은 ‘Range’ 타입을 지원하지 않으므로 ‘Range’ 타입에 대한 출력을 이해하기 어렵습니다. 따라서, 이후 목표는 ‘Range’ 타입에 대한 출력을 이해하는 것입니다.

#767 프리이미지를 관리하는데 슬라이딩 윈도우 개념을 적용합니다

현재, 노드는 약 100,000개의 생성된 프리이미지를 사용하고, 각각의 프리이미지들은 블록 높이와 매칭되어 있습니다. 각 프리이미지를 블록 높이와 매칭하는 것에 대한 대안으로 슬라이딩 윈도우 개념을 적용했습니다. 이 개념은 프리이미지들이 라운드와 사이클에 기반해 회수될 수 있도록 합니다.

완료 정의:

  • 사이클과 라운드에 기반해 프리이미지를 관리합니다.
  • 노드가 모든 정보를 복구해야 할 때 현재 라운드와 사이클을 결정합니다.
  • 프리이미지를 관리하는데 PreImageCache를 사용합니다.

Ongoing Development

  • SCP 메시지는 검증자 피어에 연결된 모든 노드들에게 전송되어야 함 #606
  • TCP 2진 기반 상호접속 프로토콜 구현 #203
  • [업스트림] 업스트림 버그 추적자 #561
  • 쉘 쿼럼 밸런싱 구현 #785
  • ‘등록매니저’ 내에 있는 테이블 제거 #789
  • 윈도우에서 유닛테스트 시 에러코드 반송 #820
  • 테스트 서버에 어드민 인터페이스 필요 #788

Please join our communication channels as follows!

Website(Kor): https://bosagora.io/ko
Website(Eng): https://bosagora.io
Telegram(Kor): https://t.me/bpf_korea
Telegram(Eng): https://t.me/bpf_eng
BOSAGORA Official Announcement: https://t.me/bpf_eng
Medium: medium.com/bosagora
Twitter: https://twitter.com/BOSAGORA1
Reddit: https://www.reddit.com/r/BOSAGORA_BOA/
Facebook: https://www.facebook.com/BOSAGORA/
Linkedin: https://www.linkedin.com/company/bpf-korea/
Youtube: http://bit.ly/2YFpd5r
Github: https://github.com/bpfkorea

BOSAGORA TEAM

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store