Skip to content

Releases: yggdrash/yggdrash

YGGDRASH Mainnet v 1.0.0

30 Oct 09:02
302b83f
Compare
Choose a tag to compare

Overview

  • Prepared the MainNet
  • Prepared the soft fork
  • Stabilized the network

Core

  • Network stabilization
    • Transaction synchronization patch
    • Block synchronization patch
  • StateRoot stabilization

Contract

  • Preparation for the token service
  • Stabilization of YEED contract

Node/Network

  • Stabilization of peer network

Wallet

  • Update MainNet wallet design
  • Preparation for the Android wallet

Etc

  • Python SDK development
    • Preparation for the PYGGDRASH deployment
    • Test platform integration
  • Preparation for the MainNet infrastructure
  • Preparation for the contract development tools
  • Update and preparation for the MainNet explorer
  • Update Javascript CLI / SDK

Overview

  • 메인넷 준비
  • 소프트 포크 준비
  • 네트워크 안정화

Core

  • 네트워크 안정화
    • 트랜잭션 동기화 패치
    • 블록 동기화 패치
  • StateRoot 안정화

Contract

  • 토큰서비스 준비
  • 이드 컨트랙트 안정화

Node/Network

  • 피어 네트워크 안정화

Wallet

  • 메인넷 월렛 디자인 리뉴얼
  • 안드로이드 월렛 준비

Etc

  • Python Sdk 개발
    • PYGGDRASH 개발 오픈 준비
    • 플랫폼 인테그레이션 테스트
  • 메인넷 인프라 준비
  • 컨트랙트 개발도구 준비
  • 메인넷 익스플로러 준비 및 업데이트
  • Javascript CLI / SDK 업데이트

YGGDRASH Release v 0.9.0

23 Sep 02:23
94e5313
Compare
Choose a tag to compare

Overview

  • Added and modified the Mainnet functions.
  • Prepared the soft fork.

Core

  • Unified the configuration of branch chains.
    • Unified to the configuration file in the branch directory.
  • Redesigned and implemented the StateRoot.
    • Added a StateRoot field in a BlockHeader.
    • Efficienated processes of creating and verifying a StateRoot field.
      • Added a StateRoot in the TransactionStore.

Contract

  • Added PendingStateStore to ContractStore.
  • Added StateRoot creation logic to TempStateStore.
  • Added contract EndBlock execution.
  • Added contract event.
  • Added version control contract.
  • Added YEED network fee burn.
  • Changed TransactionReceipt, TransactionReceiptStore to Receipt, ReceiptStore.
  • Added block receipt.
  • Fixed Ethereum Token Interchain Process.
  • Fixed Ethereum Interchain Process.
  • Added YGGDRASH Token Contract.
    • Token definition, YEED stake, Token creation/deploy/burn, transfer/transfer authorization, Token-YEED exchange

Node/Network

  • Redesigned and implemented the NodeDiscovery and the NodeStatus protocol.
    • Optimized the Ping/Pong and the FindPeer protocol.
    • Added the function for checking fake IPs.
  • Redesigned and implemented the block synchronizing protocol.
    • Added the function of synchronizing blocks in NAT network.
    • Simplified and Speeded up the process of synchronizing blocks.

Wallet

  • Create & Management Account
  • Send YEED
  • Execution YEED Contract

Overview

  • 메인넷 기능 수정 및 추가 완료
  • 소프트 포크 준비

Core

  • Branch 설정 일원화
    • branch 디렉토리 설정파일로 일원화
  • StateRoot 재설계 및 구현
    • BlockHeader에 stateRoot 추가
    • StateRoot 생성 및 검증 효율화
      • TransactionStore에 StateRoot 추가

Contract

  • 컨트랙트 스토어에 PendingStateStore 추가
  • TempStateStore 에 StateRoot 생성 로직 추가
  • 컨트랙트 EndBlock 실행 기능 추가
  • 컨트랙트 이벤트 추가
  • 버전 관리 컨트랙트 추가
  • 이드 fee burn 추가
  • TransactionReceipt, TransactionReceiptStore 를 Receipt, ReceiptStore 로 변경
  • 블록 Reciept 추가
  • 이더리움 토큰 인터체인 프로세스 수정
  • 이더리움 인터체인 프로세스 수정
  • 이그드라시 토큰 컨트랙트 추가
    • 토큰 정의, YEED스테이크, 생성/발행/소각, 전송/전송허가, 토큰-YEED 교환

