Alpha-0.1
What's New
Key Features
- Implement the core architecture with Polkadot SDK solochain template. #1 ; #9 #10
- Implement the PoW mining pipeline, including PoW block production, node-level mining flow, premature block rejection, and custom-address mining support. #2 ; #11 #12 #67 #70
- Implement ASERT difficulty adjustment, including pallet-difficulty runtime integration, ASERT difficulty calculation, block timestamp drift checks, and a re-anchoring mechanism after long mining outages to prevent chains of low-difficulty empty blocks after recovery. #3 ; #13 #14 #15 #16 #65
- Implement validator lifecycle management, including validator pallet runtime integration, validator staking, auto-renewal, voluntary exit, automatic unlock on expiry, offline eviction via ImOnline, cooldown-based rejoin after eviction, and onboarding flow for new validators. #6 #7 ; #22 #23 #24 #25 #26 #27 #28 #29 #31 #76
- Implement session-based validator rotation, including pallet-session runtime integration and SessionManager-based coordination between validator candidates and session transitions, so validator set changes take effect at session boundaries. #5 #7 ; #20 #21
- Implement GRANDPA finality and safety, including pallet-grandpa runtime integration, node-level GRANDPA voter integration, PoW fork choice constrained by finalized blocks, and GRANDPA equivocation detection with slashing support. #4 #7 ; #17 #18 #19 #30
Test
What's Changed
- Switch the polkadot sdk repository to github by @motoZ-crypto in #62
- Bump dependencies by @motoZ-crypto in #63
- Remove license info from the upstream template by @motoZ-crypto in #78
Node & Runtime
- Create Project Skeleton and Cargo Workspace by @motoZ-crypto in #38
- Configure Base Runtime by @motoZ-crypto in #39
- Implement PoW Placeholder Algorithm by @motoZ-crypto in #40
- Add dev mode miner account handling to command and service layers by @motoZ-crypto in #64
- Spawn GRANDPA observer task for non-validator nodes by @motoZ-crypto in #73
Pallet
- Integrate PoW into Node Service Layer by @motoZ-crypto in #41
- Integrate pallet-difficulty into Runtime by @motoZ-crypto in #42
- Integrate pallet-grandpa into Runtime by @motoZ-crypto in #45
- Integrate GRANDPA voter in service by @motoZ-crypto in #46
- Integrate pallet-session into Runtime by @motoZ-crypto in #48
- Integrate pallet-validator into Runtime by @motoZ-crypto in #49
- Integrate pallet-im-online into Runtime by @motoZ-crypto in #56
- Implement ASERT Difficulty Calculation Logic by @motoZ-crypto in #43
- Implement Block Timestamp Drift Validation by @motoZ-crypto in #44
- Implement Validator Lock by @motoZ-crypto in #50
- Implement Lock Auto-Renewal Mechanism by @motoZ-crypto in #52
- Implement Validator Exit Mechanism by @motoZ-crypto in #53
- Implement Lock Expiry Auto-Unlock by @motoZ-crypto in #54
- Implement SessionManager Trait for pallet-session Integration by @motoZ-crypto in #55
- Implement Offline Kick Logic by @motoZ-crypto in #57
- Implement GRANDPA Equivocation Detection and Kick by @motoZ-crypto in #58
- Implement custom address mining by @motoZ-crypto in #71
- Implement validator join & tools by @motoZ-crypto in #75
- Remove pallet template by @motoZ-crypto in #59
- Remove the default comments in the template by @motoZ-crypto in #60
- PoW fork choice respects GRANDPA finality by @motoZ-crypto in #47
- ASERT re-anchoring by @motoZ-crypto in #66
- Reject too early block by @motoZ-crypto in #68
- Update ASERT anchor height to u64 and propagate the change by @motoZ-crypto in #79
- Unify block time configuration and fix timestamp minimum period by @motoZ-crypto in #51
- Validator status cleanup by @motoZ-crypto in #61
- Validator genesis config by @motoZ-crypto in #72
- Override new_session_genesis to fix initial set by @motoZ-crypto in #74
- Prevent validator rejoin at cooldown boundary by @motoZ-crypto in #80
Test
- adjust validator LockDuration for testing by @motoZ-crypto in #69
- Rewrite tests and clean up clippy warnings by @motoZ-crypto in #81
- Set up Zombienet and integration testing by @motoZ-crypto in #77
Full Changelog: https://github.com/motoZ-crypto/crypto-node/commits/Alpha-0.1