Skip to content

Releases: celo-org/celo-blockchain

Celo-Blockchain Release 1.8.7

06 Dec 17:18
Compare
Choose a tag to compare
Pre-release

This release can be skipped for mainnet.

The latest release sets the L2MigrationBlock for Alfajores testnet (already migrated but to keep a clean client):

Block Number: 26384000
Sep-26-2024 08:14:35 AM UTC

Full Changelog: v1.8.5...v1.8.7

Docker Images

Celo-Blockchain Release 1.8.5

20 Sep 17:03
v1.8.5
ceec53f
Compare
Choose a tag to compare
Pre-release

What's Changed

This release can be skipped for mainnet.

The latest release introduces a new command-line flag, --l2migrationblock, which expects a (future) block number. When specified, the node will pause at l2migrationblock - 1 block. This feature is designed to assist chain operators with the migration to the new Cel2 architecture.

Full Changelog: v1.8.4...v1.8.5

Docker Images

Celo-Blockchain Release 1.8.4

24 Apr 10:42
Compare
Choose a tag to compare

Bug Fixes

The v1.8.3 release introduced a bug in the effectiveGasPrice calculation for the RPC output. This release fixes that bug. All fee payments have been correct all the time.

Full Changelog: v1.8.3...v1.8.4

Docker Images

Celo-Blockchain Release 1.8.3

19 Apr 10:36
v1.8.3
12cda24
Compare
Choose a tag to compare

This release mainly adds features to the JSON RPC.