Node/Network

  • Node 검색/상태 확인 프로토콜 재설계 및 구현
    • Ping/Pong, FindPeer 프로토콜 최적화
    • 거짓 IP 검사 기능 추가
  • Block 동기화 프로토콜 재설계 및 구현
    • NAT 환경에서 Block 동기화 기능 추가
    • Block 동기화 프로세스 단순화 및 속도 향상

Wallet

  • Account 생성 및 관리
  • YEED 전송
  • YEED 컨트랙트 실행

YGGDRASH Release v 0.8.0

26 Aug 02:39
0d6a907
Compare
Choose a tag to compare

Overview

  • Contract Soft Fork(2/3) Development
  • Prepare YGGDRASH Token Contract
  • Web wallet service development
  • Interchain Service Trigger

Contract

  • Added contract downloader
  • Adjusted to not reflect changed values in the case of an error transaction
  • Refactored Versioning Contract
  • Designed the flow of executing the endBlock
  • Redesigned the receipt specification
  • Reorganized the contract executor structure
  • Applied decimal to YEED currency
  • Applied the basic fee policy to YEED Contract
  • Designed the YGGDRASH Token

API

  • Changed the output format of transactionReceipt log
  • Added pending transaction list query

TestNet

  • Redeployed the YGGDRASH test network
    • Expanded BP(Block Producer, Validator) nodes to 7 global regions in AWS-based network
    • Enhanced stability of node modules and network

SDK/CLI

  • Updated Node interface

Wallet

  • Developed and Prepared deploying web-based wallet
    • Developed functions of generating keys, transferring/querying assets, and designed UI/UX

Bugfix

  • LogApi and LogIndexer bug fixed

Overview

  • 컨트랙트 소프트 포크 (2/3) 개발
  • 이그드라시 토큰 컨트랙트 준비
  • 웹지갑 서비스 개발
  • 인터체인 서비스 트리거

Contract

  • 컨트랙트 다운로더 추가
  • 에러 트랜잭션의 경우 변경된 값을 반영하지 않도록 수정
  • 버전 관리 컨트랙트 리팩토링
  • EndBlock 실행 플로우 설계
  • Receipt 스펙 재설계
  • ContractExecutor 구조 재편
  • YEED 통화 decimal 적용
  • YEED 컨트랙트에 기본 수수료 정책 적용
  • YGGDRASH 토큰 설계

API

  • TransactionReceipt 로그 출력 형식 변경
  • pending Transaction 목록 조회 추가

TestNet

  • 테스트넷(Beta) 재배포
    • AWS기반 전세계 7개 지역으로 블록생성노드(BP, Validator) 확대
    • 모듈 및 네트워크 안정성 강화

SDK/CLI

  • 노드 인터페이스 업데이트

Wallet

  • 웹기반 Wallet 개발 및 배포 준비
    • 키생성, 자산 전송/조회 기능 개발 및 UI/UX 디자인

Bugfix

  • LogApi 및 LogIndexer 버그 수정

Document Link

https://docs.yggdrash.io/development/v0.8.0/index.html

YGGDRASH Release v0.7.0

02 Aug 05:47
Compare
Choose a tag to compare

Overview

  • Preparing Interchain Process, Preparing BlockChain Service, Update Smart Contract Executor and Service

Blockchain

  • Integrated configuration files and simplified the node profile configuration.
    • Integrated configurations into yggdrash.conf.
    • Simplified node profiles(bootstrap, node, proxy, gateway, validator).
  • Changed the processing method of wrong key password.
    • Changed from rewriting to failing errors.
  • Tested compatibility of JDK versions.
    • Tested from JDK 1.8 to 12.
  • Reviewed and redesigned modularization.
    • Reviewed dependency and redesigned modules.
  • Refactored to set the lastConfirmedBlock only from the BlockChainManger.

