Apricot Phase 6
patrick-ogrady
released this
05 Sep 04:31
·
1990 commits
to master
since this release
This is a mandatory security upgrade. Please upgrade your node as soon as possible.
The changes in the upgrade go into effect at 4 PM EDT on September 6th, 2022 on both Fuji and Mainnet. You should upgrade your node before the changes go into effect, otherwise they may experience loss of uptime.
You may see some extraneous ERROR logs ("BAD BLOCK") on your node after upgrading. These may continue until the Apricot Phase 6 activation (at 4 PM EDT on September 6th).
The supported plugin version is 16
.
PlatformVM APIs
- Fixed
GetBlock
API when requesting the encoding asjson
- Changed the json key in
AddSubnetValidatorTx
s fromsubnet
tosubnetID
- Added multiple asset support to
getBalance
- Updated
PermissionlessValidator
s returned fromgetCurrentValidators
andgetPendingValidators
to includevalidationRewardOwner
anddelegationRewardOwner
- Deprecated
rewardOwner
inPermissionlessValidator
s returned fromgetCurrentValidators
andgetPendingValidators
- Added
subnetID
argument togetCurrentSupply
- Added multiple asset support to
getStake
- Added
subnetID
argument togetMinStake
PlatformVM Structures
- Renamed existing blocks
ProposalBlock
->ApricotProposalBlock
AbortBlock
->ApricotAbortBlock
CommitBlock
->ApricotCommitBlock
StandardBlock
->ApricotStandardBlock
AtomicBlock
->ApricotAtomicBlock
- Added new block types to be enabled in a future release
BlueberryProposalBlock
- Introduces a
Time
field and an unusedTxs
field before the remainingApricotProposalBlock
fields
- Introduces a
BlueberryAbortBlock
- Introduces a
Time
field before the remainingApricotAbortBlock
fields
- Introduces a
BlueberryCommitBlock
- Introduces a
Time
field before the remainingApricotCommitBlock
fields
- Introduces a
BlueberryStandardBlock
- Introduces a
Time
field before the remainingApricotStandardBlock
fields
- Introduces a
- Added new transaction types to be enabled in a future release
RemoveSubnetValidatorTx
- Can be included into
BlueberryStandardBlock
s - Allows a subnet owner to remove a validator from their subnet
- Can be included into
TransformSubnetTx
- Can be included into
BlueberryStandardBlock
s - Allows a subnet owner to convert their subnet into a permissionless subnet
- Can be included into
AddPermissionlessValidatorTx
- Can be included into
BlueberryStandardBlock
s - Adds a new validator to the requested permissionless subnet
- Can be included into
AddPermissionlessDelegatorTx
- Can be included into
BlueberryStandardBlock
s - Adds a new delegator to the requested permissionless validator on the requested subnet
- Can be included into
PlatformVM Block Building
- Fixed race in
AdvanceTimeTx
creation to avoid unnecessary block construction - Added
block_formation_logic.md
to describe how blocks are created - Refactored
BlockBuilder
intoApricotBlockBuilder
- Added
BlueberryBlockBuilder
- Added
OptionBlock
builder visitor - Refactored
Mempool
issuance and removal logic to use transaction visitors
PlatformVM Block Execution
- Added support for executing
AddValidatorTx
,AddDelegatorTx
, andAddSubnetValidatorTx
inside of aBlueberryStandardBlock
- Refactored time advancement into a standard state modification structure
- Refactored
ProposalTxExecutor
to abstract state diff creation - Standardized upgrade checking rules
- Refactored subnet authorization checking
Wallet
- Added support for new transaction types in the P-chain wallet
- Fixed fee amounts used in the Primary Network wallet to reduce unnecessary fee burning
Networking
- Defined
p2p.proto
to be used for future network messages - Added
--network-tls-key-log-file-unsafe
to support inspecting p2p messages - Added
avalanche_network_accept_failed
metrics to track networkingAccept
errors
Miscellaneous
- Removed reserved fields from proto files and renumbered the existing fields
- Added generic dynamically resized ring buffer
- Updated gRPC version to
v1.49.0
to fix non-deterministic errors reported in therpcchainvm
- Removed
--signature-verification-enabled
flag - Removed dead code
ids.QueueSet
timer.Repeater
timer.NewStagedTimer
timer.TimedMeter
Coreth
- Incorrectly deprecated Native Asset Call
- Migrated to go-ethereum v1.10.23
- Added API to fetch Chain Config