The Crosschain Identifier must:
Having a chain identifier facilitates the following functionality within a registration contract:
The Crosschain Identifier is a 32 byte value that has the format described in the table below.
Name | Size (bytes) |
Description |
---|---|---|
Truncated Block Hash |
16 |
This is the block hash of the genesis block or the block hash of of the block immediate prior to the fork for a fork of a blockchain. The 16 bytes is the 16 least significant bytes, assuming network byte order. See table XYZA below for a list of existing blockchains. |
Native Chain ID | 4 | This is the Chain Id value that should be used with the blockchain when signing transactions. For blockchains that do not have a concept of Chain Id, this value is zero. |
Chain Type | 2 | See table XYZ below the current list of chain types. |
Governance Identifier | 2 | For new blockchains, a governance_identifier can be specified to identify an original owner of a blockchain, to help settle forked / main chain disputes. For all existing blockchains and for blockchains that do not have the concept of an owner, this field is zero. |
Reserved | 7 | Reserved for future use. |
Checksum | 1 | Used to verify the integrity of the identifier. This integrity check is targetted at detecting Crosschain Identifiers mis-typed by human users. The value is calculated as the truncated SHA256 message digest of the rest of the identifier, using the least significant byte, assuming network byte order. Note that this checksum byte only detects integrity with a probability of one in 256. This probability is adequate for the intended usage of detecting typographical errors by people manually entering the Crosschain Identifier. |
The Crosschain Registration Contract holds the data described in the table below.
Name | Description | Examples |
---|---|---|
Crosschain Identifier | A 32 byte hex string | See the Crosschain Identifier section for details. |
Long Name | A long name describing the blockchain. Maximum length is 80 characters. |
This long name could be Ethereum MainNet, Bitcoin Cash, or Wanchain Mainnet |
Short Name |
An abbreviated name for the blockchain. Maximum length is four characters. |
For public blockchains, this will match the standard blockchain exchange name. For example, ETC, BTC, or WAN. |
Nickname |
Nickname of the chain. Maximum length is 10 characters. |
Names such as Rinkeby or Ropsten. |
Chain Type |
Public permissionless, private permissioned, or other. |
Table XYZ4 provides the list of possible values. |
Chain Category |
A parameter to identify whether this is mainnet, or testnet |
Table XYZ5 lists all possible values for this field. |
Execution Engine Type |
They type of execution environment available on the blockchain. |
Table XYZ6 provides the list of possible values. |
Chain IP addresses and Service Provider Id | A set of IP addresses of static nodes that can be contacted to submit a crosschain transaction, and the associated name information for the company providing the service. | |
Name Service Type | The contract naming service available on the blockchain. | The type of service, for instance ENS. |
Name Service Address | The address of the name service contract on the blockchain. |
To register crosschian blockchain id, there should be grace period for comments before it become official and verified. The registration service should support the following functions