Consensus

  • Changed the process of checking validator's list.
    • Changed the process to check the state in real time.
  • Added a function for exchanging transactions between validators.

Contract

  • Upgraded contract bundle manager(osgi framework)
    • Reduced osgi framework dependencies.
    • Integrated configuration variable
  • Added contract downloader from Contract Store
  • Added a service fee to STEM, YEED contract and updated.

Network

  • Implemented to do catchUpRequest with bestBlock when HealthCheck.
  • Added exception handling when block addition fails by verification during FullSync.
  • Implemented to sendTx from node by GRPC
    • RemoteCall test with NodeJs GRPC Client

API

  • Implemented pending transactions query.
  • Implemented a node status query.
    • Name, Version, BranchId, BlockHeight, List of peers

Environment

  • Expanded internal test networks.
    • Built internal blockchain networks(Torr, Loki, Hulk).
    • Built virtual test networks.
    • Built monitoring environments.

Bugfix

  • Fixed a bug about terminating threads.
  • Fixed YEED Contract transfer bug
  • Fixed Block Sync bug

Overview

  • 인터체인 프로세스 준비, 각 컨트랙트 고도화, 블록체인 서비스 준비

Blockchain

  • Node 설정 파일 통합 및 프로파일 간략화
    • yggdrash.conf 파일로 설정 통합
    • Node 프로파일 간략화(bootstrap, node, proxy, gateway, validator)
  • Key 패스워드 오류 시 에러 처리 방법 변경
    • 덮어쓰기 방식에서 실패 처리로 변경
  • JDK 호환성 테스트
    • JDK 버전별(1.8 ~ 12) 호환성 테스트
  • 모듈화 현황 검토 및 재설계
    • 모듈별 의존성 검토 및 모듈 재설계
  • LastConfirmedBlock 세팅은 BlockChainManager 에서만 하도록 리팩토링

Consensus

  • Validator 목록 조회 방식 변경
    • State 에서 실시간 가져오도록 변경
  • Validator 간 Transaction 교환 기능 추가

Contract

  • 컨트랙트 번들 관리자(osgi framework) 고도화
    • osgi framework 의존성 감소
    • 설정 변수 통합 관리
  • Contract Store로부터 컨트랙트 파일 다운로드 기능 추가
  • STEM, YEED 컨트랙트 ServiceFee 추가 및 업데이트

Network

  • HealthCheck 시 bestBlock 으로 catchUpRequest 하도록 구현
  • FullSync 시 Verification 에 의한 블록 추가 실패 예외 처리
  • 노드에서 GRPC로 sendTx 하도록 구현
    • NodeJs GRPC Client 로 remoteCall 테스트 진행

API

  • 펜딩 트랜잭션 목록 조회 구현
  • 노드 상태 조회 구현
    • 이름, 버전, 브랜치아이디, 블록높이, 피어목록

Enviroment

  • 내부 테스트 네트워크 확장 구축
    • 내부 블록체인 네트워크(Torr, Loki, Hulk) 확장 구축
    • 가상화 테스트 환경 구축
    • 모니터링 환경 구축

Bugfix

  • Thread 종료 처리 오류 수정
  • YEED 컨트랙트 버그 수정

YGGDRASH Release v0.5.0

14 Jun 06:41
2e64179
Compare
Choose a tag to compare

Overview

  • Set up the Yggdrash test network environments based on AWS.
  • Implemented the channel module for communicating with contracts and stabilized.
  • Stabilized transaction apis and the execution module.

TestNet

  • Set up the Yggdrash test network based on AWS.
    • Each network independently was built as 5 region.
    • Validator node (5 systems).
    • Proxy node (5 systems).
    • Bootstrap node (1 systems).
    • General node (N systems).
    • Block explorer systems.
    • Transaction generator systems.

Contract

  • Configure a channel between contracts
    • Implement a connection between two or more different contracts and transfer of message through it
  • Separate stateStore with namespace created by contract status information
  • Inject Transaction Receipt Adapter
  • Add and apply ContractException to contract
  • ContractException handling
    • Add error-code and message to TransactionReceipt