The finalized tag was added to the RPC methods for retrieving blocks or headers. The resulting blocks are equivalent to latest blocks, since CELO has 1-block finality.
Additionally the eth_getBlockReceipts endpoint has been implemented, providing a more efficient way to receive all block receipts for a block (see ethereum/execution-apis#393)

This release is recommended for users that rely on the eth_getBlockReceipts endpoint or retrieving finalized blocks from the RPC.

Enhancements

  • Implement eth_getBlockReceipts (#2284)
  • Allow use of finalized tag in rpc requests (#2298)
  • Add --json flag to mycelo env (#2300)

Full Changelog: v1.8.2...v1.8.3

Docker Images

Celo-Blockchain Release 1.8.2

13 Mar 10:45
6211e07
Compare
Choose a tag to compare

Celo-blockchain v1.8.2 includes a a collection of bug fixes and improvements in preparation of the launch of new fee currencies.
We highly recommend this update for all users.

Enhancements

  • Validate debitGasFees execution in tx pool (#2279)
  • Improve error messages for credit/debit reverts (#2271)
  • Remove special handling for gas estimation (#2274)

Bug fixes

  • fix: Only skip debit/credit on gas estimation (#2273)
  • Correct hardcoded gas limit for mainnet (#2272)
  • p2p: move ping handling into pingLoop goroutine (#2280)

Docker Images

geth: us.gcr.io/celo-org/geth:1.8.2
geth-all: us.gcr.io/celo-org/geth-all:1.8.2

Celo-Blockchain Release 1.8.1

26 Feb 10:30
5709f93
Compare
Choose a tag to compare

Celo-blockchain v1.8.1 includes a a collection of bug fixes and enhancements for the blockchain client.
We recommend this update for all users.

Enhancements

  • eth/filters: send rpctransactions in pending-subscription (#2252)
  • eth/tracers: add txHash field on txTraceResult (#2254)
  • eth/filter, ethclient/gethclient: added fullTx-flag to NewPendingTransactions (#2239)
  • Implemented the limit per fee currency (#2203)
  • Improve performance of answerGetBlockBodiesQuery (#2198)
  • build: upgrade to go 1.19 (#2189)
  • RSDB: metrics and performance improvements (#2184)

Bug fixes

  • Skip debit/credit during gas estimation (#2258)
  • Properly create SysCtx in AccessList RPC (#2257)
  • Hardcode pre gingerbread block gas limits for existing chains (#2229)
  • Fix underpriced check for multi currency (#2230)
  • Fix genesis block gingerbread fields (#2245)
  • Use glibc for amd64 and muslc for arm64 (#2213)
  • Add chain_head_gasprice gauge metric (#2208)
  • Handle failing fee conversion (#2159)
  • Fix tracing for transactions using on-chain randomness in latest block (#2186)

Docker Images

geth: us.gcr.io/celo-org/geth:1.8.1
geth-all: us.gcr.io/celo-org/geth-all:1.8.0

Celo-Blockchain Release 1.8.1-rc.1

21 Feb 13:35
Compare
Choose a tag to compare
Pre-release

Celo-blockchain v1.8.1-rc.1 includes a a collection of bug fixes and enhancements for the blockchain client.

Enhancements

  • eth/filters: send rpctransactions in pending-subscription (#2252)
  • eth/tracers: add txHash field on txTraceResult (#2254)
  • eth/filter, ethclient/gethclient: added fullTx-flag to NewPendingTransactions (#2239)
  • Implemented the limit per fee currency (#2203)
  • Improve performance of answerGetBlockBodiesQuery (#2198)
  • build: upgrade to go 1.19 (#2189)
  • RSDB: metrics and performance improvements (#2184)

Bug fixes

  • Skip debit/credit during gas estimation (#2258)
  • Properly create SysCtx in AccessList RPC (#2257)
  • Hardcode pre gingerbread block gas limits for existing chains (#2229)
  • Fix underpriced check for multi currency (#2230)
  • Fix genesis block gingerbread fields (#2245)
  • Use glibc for amd64 and muslc for arm64 (#2213)
  • Add chain_head_gasprice gauge metric (#2208)
  • Handle failing fee conversion (#2159)
  • Fix tracing for transactions using on-chain randomness in latest block (#2186)

Docker Images

Celo-Blockchain Release 1.8.0-stable

05 Sep 21:15
v1.8.0
Compare
Choose a tag to compare

The Mainnet activation block is 21616000 targeting an activation at ~17:15 UTC on Tuesday September 26th.
The Alfajores activation block is 19814000 targeting an activation at ~17:30 UTC on Monday September 11th.

The biggest and most important change in v1.8.0 is the implementation and activation of the Gingerbread Fork

Gingerbread Hardfork

For an overview of all the CIPs included in the hardfork, see CIP-62, the Gingerbread hardfork.

Below follows an overview of changes, which is grouped by affected parts of the protocol rather than the originating CIPs.

Sending transactions

As a result of CIP-57, transactions must not set the fields gatewayFee or gatewayFeeRecipient.

A new envelope transaction is added, the CIP-64: New Transaction Type: Celo Dynamic Fee v2, which is the EIP-1559 tx, with the feeCurrency. Check the deprecation warning on the CIP-62, but this new transaction is going to be the only valid way to pay in a different currency in the future, so we recommend to start migrating the applications that use that feature.

Changing gas costs

CIP-58 changes the gas costs to be more in line with Ethereum. As a result, transactions will have different (usually somewhat higher) gas costs than before.

New block header fields and header hash calculation

The following fields have been added to the block header and the JSON-RPC output in order to increase compatibility with Ethereum:

  • baseFee
  • gasLimit
  • difficulty (constant)
  • nonce (constant)
  • uncles (constant; included in the RPC output, but actually only stored in the block body, not the header)
  • sha3Uncles (constant)
  • mixHash (constant)

By adding new fields to the header, the header hash calculation also changes. Fortunately, this allows us to use exactly the same hash calculation as Ethereum. The header is now calculated by hashing the fields in the following order:

  1. parentHash
  2. sha3Uncles
  3. miner
  4. stateRoot
  5. transactionsRoot
  6. receiptsRoot
  7. logsBloom
  8. difficulty
  9. number
  10. gasLimit
  11. gasUsed
  12. timestamp
  13. extraData
  14. mixHash
  15. nonce
  16. baseFee

New opcodes

Along with the header fields baseFee and gasLimit, opcodes for fetching these values are provided:

Opcode name hex solidity CIP
GASLIMIT 0x45 block.gaslimit CIP-60
BASEFEE 0x48 block.basefee CIP-61

Removed features

In addition to the changes above, some features have been removed, which should not impact Celo users in any noticeable way:

Base fee recipients

Another change that should not be directly noticeable by users, but is interesting enough to call out explicitly is CIP-52: Ultragreen Celo, which burns 80% of each transactions base fee and directs the other 20% to the Green Fund.

Block Data Limit

A limit of 5mb on the transactions' data was added to allow us to increase the block gas limit avoiding some specific attacks that aim to stall the network with bigger blocks. More info in the CIP-65: Total Transaction Data Limit. The actual limit due to our gas limit is less than 5mb, so this change won't affect any functionality, but will give us the tools to increase our throughput.

Flag changes

The following flag has been deprecated and will be removed in a future release.

--disablerpcethcompatibility          (all blocks are going to be ethCompatible after the hard fork)
--light.gatewayfee

The following flag has been added

--rpc.gaspricemultiplier value      Multiplier applied to the gasPrice rpc call (1 = gasPrice, 1.3 = gasPrice + 30%, etc. Defaults to 2.0) (default: 2) 

gaspricemultiplier was 5 by default to guarantee every tx more time in the tx_pool, but we changed it to settable by node operators request.

Other notable changes

  • Fix transfer prestate tracer (#2075)
  • Merge native tracer (#2137) (from upstream)
  • Fix RPC calls (gasLimit, gasPrice) use the initial state of the block (#2161)
    • The RPC block responses were serializing the wrong gasLimit and the baseFeePerGas. Instead of showing those fields with the initial state of the block, were using the final state, so they were showing the data of the block N+1 for those fields.
    • The RPC transaction responses for types DynamicFeeTx (0x02) or CeloDynamicFeeTx (0x7c) were serializing the wrong gasPrice. Instead of using the baseFee of the initial state of the block, were using the final state, so those transactions were showing the gasPrice calculation with the block N+1 data.

Docker Images

geth: us.gcr.io/celo-org/geth:1.8.0
geth-all: us.gcr.io/celo-org/geth-all:1.8.0

Celo-Blockchain Release 1.8.0-beta.2

22 Aug 18:10
v1.8.0-beta.2
Compare
Choose a tag to compare
Pre-release

v1.8.0-beta.2 is the Baklava-only release of v1.8.0, which has the functionalities of the second part of the Gingerbread Hardfork. After testing on the Baklava testnet, it will be followed by v1.8.0-stable which will be intended for both Mainnet and Alfajores networks.

The baklava activation block of the Gingerbread Part 2 is 19157000 targeting an activation at ~14:30 UTC on Friday September 1st.

The biggest and most important change in v1.8.0 is the implementation and activation of the Gingerbread Fork

Gingerbread Hardfork

For an overview of all the CIPs included in the hardfork, see CIP-62, the Gingerbread hardfork (the CIP will be in final stage for the stable version with all the activation blocks).

Below follows an overview of changes, which is grouped by affected parts of the protocol rather than the originating CIPs.

Sending transactions

As a result of CIP-57, transactions must not set the fields gatewayFee or gatewayFeeRecipient.

[Gingerbread Part 2] A new envelope transaction is added, the CIP-64: New Transaction Type: Celo Dynamic Fee v2, which is the EIP-1559 tx, with the feeCurrency. Check the deprecation warning on the CIP-62, but this new transaction is going to be the only valid way to pay in a different currency in the future, so we recommend to start migrating the applications that use that feature.

Changing gas costs

CIP-58 changes the gas costs to be more in line with Ethereum. As a result, transactions will have different (usually somewhat higher) gas costs than before.

New block header fields and header hash calculation

The following fields have been added to the block header and the JSON-RPC output in order to increase compatibility with Ethereum:

  • baseFee
  • gasLimit
  • difficulty (constant)
  • nonce (constant)
  • uncles (constant; included in the RPC output, but actually only stored in the block body, not the header)
  • sha3Uncles (constant)
  • mixHash (constant)

By adding new fields to the header, the header hash calculation also changes. Fortunately, this allows us to use exactly the same hash calculation as Ethereum. The header is now calculated by hashing the fields in the following order:

  1. parentHash
  2. sha3Uncles
  3. miner
  4. stateRoot
  5. transactionsRoot
  6. receiptsRoot
  7. logsBloom
  8. difficulty
  9. number
  10. gasLimit
  11. gasUsed
  12. timestamp
  13. extraData
  14. mixHash
  15. nonce
  16. baseFee

New opcodes

Along with the header fields baseFee and gasLimit, opcodes for fetching these values are provided:

Opcode name hex solidity CIP
GASLIMIT 0x45 block.gaslimit CIP-60
BASEFEE 0x48 block.basefee CIP-61

Removed features

In addition to the changes above, some features have been removed, which should not impact Celo users in any noticeable way:

Base fee recipients

Another change that should not be directly noticeable by users, but is interesting enough to call out explicitly is CIP-52: Ultragreen Celo, which burns 80% of each transactions base fee and directs the other 20% to the Green Fund.

Block Data Limit [Gingerbread P2]

A limit of 5mb on the transactions' data was added to allow us to increase the block gas limit avoiding some specific attacks that aim to stall the network with bigger blocks. More info in the CIP-65: Total Transaction Data Limit. The actual limit due to our gas limit is less than 5mb, so this change won't affect any functionality, but will give us the tools to increase our throughput.

Flag changes

The following flag has been deprecated and will be removed in a future release.

--disablerpcethcompatibility          (all blocks are going to be ethCompatible after the hard fork)
--light.gatewayfee

The following flag has been added

--rpc.gaspricemultiplier value      Multiplier applied to the gasPrice rpc call (1 = gasPrice, 1.3 = gasPrice + 30%, etc. Defaults to 2.0) (default: 2) 

gaspricemultiplier was 5 by default to guarantee every tx more time in the tx_pool, but we changed it to settable by node operators request.

Other notable changes

  • Fix transfer prestate tracer (#2075)
  • Merge native tracer (#2137) (from upstream)
  • Fix RPC calls (gasLimit, gasPrice) use the initial state of the block (#2161)
    • The RPC block responses were serializing the wrong gasLimit and the baseFeePerGas. Instead of showing those fields with the initial state of the block, were using the final state, so they were showing the data of the block N+1 for those fields.
    • The RPC transaction responses for types DynamicFeeTx (0x02) or CeloDynamicFeeTx (0x7c) were serializing the wrong gasPrice. Instead of using the baseFee of the initial state of the block, were using the final state, so those transactions were showing the gasPrice calculation with the block N+1 data.

Docker Images

geth: us.gcr.io/celo-org/geth:1.8.0-beta.2
geth-all: us.gcr.io/celo-org/geth-all:1.8.0-beta.2

Celo-Blockchain Release 1.8.0-beta.1

26 Jul 20:57
v1.8.0-beta.1
Compare
Choose a tag to compare
Pre-release

v1.8.0-beta.1 is the Baklava-only release of v1.8.0. After testing on the Baklava testnet, it will be followed by v1.8.0-stable which will be intended for both Mainnet and Alfajores networks.

The baklava activation block is 18785000 targeting an activation at ~15:03 UTC on Thursday August 10th.

The biggest and most important change in v1.8.0 is the implementation and activation of the Gingerbread Fork

Gingerbread Hardfork

For an overview of all the CIPs included in the hardfork, see CIP-62, the Gingerbread hardfork (the CIP will be merged for the stable version with all the activation blocks).

Below follows an overview of changes, which is grouped by affected parts of the protocol rather than the originating CIPs.

Sending transactions

As a result of CIP-57, transactions must not set the fields gatewayFee or gatewayFeeRecipient.

Changing gas costs

CIP-58 changes the gas costs to be more in line with Ethereum. As a result, transactions will have different (usually somewhat higher) gas costs than before.

New block header fields and header hash calculation

The following fields have been added to the block header and the JSON-RPC output in order to increase compatibility with Ethereum:

  • baseFee
  • gasLimit
  • difficulty (constant)
  • nonce (constant)
  • uncles (constant; included in the RPC output, but actually only stored in the block body, not the header)
  • sha3Uncles (constant)
  • mixHash (constant)

By adding new fields to the header, the header hash calculation also changes. Fortunately, this allows us to use exactly the same hash calculation as Ethereum. The header is now calculated by hashing the fields in the following order:

  1. parentHash
  2. sha3Uncles
  3. miner
  4. stateRoot
  5. transactionsRoot
  6. receiptsRoot
  7. logsBloom
  8. difficulty
  9. number
  10. gasLimit
  11. gasUsed
  12. timestamp
  13. extraData
  14. mixHash
  15. nonce
  16. baseFee

New opcodes

Along with the header fields baseFee and gasLimit, opcodes for fetching these values are provided:

Opcode name hex solidity CIP
GASLIMIT 0x45 block.gaslimit CIP-60
BASEFEE 0x48 block.basefee CIP-61

Removed features

In addition to the changes above, some features have been removed, which should not impact Celo users in any noticeable way:

Base fee recipients

Another change that should not be directly noticeable by users, but is interesting enough to call out explicitly is CIP-52: Ultragreen Celo, which burns 80% of each transactions base fee and directs the other 20% to the Green Fund.

Flag changes

The following flag has been deprecated and will be removed in a future release.

--disablerpcethcompatibility          (all blocks are going to be ethCompatible after the hard fork)
--light.gatewayfee

The following flag has been added

--rpc.gaspricemultiplier value      Multiplier applied to the gasPrice rpc call (1 = gasPrice, 1.3 = gasPrice + 30%, etc. Defaults to 2.0) (default: 2) 

gaspricemultiplier was 5 by default to guarantee every tx more time in the tx_pool, but we changed it to settable by node operators request.

Other notable changes

  • Fix transfer prestate tracer (#2075)
  • Merge native tracer (#2137) (from upstream)
  • Fix RPC calls (gasLimit, gasPrice) use the initial state of the block (#2161)
    • The RPC block responses were serializing the wrong gasLimit and the baseFeePerGas. Instead of showing those fields with the initial state of the block, were using the final state, so they were showing the data of the block N+1 for those fields.
    • The RPC transaction responses for types DynamicFeeTx (0x02) or CeloDynamicFeeTx (0x7c) were serializing the wrong gasPrice. Instead of using the baseFee of the initial state of the block, were using the final state, so those transactions were showing the gasPrice calculation with the block N+1 data.

Docker Images

geth: us.gcr.io/celo-org/geth:1.8.0-beta.1
geth-all: us.gcr.io/celo-org/geth-all:1.8.0-beta.1