Releases: keep-network/keep-core
v0.9.1
v0.9.0
- Bugfix: Could not add filter for channel failure during DKG channel initialization (#1187)
- Bugfix: keep-clients "loose contract access" if the eth-tx node is cycled (#1057)
- Update yellowpaper to reflect the content of RFCs (#935)
- Reentrancy protection (#1261)
- Stake delegation and undelegation adjustments (#932)
- Authorizations in the upgrade scheme (#1072)
- Authorization of operator contracts for slashing (#930)
- Slashing scheme implementation (#805)
- Reward for relay entry timeout tattletale (#1079)
- Operator callback reimbursement in the operator contract (#1048)
- npm audit fix smart contract dependencies (#1288)
- libp2p transport layer encryption (#1327)
- Eliminate the possibility of accepting late retransmission (#1279)
- Validate if a peer is allowed to participate in threshold signature (#797)
- libp2p buffers adjustments - improve message delivery rate (#1286)
- Improve libp2p broadcast channel message delivery pipeline (#1328)
- Increase active time for commitment and points validation phases of GJKR (#1326)
- Remove idle states and wait delays from state machines (#1278)
- Optimization of relay entry verification gas cost to not include the cost of creating new group (#1236)
Token Dashboard:
v0.8.0
- Bugfix: Group selection occasionally fails on Infura (#1247, #1238)
- Bugfix: Group selection is not triggered again after a failure (#1249)
- Retransmitter refinements - improve message delivery rate (#1251)
- Adjust gas price for Ropsten (#1250)
- Signing group member as a relay entry timeout tattletale (#1234)
Token Dashboard:
- Pending transaction indicator (#1217)
- Web3 connection status (#1224)
- Layout reorganization (#1237)
- Bugfix: Undelegation failure: _this.state.stakeBalance.sub is not a function (#1252)
Infrastructure:
- Infrastructure for public testnet (#1074)
v0.7.0
- Bugfix: Do not allow to submit relay entry more than one time (#1226)
- Bugfix: Message unmarshallers registered too late (#1218)
- Bugfix: Relay entry verification gas cost peaks (#1212)
- Bugfix: Failing DKG because of invalid detection of identical messages in network time cache (#1211)
- Bugfix: Group is marked as stale too early (#1188)
- Bugfix: Disk persistence failure during group archival (#1186)
- Bugfix: Incorrect encoding of the previous entry and seed for signature (#1066)
- Simplified stake delegation - no operator's signature is required (#1190)
- Reduce operator contract size (#1140, #1095)
- Upgrade go-ethereum version (#1139)
- libp2p message retransmitter (#1138)
- Ticket packing (#1136)
- Increase group size to 64 members (#1112)
- Optimized ticket selection algorithm (#1098)
- Relay entry verification cost optimizations (#1096)
- Optimize block times for public testnet (#1073)
- Validate group member candidate stake during ticket submission (#1071)
- Reject duplicate group member candidate tickets (#1067)
- Solidity test execution time optimization (#1061)
- Migrate to Go modules (#1051)
- Multiple bootstrap nodes (#1047)
- DKG: discard shares received from disqualified members (#1036)
- DKG: reconstruct shares from inactive qualified members (#1035)
- Split off pkg/chain/ethereum/ethutil to keep-common repo (#1012)
- Configurable client's address to announce in the network (#1012)
Token Dashboard:
- Refresh pending unstakes list after successful undelegation (#1181)
- Block buttons/forms on pending user actions (#1180)
- Upgrade web3 version (#1173)
- Remove blinking become an operator component (#1158)
- Access features by URL (#1157)
- Support for multiple accounts (#1154)
Infrastructure:
v0.6.0
Changes in the release:
- Bugfix: Incorrect group threshold when signing relay entry
- Bugfix: Total number of groups must be greater than zero
- Bugfix: Inactive and disqualified bytes arrays don't match the group size
- Bugfix: Non-uniform distribution of group selection results
- Bugfix: Incorrect seed for group selection and Pedersen commitment
- Bugfix: Group can collude to provide desired input for signing
- Token grants implementation
- Basic NAT support
- Timeout for a relay entry
- Let to re-trigger genesis when the first group creation failed
- Member inactivity test scenarios for DKG
- OpenZeppelin upgrade to 2.3.0
- Log the gas cost of contract calls
- Test engine for DKG
v0.5.0
Changes in the release:
- Basic logging in the client
- Serialize relay requests
- Contract upgrade scheme implementation
- Cleanup DKG result submission - there can be only one DKG in progress
- Go-ethereum version upgrade
- Keep client group membership state management
- Contract callback for relay requests
- Command-line interface to contracts
- Stake delegation
- Retry mechanism for network bootstrap
- Support for concurrent relay requests in the off-chain thresholdsig protocol
- Research: Token grant RFC
- Timeout for a group selection
- Infrastructure: Kube InitContainer keep-client configuration
- Infrastructure: Kube InitContainer for ETH account create
- Infrastructure: Kube InitContainer for ETH account unlock and stake
v0.4.0
Changes in the release:
- DKG on-chain result publication without voting
- Group expiration by block age
- Properly extract errors in case of contract function revert
- Libp2p version upgrade
- Message signature verification in libp2p
- Update network security implementation RFC with libp2p security changes
- Extract tECDSA to a separate repository
- Switch from gossipsub to floodsub
- Local chain stub test coverage improvements
- Refactor DKG group membership code to allow for IA/DQ filtering in DKG P13
- Bugfix: All handlers use the same name in the state machine
- Bugfix: Dropped network messages
- Bugfix: Broken handler unregistration in libp2p broadcast channel
- Bugfix: Block counter drops notification about new mined blocks
- Bugfix: Cannot fetch selected tickets right after ticket challenge timeout
- Infrastructure: Circle: Get various js scripts running via Circle
- Infrastructure: Truffle js scripts: Parallelize scripts that act on eth accounts
- Infrastructure: Script to submit relay entry
- Infrastructure: Keel implementation via Terraform
- Infrastructure: Circle config upgrade + GCR auth
- Infrastructure: Retrofit keep-dev keep-clients for standard image deployment
- Infrastructure: keep-client toml/eth account data as config-maps POC
v0.3.0
Notable changes in the release:
- Support for relay requests
- On-chain BLS signature verification
- Support for threshold relay signing
- Improved block wait times synchronization
- Bugfix: "Could not find unmarshaller for relay/signature/share message type"
v0.2.0
Version 0.2.0 contains the implementation of the Distributed Key Generation for the threshold relay based on a protocol by Gennaro, Jarecki, Krawczyk and Rabin [GJKR]. GJKR is further based on Pedersen-VSS (verifiable secret sharing) [Ped]. For this implementation, GJKR has been modified to make protocol violations objectively attributable and remove the need for one-to-one messaging channels.
Notable changes in the release are:
- Implemented a simplified group selection protocol (phase 1 and 2),
- Each relay entry generates a new group. Each new group triggers DKG protocol,
- Each newly registered group triggers submission of a new relay entry,
- DKG protocol has been implemented up to phase 13,
- Network messages are signed with peer's static key,
- Each network peer needs to maintain a minimum stake of KEEP tokens.
[GJKR] Gennaro R., Jarecki S., Krawczyk H., Rabin T. (1999) Secure Distributed Key Generation for Discrete-Log Based Cryptosystems. In: Stern J. (eds) Advances in Cryptology — EUROCRYPT ’99. EUROCRYPT 1999. Lecture Notes in Computer Science, vol 1592. Springer, Berlin, Heidelberg
[Ped] Pedersen T.P. (1992) Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing. In: Feigenbaum J. (eds) Advances in Cryptology — CRYPTO ’91. CRYPTO 1991. Lecture Notes in Computer Science, vol 576. Springer, Berlin, Heidelberg