Node/Network

  • API
    • ADD Raw Transaction API
    • ADD Branch Validator Set API
    • ADD Transaction Log API
  • Rebuild StoreBuilder
  • Implement LogIndexer
  • Apply transaction pre-execution of TransactionApi

Overview

  • 테스트넷(Alpha) 구축을 위한 AWS 환경 구성
  • 컨트랙트간 채널 구성 및 안정화
  • 트랜잭션 API 및 실행 모듈 안정화

TestNet

  • AWS기반 Yggdrash 테스트넷(alpha 버전) 환경 구축
    • 5개 Region으로 분리하여 독립적으로 구축
    • Validator Node 5식
    • Proxy Node 5식
    • Bootstrap Node 1식
    • General Node 다수
    • Block Explorer 시스템
    • Transaction Generator 시스템

Contract

  • 컨트렉트간 채널구성
    • 상이한 두개이상의 컨트렉트간 연결 및 메시지 전달
  • 컨트렉트 상태정보로 생성된 NameSpace 로 stateStore 분리
  • Transaction Receipt Adapter 주입
  • ContractException 추가 및 적용
  • 컨트랙트 예외처리
    • TransactionReceipt 에 에러코드 및 메세지 추가

Node/Network

  • API
    • Raw Transaction API 추가
    • Branch Validator Set API 추가
    • LogAPI 추가
  • StoreBuilder 재구축
  • LogIndexer 구현
  • TransactionApi 트랜잭션 임시 실행 적용

YGGDRASH Release v0.4.0

17 May 07:53
3009f77
Compare
Choose a tag to compare

Overview

  • Prepare to build next test net
  • Yggdrash alpha test network consensus and network stabilization

Core

  • Change Store Interface
  • Change Store Index
  • Added and applied error codes (Flag)
    • SystemError
    • BusinessError
    • ApplicationError
  • Added transaction and block validation utility
  • Implemented validation when adding transactions and blocks
    • Added transaction timestamp verification
    • Added blockBody hash verification
  • Added and implemented consensus transaction and block verification interface
    • ConsensusMessage
    • ConsensusMessageSet
    • ConsensusVerifier

Branch & Genesis

  • Branch reference reference unification

Consensus

  • Applied to a set of validators consensus
  • Consensus module stabilization and network testing

Contract

  • Change policy Stem Contract
    • registed brach information
    • update branch meta information
    • validator (in other branch)
      • add new validator
      • remove validator
      • replace validator
      • update validator list (all)

Node/Network

  • Built and tested an AWS infrastructure for the validator node network
  • Built a network of validators, proxies, and notes on a test server and integrated tested
  • Moved fullSyc function to SyncManager and refactored related code
  • Added maximum response size limit for Consensus Block synchronization requests
  • Disabled PeerTask when working as a validator node
  • Changed the response data format of TransactionAPI
    • TransactionResponseDto (txHash, Status, ErrorLogs)

Specification

  • Designed detailed data formats of Transactions
    • Genesis, Stem, Yeed, Chain, Contract, Voting, Sacred, Fee, Inter Chain, MultiSig Transactions

TestNet

  • Preparations testnet Explorer UI / UX
    • Dashboard
    • Block list
      • Block Detail
    • Transaction list
      • Transaction Detail
    • Implementation Explorer backend server
      • Advancement Elastic search query (paging)
    • Dispatch Explorer backend server in Explorer

국문

Overview

  • 테스트넷 구축 준비
  • 이그드라시 컨센서스 및 네트워크 안정화

Core

  • Store Interface 변경
  • Store Index 변경
  • 에러코드 추가 및 적용 (Flag)
    • SystemError
    • BusinessError
    • ApplicationError
  • 트랜잭션 및 블록 검증 유틸리티 추가
  • 트랜잭션 및 블록 추가 시 유효성 검증 구현
    • 트랜잭션 시간 검증 기능 추가
    • 블록바디 해시 검증
  • 컨센서스 트랜잭션 및 블록 검증 인터페이스 추가 및 구현
    • ConsensusMessage
    • ConsensusMessageSet
    • ConsensusVerifier

