Releases: yggdrash/yggdrash
Releases · yggdrash/yggdrash
YGGDRASH Mainnet v 1.0.0
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
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
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
YGGDRASH Release v0.7.0
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
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
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
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
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
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
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)
- Removed the dependency of node discovery and peerTable on nodes
- Improved logging
- A node monitoring system has been built
- ElasticSearch + Fluentd + Kibana