Published in


Setup Windows build, Derive random seed from node’s private key, etc.

Dev. Team Update Sprint 14

Here are those that our development team has been hard at work developing a handful of new functionality related to the AGORA architecture.

Functionality Implementations

#264 Setup Windows build

Setup a build process to have Agora compile and run on Windows. Agora will not successfully run on Windows devices.

#605 Make the validator set restore validators’ data from the chain on startup

In the current implementation of the enrollment manager, there are multiple problems to solve. All the problems occur when the database crashes and a node cannot restore the data for validators.

The information of validator should be stored safely so that it can be restored any time like UTXO set.

Definition of Done:

  • Restore data of validator set such as enrollment information and the enrolled height from the chain into the validator set table.

How to implement:

  • When a ValidatorSet(which is being split from EnrollmentManager) is created, it can enrollment information and enrolled height from the chain.
  • The previously broadcast from a validator cannot restore from the chain in currently implemented code, so we must find the way to get pre-images.

#651 Derive random seed from node’s private key

We need to restore the random seed from abnormal situations of a node. One critical issues we are faced with is losing the source of the random seed, which means a validator could lose its deposit in case it can not reveal pre-images. For this reason we need to implement a way to restore the source of the random seed and derive the source from a private key.

Definitions of Done:

  • Derive the source of the random seed from private key
  • Change the process of getting a pre-image from a node in accordance of new mechanism of creating pre-images
  • Restore the source of the random seed when a node starts or when the issue occurs
  • Re-create the random seed if all the pre-images are revealed

Ongoing Development

  • Complete implementation of Quorum Balancing
  • Documentation of C++ usage
  • Implement a web-based setup interface
  • Implement a Protobuffer interconnection protocol
  • With an alternative to ‘std.concurrency’
  • Split up the Full Node and Validator functionality into two separate classes
  • [C++] Document usage of C++ types, limitations, and patterns
  • [upstream] Tracker for C++-related upstream bugs

Functionality Implementations

#264 윈도우 빌드 셋업

빌드 프로세스를 셋업하여 아고라를 컴파일하고 윈도우 상에서 실행합니다. 아고라는 윈도우 디바이스에서는 성공적으로 실행되지 않을 것입니다.

#605 스타트업 상 체인으로부터 검증자 세트가 검증자 데이터를 복구

현재 등록 관리자를 구현할 때, 해결해야 할 여러 문제들이 있습니다. 데이터베이스가 파괴되고 노드가 검증자 데이터를 복구하지 못할 때 모든 문제들이 발생합니다.

검증자 정보는 안전하게 저장되어 UTXO 세트처럼 언제든지 복구될 수 있어야 합니다.

완료 정의:

  • 체인으로부터 등록정보와 등록된 높이와 같은 검증자 데이터를 검증자 세트 테이블에 복구합니다.

구현 방법:

  • ValidatorSet(EnrollmentManager로부터 분리된)가 생성되면, 등록 정보와 체인으로부터 등록 높이를 취합할 수 있습니다.
  • 이전에 전파된 검증자 데이터는 현재 구현되는 코드로는 체인으로부터 복구될 수 없기 때문에, 저희는 프리이미지를 취합하기 위한 올바른 방법을 찾아야만 합니다.

#651 노드의 프라이빗 키로부터 랜덤 시드 도출

저희는 노드의 비정상적인 상황으로부터 랜덤 시드를 복구할 필요가 있습니다. 저희가 직면한 한가지 결정적인 이슈는 랜덤 시드의 소스를 잃어버리는 건데 이는 검증자가 프리이미지를 노출하지 못하는 경우 보증금을 잃을 수 있다는 것을 의미합니다. 이러한 이유로 저희는 랜덤 시드의 소스를 복구할 방법을 구현하고 프라이빗 키로부터 소스를 도출할 필요가 있습니다.

완료 정의:

  • 프라이빗키로부터 랜덤 시드 소스를 유도합니다.
  • 프리이미지를 생성하는 새로운 매커니즘에 따라 노드로부터 프리이미지를 얻는 프로세스를 변경합니다.
  • 노드가 시작하거나 이슈가 발생하면 랜덤 시드의 소스를 복구합니다.
  • 모든 프리이미지가 공개되면 랜덤시드를 재생성합니다.

Ongoing Development

  • 쿼럼 밸런싱 구현 완료
  • C++ 자료 사용
  • 웹기반 인터페이스 구현
  • 프로토버퍼 상호접속 프로토콜 구현
  • ‘std.concurrency’의 대안
  • Split up the Full Node and Validator functionality into two separate classes
  • [C++] Document usage of C++ types, limitations, and patterns
  • [upstream] Tracker for C++-related upstream bugs




Contribute to making a better world with blockchain technology as a project enabler

Recommended from Medium

How to build a Microsoft Teams Chatbot with Sharepoint, QnA Maker, and Logic Apps — Part I

How to Change the Child Icon Color of FloatingActionButton in Flutter?

Getting Started to develop a web application on GKE with istio for gRPC web

Revisiting My First Project: What I Liked and What I Would Change

Sheep Game Phase 2 — Land Launch FAQ

Using Capture Lists in Swift

Best time management techniques

HTS Windows Shared Hosting Plans at Heavily Discounted Prices

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



More from Medium

A simple Intro to Bitcoin and Cryptocurrency

Staking LENDR → explained

The Governance Token of MatrixETF

FTM vs. Luna

Source: DeFiLlama