Branch & Genesis

  • 브랜치 정보 참조 일원화

Consensus

  • Validator 컨센서스 셋 적용
  • 컨센서스 모듈 안정화 및 네트워크 테스트

Contract

  • 스템 정책 변경
    • 브랜치 생성
    • 브랜치 메타정보 수정
    • 브랜치 벨리데이터 수정
      • 벨리데이터 추가
      • 벨리데이터 삭제
      • 벨리데이터 대체
      • 벨리데이터 셋 수정

Node/Network

  • Validator 노드 네트워크용 AWS 인프라 구축 및 테스트
  • Validator, Proxy, Node 로 구성된 네트워크를 테스트 서버에 구축 및 연동 테스트
  • FullSync 기능을 SyncManger로 이동 및 관련된 코드 정리
  • Consensus Block 동기화 요청 당 최대 응답 사이즈 제한
  • Validator 노드로 동작시 PeerTask 비활성화
  • TransactionAPI 의 응답 데이터 형식 정의
    • TransactionReponseDto (txHash, Status, ErrorLogs)

Specification

  • 트랜잭션 상세 데이터 형식 설계
    • Genesis, Stem, Yeed, Chain, Contract, Voting, Sacred, Fee, Inter Chain, MultiSig 트랜잭션

TestNet

  • 테스트넷 Explorer UI / UX 준비
    • Dashboard
    • Block list
      • Block Detail
    • Transaction list
      • Transaction Detail
    • Explorer backend server 구현
      • Elastic search query 고도화(paging)
    • Explorer backend server - Explorer 연동

YGGDRASH Release v0.3.0

26 Apr 07:31
66ffb6c
Compare
Choose a tag to compare

Overview

  • Consensus Module Integration
  • Interchain Process Building
  • TestNet Preparation

Core

  • Implemented a function for a secure input of a private key
    • Implemented a function for an input of a password using console
    • Implemented a function for a password masking

Branch & Genesis

  • Refactored the logic for Transaction signing, hash, and serialization
  • Added a parser for encoding and decoding RawTransactions
  • Changed the Transaction body
    • Generate a transaction for each contract version when generating a genesis block
  • Implemented a dynamical generation of block Stores, blockchain, and RPC Server/Client stub for each BRANCH CHAIN's consensus

Consensus

  • Implemented a function to broadcast consensus blocks from validator to nodes.
    • Set the proxy node configuration for broadcasting consensus blocks
  • Created a more efficient data format and process of consensus blocks
    • Unified data formats as Google ProtoBuffer
    • Created efficient ways for serializing, storing, processing, parsing of consensus blocks
  • Unified the configuration of the validator module
    • Unified configurations as TypeSafe formats
    • Deleted configurations about SpringBoot

Contract

  • Established the process of moving assets between chains in YGGDRASH
    • Ethereum Exchange Process
    • Ethereum Token Exchange Process
    • Ethereum Token Swap Preparation
  • Added a pre-execution function of transactions
  • Refactored the contract manager
    • Manage the bundle lifecycle and framework access
  • Refactored the contract cache and store
  • Implemented the contract executor
    • Execute contracts and manage the state

Node/Network

  • Implemented the synchronization of blocks from validator node to proxy node
  • Implemented the run of multiple validator nodes for each BRANCH using validator profile
  • Added a testable master profile which can generate PBFT consensus block of a BRANCH CHAING
  • Separated the special RPC Server/Client stub for bootstrap nodes

국문

Overview

  • 컨센서스 모듈 통합
  • 인터체인 프로세스 구축
  • 테스트넷 구축 준비

Core

  • 개인키 패스워드 보안 입력 기능 구현
    • 콘솔 방식의 패스워드 입력 기능 구현
    • 패스워드 마스킹(노출 보호) 기능 구현

