Godwoken v1.4 release

Godwoken is EVM-compatible optimistic rollup running on Nervos.

Upgraded version of Godwoken is running on Mainnet since the beginning of July 2022. This big upgrade didn’t end the software development process. New features and bugfixes are still being shipped.

Godwoken Testnet and Mainnet software have been updated to version 1.4 on August 2nd, 2022. In this article you will find a list of software changes that have been deployed.

Godwoken Node

Godwoken Node is a core piece of the Layer 2 network. It has been updated to version 1.4.3.

Before we jump into new features remember you can always find the latest configuration to run your own Godwoken node in this repository: https://github.com/nervosnetwork/godwoken-info.

1. Direct account creation on Layer 2

Previously all accounts on Godwoken had to be activated by sending a Layer 1 transaction on https://bridge.godwoken.io.

Now a Godwoken account is activated simply when it has CKB and sends it’s first transaction.

This enables a wide range of on-ramping solutions to be integrated with Godwoken and makes user onboarding much easier.

For technical people, here is related codebase issue reference: https://github.com/nervosnetwork/godwoken-web3/issues/337.

2. Add import/export blocks commands

This feature is only available to people who are running read-only nodes on the Godwoken network.

Importing and exporting blocks to the node database is now possible. It might be useful for debugging purposes.

For example if your node stopped syncing blocks you can try to export it and share with the Godwoken team in a bug report. They can import it and debug it closely on their machines.

export-block subcommand

example: godwoken export-block -c config.toml --output-path ./blocks_testnet_v1

import-block subcommand

example: godwoken import-block -c config.toml --source-path ./block_testnet_v1

Documentation page.

Other changes

  • Check sender’s balance in execute_raw_l2transaction RPC #750
  • Fix gw-tools stat-custodian-ckb command #757
  • Redirect layer 2 transaction syscall log to sentry #758
  • fix(rpc): calculate tx signature hash using packed bytes #760
  • fix(config): optional block producer wallet for readonly node #768
  • hotfix(rpc server): submit withdrawal missing data for submit_tx #770

Godwoken Web3

Godwoken Web3 is a Ethereum-compatibility RPC layer. It is running on top of the Godwoken Node. Godwoken Web3 has been updated to version 1.5.2-rc1.

1. Update error messages

Error messages which are received. For example: When smart-contracts revert when trying to send a transaction. Have been changed to be closer to Ethereum standards. Related change.

2. Fixes and optimizations of existing RPC methods

eth_filter and eth_getFilterChanges methods used for receiving new onchain events from smart-contracts have been fixed and optimized.

3. New RPC methods

Two new methods have been added allowing for conversion between Godwoken transaction hash and Ethereum transaction hash:

  • poly_getEthTxHashByGwTxHash
  • poly_getGwTxHashByEthTxHash

More information can be found here by looking at files in this pull request.

Also, one more method has been added:

  • gw_is_request_in_queue

It returns whether the request (transaction or withdrawal) is in the fee queue. Requests go through the fee queue before they are pushed to the mem pool. Only supported in full nodes. More information can be found here.

4. Fix Ethereum transaction hash data field

The eth-tx-hash data field in web3-indexer-database(PostgreSQL) could previously contain incorrect data. This problem was fixed in v1.5.1-rc1, so the data indexed by web3_version >= v1.5.1-rc1 is OK. Otherwise, you need to consider resyncing the database from scratch, or use the provided CLI tool to correct the wrong data.

Click here to for more information on how to fix the database using a few commands.

5. Other changes

A full list of other changes including internal optimizations of the software can be found by looking at our Releases page.