Skip to content

Commit 14c45aa

Browse files
committed
Merge branch 'bane-main' into upd-v1.13.15
2 parents e828bfc + 5c8a7e2 commit 14c45aa

File tree

68 files changed

+2238
-944
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+2238
-944
lines changed

CHANGELOG.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,99 @@
22

33
This document outlines major changes between releases.
44

5+
## 0.2.1 "Graphitization" (24 Jul 2024)
6+
7+
A patch version compatible with v0.2.0 release of Neo X node that brings a set of
8+
minor compatible improvements and bug fixes to system contracts, dBFT consensus
9+
engine and RPC APIs. This version is aimed to be run on the initial version of Neo X
10+
MainNet.
11+
12+
A new `config/genesis_mainnet.json` configuration file is added, please use this file
13+
to initialize a database for MainNet nodes. Ensure your MainNet node running script
14+
contains an updated network ID (`47763`) and a proper MainNet bootnode identifiers
15+
set. For T4 node operators it should be noted that this release does not require a DB
16+
resynchronisation. However, we recommend to update the node binary since it contains
17+
a dBFT-related bug fix that may affect the consensus functionality in a very specific
18+
set of conditions.
19+
20+
New features:
21+
* Multisignature system contract aimed to serve as an owner of Bridge and Bridge
22+
Management system contracts instead of a simple EOA account (#279)
23+
* genesis configuration for Neo X MainNet (#271)
24+
25+
Behavior changes:
26+
* initial candidate registration fee is lowered down to 1000 GAS in Governance
27+
system contract (#275, #281)
28+
* candidate exit fee ratio is increased up to 50% from the deposited value in
29+
Governance system contract (#275, #280, #281)
30+
31+
Improvements:
32+
* disable initialization code for every UUPS implementation (#259)
33+
* Bridge and Bridge Management system contracts update (#274)
34+
35+
Bugs fixed:
36+
* missing total votes update on transferring votes from exited candidate in
37+
Governance system contract (#260)
38+
* non-strict GovernanceVote system contract check for the number of voters (#267)
39+
* improper GAS estimation in `eth_estimateGas` Blockchain RPC API caused by changes
40+
in fee policies of Neo X (#263)
41+
* missing track of miner's work resume event which leads to dBFT hanging on next
42+
block awaiting when miner is suspended due to the node sync (#268)
43+
44+
45+
## 0.2.0 "Vitaminization" (10 Jul 2024)
46+
47+
A minor long-term supported version bringing new NeoXBurn hardfork that enables
48+
Policy-based transaction fees burning instead of dynamically evaluated fees of
49+
EIP-1559. This version contains compatible protocol extensions (transactions
50+
reannouncement mechanism), a set of enhanced system contract improvements
51+
(consensus candidates limit restrictions, registration deposit fee, voting transfer
52+
functionality, new Treasury system contract and more) and documentation upgrades.
53+
Additionally, as a result of security audit, this version contains a set of
54+
enhancements and stability/safety fixes for system contracts and dBFT protocol.
55+
This version is still based on v1.13.11 Geth implementation with Shanghai hardfork
56+
supported as the latest one.
57+
58+
This version is aimed to be run on a fresh Neo X T4 network. Please, ensure your node
59+
configuration includes the NeoXBurn hardfork, an upgraded network ID and all genesis
60+
allocations properly set. A new database should be initialized for this version, it's
61+
not compatible with an existing Neo X T3 testnet.
62+
63+
New features:
64+
* Treasury system contract aimed to fund Bridge operations (#184, #236)
65+
* reannouncement mechanism for pending mempooled transactions (#194)
66+
* reserved system contracts support (#236)
67+
68+
Behavior changes:
69+
* limit the number of candidates via Policy system contract (#216, #238)
70+
* NeoXBurn hardfork introducing BaseFee burning based on the Policy system contract
71+
setting (#166, #230, #249)
72+
* time lock is added for system contracts upgrade (#245)
73+
* 5% deposit fee is charged by Governance on candidate exiting from the Governance
74+
candidates list (#247)
75+
* candidate registration fee is increased from 1000 up to 20000 GAS (#236)
76+
77+
Improvements:
78+
* system contracts documentation updates (#173, #236)
79+
* `transferVote` method added to the Governance system contract (#182)
80+
* updated dBFT library dependency (#185)
81+
* optimize execution cost of system contracts (#195)
82+
* better event indexing for system contracts (#196)
83+
* Solidity compiler version upgraded for system contracts (#208)
84+
* improved error reporting for system contracts (#209)
85+
* better unit-test coverage for system contracts (#210, #211, #214, #215, #223)
86+
* clear votes for method call once enough votes are collected in GovernanceVote
87+
system contract (#227)
88+
* system contracts stability improvements (#217, #221, #241)
89+
90+
Bugs fixed:
91+
* reentrancy problem in GovernanceVote system contract (#195)
92+
* potential division by zero in Governance system contract (#225)
93+
* OnPersist system call processing missed in t8ntool execution flow (#229)
94+
* blacklisted accounts are allowed to be elected as consensus members (#242)
95+
* dBFT protocol payloads are not verified against consensus members by non-consensus
96+
nodes (#243)
97+
598
## 0.1.1 "Backdating" (18 April 2024)
699

7100
An urgent patch release to fix the bug in T3 genesis configuration file introduced in 0.1.0.

Makefile

Lines changed: 1 addition & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# with Go source code. If you know what GOPATH is then you probably
33
# don't need to bother with make.
44

5-
.PHONY: geth android ios evm all test clean privnet_init privnet_nodes_stop privnet_bootnode_stop privnet_stop privnet_clean privnet_start privnet_start_four privnet_start_seven
5+
.PHONY: geth android ios evm all test clean privnet_nodes_stop privnet_bootnode_stop privnet_stop privnet_clean privnet_start privnet_start_four privnet_start_seven
66

77
GETHBIN = ./build/bin
88
GO ?= latest
@@ -71,33 +71,6 @@ BOOTNODE_LOGLEVEL = 5
7171
RESTRICTED_NETWORK = 127.0.0.0/24
7272
NAT_POLICY = none
7373

74-
define generate_bootnode
75-
@mkdir -p $(1)/$(BOOTNODE)
76-
@$(GETHBIN)/bootnode -genkey $(1)/$(BOOTNODE)/bootnode.key
77-
@echo $$($(GETHBIN)/bootnode --writeaddress -nodekey $(1)/$(BOOTNODE)/bootnode.key) > $(1)/$(BOOTNODE)/bootnode_address.txt
78-
endef
79-
80-
define generate_password
81-
$$(</dev/urandom tr -dc '12345qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c$(PASSWORD_LEN); echo "")
82-
endef
83-
84-
define replace_chainid
85-
@sed -i "s/_chain_id_/$$(cat $(1)/networkid.txt)/gI" $(1)/$(GENESIS_WORK_JSON)
86-
endef
87-
88-
define replace_node_address
89-
@echo $$(cat $(1)/$(2)/keystore/* | sed -En 's/.*"address":"([^"]*).*/\1/p') > $(1)/$(2)/node_address.txt
90-
@sed -i "s/$(2)/$$(cat $(1)/$(2)/node_address.txt)/gI" $(1)/$(GENESIS_WORK_JSON)
91-
endef
92-
93-
define create_account
94-
@mkdir -p $(1)/$(2)
95-
@echo $(call generate_password) > $(1)/$(2)/password.txt
96-
@$(GETHBIN)/geth --datadir $(1)/$(2) account new --password $(1)/$(2)/password.txt
97-
$(call replace_node_address,$(1),$(2))
98-
@echo "Account $(1): "$$(cat $(1)/$(2)/node_address.txt)
99-
endef
100-
10174
define run_bootnode
10275
@$(GETHBIN)/bootnode -nodekey $(1)/$(BOOTNODE)/bootnode.key \
10376
-addr :$(BOOTNODE_PORT) \
@@ -171,60 +144,6 @@ devtools:
171144

172145
# Privnet targets
173146

174-
privnet_init: privnet_clean
175-
@find $(SINGLE_DIR)/* -type d -name 'keystore' -exec rm -rf {} +
176-
@mkdir -p $(SINGLE_DIR)
177-
@echo "Generate $(GENESIS_WORK_JSON) file"
178-
@cp $(SINGLE_DIR)/genesis_template.json $(SINGLE_DIR)/$(GENESIS_WORK_JSON)
179-
@echo $$(date +'%y%m%d%H%M') > $(SINGLE_DIR)/networkid.txt
180-
@echo "Network ID is "$$(cat $(SINGLE_DIR)/networkid.txt)
181-
@echo "Generate bootnode"
182-
$(call generate_bootnode,$(SINGLE_DIR))
183-
$(call replace_chainid,$(SINGLE_DIR))
184-
@echo "Create accounts"
185-
$(call create_account,$(SINGLE_DIR),$(NODE1))
186-
$(call create_account,$(SINGLE_DIR),$(NODE2))
187-
@echo "OK! For starting use 'make privnet_start'"
188-
189-
privnet_init_four: privnet_clean
190-
@find $(FOUR_DIR)/* -type d -name 'keystore' -exec rm -rf {} +
191-
@mkdir -p $(FOUR_DIR)
192-
@echo "Generate $(GENESIS_WORK_JSON) file"
193-
@cp $(FOUR_DIR)/genesis_template.json $(FOUR_DIR)/$(GENESIS_WORK_JSON)
194-
@echo $$(date +'%y%m%d%H%M') > $(FOUR_DIR)/networkid.txt
195-
@echo "Network ID is "$$(cat $(FOUR_DIR)/networkid.txt)
196-
@echo "Generate bootnode"
197-
$(call generate_bootnode,$(FOUR_DIR))
198-
$(call replace_chainid,$(FOUR_DIR))
199-
@echo "Create accounts"
200-
$(call create_account,$(FOUR_DIR),$(NODE1))
201-
$(call create_account,$(FOUR_DIR),$(NODE2))
202-
$(call create_account,$(FOUR_DIR),$(NODE3))
203-
$(call create_account,$(FOUR_DIR),$(NODE4))
204-
$(call create_account,$(FOUR_DIR),$(NODE5))
205-
@echo "OK! For starting use 'make privnet_start_four'"
206-
207-
privnet_init_seven: privnet_clean
208-
@find $(SEVEN_DIR)/* -type d -name 'keystore' -exec rm -rf {} +
209-
@mkdir -p $(SEVEN_DIR)
210-
@echo "Generate $(GENESIS_WORK_JSON) file"
211-
@cp $(SEVEN_DIR)/genesis_template.json $(SEVEN_DIR)/$(GENESIS_WORK_JSON)
212-
@echo $$(date +'%y%m%d%H%M') > $(SEVEN_DIR)/networkid.txt
213-
@echo "Network ID is "$$(cat $(SEVEN_DIR)/networkid.txt)
214-
@echo "Generate bootnode"
215-
$(call generate_bootnode,$(SEVEN_DIR))
216-
$(call replace_chainid,$(SEVEN_DIR))
217-
@echo "Create accounts"
218-
$(call create_account,$(SEVEN_DIR),$(NODE1))
219-
$(call create_account,$(SEVEN_DIR),$(NODE2))
220-
$(call create_account,$(SEVEN_DIR),$(NODE3))
221-
$(call create_account,$(SEVEN_DIR),$(NODE4))
222-
$(call create_account,$(SEVEN_DIR),$(NODE5))
223-
$(call create_account,$(SEVEN_DIR),$(NODE6))
224-
$(call create_account,$(SEVEN_DIR),$(NODE7))
225-
$(call create_account,$(SEVEN_DIR),$(NODE8))
226-
@echo "OK! For starting use 'make privnet_start_seven'"
227-
228147
privnet_nodes_stop:
229148
@echo "Killing nodes processes"
230149
@killall -w -v -INT geth || :

0 commit comments

Comments
 (0)