Branch & Genesis

  • 트랜잭션 서명, 해시, 직렬화 로직 정리
  • RawTransaction encode, decode 파서 추가
  • 트랜잭션 바디 구조 변경
    • 제네시스 블록 생성 시 각 컨트랙트 버전 별로 트랜잭션 생성
  • 브랜치의 Consensus별로 블록스토어, 블록체인, RPC Server/Client 스텁을 동적으로 생성

Consensus

  • 대표 노드에서 일반 노드로 합의블록 전파 기능 구현
    • Validator 모듈에서 합의블록을 전파할 ProxyNode 설정
  • 합의 블록 데이터 형식 및 처리 효율화
    • Google ProtoBuffer 데이터 형식으로 일원화
    • 합의 블록 직렬화, 저장, 처리, 파싱 효율화
  • Validator 모듈 설정 파일 일원화
    • TypeSafe 형식으로 설정 파일 통일
    • SpringBoot 형식의 설정 파일 삭제

Contract

  • 이드 체인간 에셋 이동 프로세스 확립
    • 이더리움 교환 프로세스
    • 이더리움 토큰 교환 프로세스
    • 이더리움 이드 토큰 스왑 준비
  • 트랜잭션 임시 실행 추가
  • 컨트랙트 매니저 개선
    • 프레임워크 접근 및 번들 주기 관리
  • 컨트랙트 캐시/ 컨트랙트 스토어 개선
  • 컨트랙트 실행자 구현
    • 컨트랙트 실행 및 스테이트 관리

Node/Network

  • 위성노드에서 Validator노드로 부터 블록 동기화
  • Validator Profile을 사용하여 브랜치별 다수 Validator 노드 실행
  • 기본 YGGDRASH 브랜치의 Pbft Consensus 블록을 생성할 수 있는 테스트용 Master Profile 지원
  • 부트스트랩 노드 전용 RPC Server/Client 스텁 분리

YGGDRASH Release v 0.2.0

29 Mar 08:06
d70172b
Compare
Choose a tag to compare

Overview

  • Prepared to run various consensus modules through consensus modularization.
  • Integrated the OSGi contract platform and implemented modified network governance through consensus.
  • Enhanced the block synchronization process and tested the propagation of blocks and transactions between the validator node network and the general node network.

Consensus

  • Multiple Branch Chains & consensuses support in the Validator module.
    • Changed the working process based on the thread.
    • Changed the configuration to operate multiple services.
  • Integration of the Node module and the Validator module
    • Changed the Node module to run consensus functions.
  • Improved stability of the Validator module.
    • Improved stability of memory usage & exception handling.

Contract

  • Version Control Contract
    • Version Upgrade in Contract
    • Proposer Version Upgrade, Validators can vote on Versions (*revoke, agree)
    • Upgrade state view
  • OSGi Contract Integration to YGGDRASH Platform
    • Branch Contract information installed through OSGi Contract
  • BranchStore permissions change in a contract
    • Save and load Validator set
  • Change the contract loading sequence
    • Load and validate in a declared order in the branch
  • Store and load Branch Contracts into/from the Branch store
    • Prepare for changes such as contract version-up
  • Split the Contract Module

Node/Network

  • Change the block and transaction propagation method (synchronized to asynchronized)
  • Implement to join the network after full block synchronization at the node startup
  • Implement the block synchronization manager
    • Enhanced CatchupSync
    • CatchUp request while ping communication and block is broadcasted
    • Block request and synchronization in the maximum block synchronizable range
  • Implement the transaction indexer
    • The transactions contained in the block are indexed and stored in the database by events when chaining block to a blockchain
    • Indexing transactions by the properties of transaction
    • Indexing for 2-depths transactions
  • Passing blocks and transactions using a delivery node between the validator network and the general node network
  • Execute an random node stopping test during block and transaction propagation in random nodes
  • Upgrade dependency major library
  • Upgrade YGGDRASH Explorer For Main-net

Overview

  • 컨센서스 모듈화를 통하여, 다양한 컨센서스 모듈을 실행하기 위한 준비
  • OSGi 컨트렉트 플랫폼 통합, 컨센서스를 통한 네트워크의 거버넌스 수정
  • 블록 동기화 과정 고도화 및 Validator 노드 네트워크와 일반 노드 네트워크간 블록 및 트랜잭션 전달

Consensus

  • Validator 모듈에서 다수 브랜치 및 합의 알고리즘 지원
    • 쓰레드 기반 동작 방식으로 변경
    • 다수 서비스 동작하도록 설정 변경
  • 일반 노드 모듈과 대표 노드 모듈 연계
    • 일반 노드에서 합의 기능 사용 가능하도록 변경
  • Validator 모듈 안정성 향상
    • 메모리 사용 및 예외 처리 안정성 향상

Contract

  • 버전관리 컨트랙트
    • 컨트랙트 업그레이드
    • 업그레이드 컨트랙트 투표
    • 업그레이드 상태 조회
  • OSGI 컨트렉트 통합
    • 브랜치 정보를 활용하여 컨트렉트 로드
  • 컨트렉트에서 BranchStore 권한 변경
    • Validator Set 저장 및 로드
  • 컨트렉트 로드 순서 변경
    • 브랜치에서 선언된 순서로 로드 및 검증
  • 브랜치스토어에 브랜치 컨트렉트 저장 및 로드
    • 컨트렉트 버젼업등, 변경을 위한 준비
  • 컨트렉트 모듈 분리

Node/Network

  • 블록 및 트랜잭션 전파 방식 변경 (동기 → 비동기)
  • 노드 기동시 전체 블럭 동기화 후 네트워크 참여
  • 블록 동기화 매니저 구현
    • CatchupSync 고도화
    • ping 통신 및 블록을 브로드캐스트 받은 경우 CatchUp 요청
    • 최대 블록 동기화 가능한 범위에서 블록 요청 및 동기화
  • 트랜잭션 인덱서 구현
    • 트랜잭션의 속성 값으로 인덱싱 처리
    • 블록체인에 블록 추가 시 이벤트에 의해 블록에 포함된 트래잭션을 인덱싱 하여 디비에 저장
    • 2 depth 트랜잭션에 대한 인덱싱 처리
  • Validator 네트워크와 일반노드 네트워크 사이에서 위성노드를 사용한 블럭 및 트랜잭션 전달
  • 랜덤한 노드에서 블록 및 트랜잭션 전파 중 랜덤한 노드 정지 테스트
  • 의존성 주요 라이브러리 업그레이드
  • 메인넷을 위한 YGGDRASH Explorer 업그레이드 진행

YGGDRASH Release v 0.1.0

28 Feb 08:40
3e26d29
Compare
Choose a tag to compare

Overview

  • Modified Implementation and Development method of Contract
  • Improvement, Stablization, and Functional Integration of the consensus algorithm
  • Changes in Network Connection method and Node Configuration

Branch & Genesis

  • Modified Branch Chain specification.
  • Implemented to setup and execute multiple contracts for each Branch Chain.
  • Added Genesis Builder.

Consensus

  • Improved stability of the consensus algorithm for master node (Validator).
    • Exception handling.
    • Improved stability of the PBFT algorithm & memory usage.
  • Integrated the PBFT consensus algorithm with the general node module.
    • Working the consensus process with profile configurations.

Contract

  • OSGi framework integration in contract
    • Contract call in OSGi Bundle
    • Added the contract execution logic
  • Rebuilt Stem contract
  • Changed Contract Test process

Node/Network

  • Implemented block, transaction request and response parallelism.
    • Asynchronous broadcast and synchronization requests/responses
  • Implemented SyncManager.
    • CatchUp Sync
    • Propagable block size limits
  • Changed to organize the node network for each branch.
  • Implemented Health check for closest peers.
  • Refactored the network and peer package.
  • Added node and network test code.
    • Created a node test for each role.
    • Created a node discovery test.
    • Created a Node network configuration and block/transaction propagation test.
    • Test after creating and deploying a docker-compose.yml for node network testing local and test server

Test/Infrastructure

  • Setup an additional internal infrastructure.
    • Intel Xeon CPU, GTX GPU system for testing.
  • Tests for the consensus algorithm
    • Tested 21 validator nodes for algorithm stability.
  • Tests for block broadcasting
    • Tested 100 nodes for broadcasting

Overview

  • Contract 실행 및 개발 방법 변경
  • 컨센서스 알고리즘 개선 및 안정성, 기능 통합
  • 네트워크 연결방법 및 노드 구성 변경

Branch & Genesis

  • 브랜치체인 스펙 변경
  • 각 브랜치체인별 다중 컨트렉트 설정 및 실행
  • 제네시스 빌더 추가

Consensus

  • 대표노드(Validator) 합의 알고리즘 안정성 개선
    • 예외 사항 처리
    • PBFT 합의알고리즘 및 메모리 사용 안정성 개선
  • 일반노드에 합의알고리즘(PBFT) 기능 통합
    • Profile 설정으로 합의 기능 동작

Contract

  • Contract with OSGI
    • 컨트랙트 코드 추가
    • 컨트랙트 실행로직 추가
    • 번들을 위한 모듈 분리작업 (진행중)
  • Stem contract 재구축
  • Contract 테스트 방법 변경

Node/Network

  • 블록, 트랜잭션 요청 및 응답 병렬 처리
    • 비동기 방식의 브로드캐스트 및 동기화 요청/응답
  • SyncManager 구현
    • CatchUp sync
    • 전파 가능한 Block 크기 제한
  • 브랜치 별 노드 네트워크 구성
  • 주변 피어 health check
  • 네트워크 및 피어 패키지 리펙토링
  • 노드 및 네트워크 테스트 작성
    • 역할별 노드 테스트 작성
    • 노드 디스커버리 테스트 작성
    • 노드 네트워크 구성 및 블럭 및 트랜잭션 전파 테스트 작성
    • 로컬, 테스트 서버 테스트용 노드 네트워크 docker-compose.yml 작성 및 배포 후 테스트

Test/Infrastructure

  • 내부 테스트 환경 추가 구축

    • Intel Xeon CPU 및 GTX GPU 테스트 시스템
  • 합의 알고리즘 테스트

    • 대표노드간(21식) 합의 알고리즘 안정성 테스트
  • 블록 전파 테스트

    • 일반노드간(100식) 블록 전파 안정성 테스트

YGGDRASH Development Team Sprint #10

01 Feb 03:06
d5da30e
Compare
Choose a tag to compare

Overview

  • Implemented the PBFT consensus algorithm
  • Implemented Multi-Contract
  • Improved node discovery

Consensus

  • Designed and implemented the validator module for validators consensus
    • Designed the module architecture for supporting many consensus algorithms.(PoA, DPoA, DPoS, etc.)
    • Implemented functions for checking status and proposing, agreeing, confirming, storing blocks
  • Implemented the PBFT consensus algorithm
    • Implemented functions for creating & exchanging consensus messages(PrePrepare, Prepare, Commit, ViewChange)
    • Implemented protocols and algorithms for consensus
  • Designed and implemented unit modules for delegating(voting) validator nodes
    • Designed transaction formats and state stores for voting
    • Implemented functions for registering, updating, agreeing, reading states

Contract

  • Changed the contract interface
  • Implemented Multi-Contract
    • Change brach sepcifications
  • Added a provisional execution state for a contract
    • Added block, transaction temporary execution
    • Added block integrity verification
    • Save changes to the contract results
  • Added a contract manager
    • Add and delete local node contracts manage storage
    • Added contract validation
    • Added a contract ABI(JSON) call
  • Changed the method of calling the contract query method

Node/Network

  • Stabilized and verified the P2P network
  • Added a network filter to block malicious nodes
  • Changed peer-related terms
  • Improved node discovery
    • Removed the dependency of node discovery and peerTable on nodes
      • Changed peerTable, dht, node, nodeStatus structure and dependency
    • Implemented PeerTask for peer and channel management
      • 4 scheduler implementations
      • refresh (Kademlia lookup)
      • revalidate (verify the network status of peer from random peerbucket and replace or delete)
      • copyNode (only the peers that are kept longer than the minimum time is stored in the database)
      • healthCheck (channel management)
  • Improved logging
    • A node monitoring system has been built
    • ElasticSearch + Fluentd + Kibana