Modified beaconchain explorer
🔍 beacon.gnosischain.com
4096 validators
131,072 mGNO
83% APY
| | Security Goal Prior to Merge |50K+ validators
1.6M+ mGNO
23% APY
| --- // File: about/specs/gbc/upgradeability # Upgradeability One differentiator for the Gnosis Beacon Chain relative to the Ethereum Beacon chain is the ability to upgrade contracts. A proxy pattern allows for this functionality, which can be extremely useful if an update is required (a bug is found, new functionality added etc). However, this also introduces issues of administrative responsibility. No one entity should solely control contract updates. A multi-sig Gnosis Safe is used to expand admin responsibilities to a larger entity. The controlling assembly is a Governance Board consisting of known and active projects who have contributed to the Gnosis and Ethereum community for some time. A proposed upgrade is presented to this board and a minimum of 7 signatures are required to enact any proposal. c [Governance Board Members](../../../bridges/management#current-bridge-governors) ### Contracts managed by the Governance Board - Deposit Contract: [0x0B98057eA310F4d31F2a452B414647007d1645d9](https://gnosis.blockscout.com/address/0x0B98057eA310F4d31F2a452B414647007d1645d9/read-contract) --- // File: about/specs/hard-forks/1604400 # #1604400 - 2019-01-11 :::caution Archived page Check the latest hard fork and update your node ::: ### Info * **Network**: xDai (now Gnosis) * **Date**: 2019-01-11 * **Block number**: 1604400 ### Description This update introduces Constantinople fork at block `1604400` in `xDai` network. ### Solution 1. Update Parity node to `2.2.5-beta` using [the guide](https://www.poa.network/for-validators/hard-forks/parity-upgrade-guide). 2. Update `poa-chain-spec/spec.json` - add Constantinople's [transitions](https://github.com/poanetwork/poa-chain-spec/pull/99/files#diff-42eb5109ad96d4ac46cdcbf18f2938de) to `engine.params` section. See [spec.json update](/concepts/specs/hard-forks/spec.json-update). 3. Organize the HF on block `1604400`. ### Verify ```bash grep -n -A2 1604400 spec.json ``` You should see: ```json 34: "eip145Transition": 1604400, 35: "eip1014Transition": 1604400, 36: "eip1052Transition": 1604400, 37: "eip1283Transition": 1604400, 38- "registrar": "0x1ec97dc137f5168af053c24460a1200502e1a9d2" 39- }, ``` --- // File: about/specs/hard-forks/16101500 # #16101500 - 2021-05-17 :::caution Archived page Check the latest hard fork and update your node ::: * **Network**: xDai (now Gnosis) * **Date**: 2021-05-17 * **Block number**: `16101500` ## Client Updates ### OpenEthereum Please update to `v3.2.5` which contains Berlin hard fork transition and the new enodes: [https://github.com/openethereum/openethereum/releases/tag/v3.2.5](https://github.com/openethereum/openethereum/releases/tag/v3.2.5) Perform a DB migration if your run OE version < v3.2.0 If your node works on an old version of Parity, you need to convert node's DB to the format compatible with OpenEthereum v3.2.x. You can use this tool [https://github.com/openethereum/3.1-db-upgrade-tool](https://github.com/openethereum/3.1-db-upgrade-tool) ### Nethermind Please update to `v1.10.67` which contains Berlin hard fork transition. [More on Nethermind](/node/manual). ## Description: Berlin HF * EIP-2565 (ModExp Gas Cost) Allows RSA signature verification. * EIP-2929 (Gas cost increases for state access opcodes) Algorithm for calculating gas costs. Costs increase for SLOAD, _CALL, BALANCE, EXT_ and SELFDESTRUCT for the first time. Adds resilience for DoS attacks. * EIP-2718 (Typed Transaction Envelope) Implements a new transaction type that supports multiple transactions. * EIP-2930 (Optional access lists) Lst of addresses and storage keys a transaction will access, resulting in easier processing and reduced gas usage. --- // File: about/specs/hard-forks/19040000 # #19040000 - 2021-11-12 :::caution Archived page Check the latest hard fork and update your node ::: * **Network**: Gnosis * **\~Date**: 2021-11-12 * **Block number**: `19,040,000` ## Client Updates ### OpenEthereum Please update to `v3.3.0` **RC 15** which contains the London hard fork transition. :::info Most node operators use the --chain=xdai flag when running a node. In this case, you will only need to update the client. If you use a local spec.json file, you will need to [upgrade to this version](https://raw.githubusercontent.com/poanetwork/poa-chain-spec/dai/spec.json) before restarting your node with the updated OE version. ::: 1. Set docker image in `docker-compose.yml` to image: openethereum/openethereum:v3.3.0-rc.15 2. Restart your node `docker-compose down` `docker-compose up -d` 3. There may be an additional instruction related to a variable update following the HF. ### Nethermind Upgrade to version [v1.11.7](https://github.com/NethermindEth/nethermind/releases/tag/1.11.7). This is the latest Nethermind release. 1. Set docker image as image: nethermind/nethermind:latest 2. `docker pull nethermind/nethermind:latest` `docker-compose down` `docker-compose up -d` ## Description: London HF Applicable updates * [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) – reconfigures fees to include BASEFEE. Block size increase to 34M. [See 1559 on Gnosis for more info](/concepts/specs/hard-forks/eip-1559) * [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) – returns the `BASEFEE` from a block * [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - reduces gas refunds for EVM operations * [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - prevents deploying contracts starting with `0xEF` --- // File: about/specs/hard-forks/21735000 # #21735000 - 2022-04-20 In response to the community sentiment [overwhelming favoring GIP-31](https://forum.gnosis.io/t/gip-31-should-gnosis-chain-perform-a-hardfork-to-upgrade-the-token-contract-vulnerable-to-the-reentrancy-attack/4134) a hardfork has been proposed for Gnosis. Node operators can now update their OpenEthereum or Nethermind nodes in preparation. * **Network**: Gnosis * **Block number**: `21,735,000` * **Completed:** 20 April 2022 ## Client Update Instructions :::info Instructions below are for standard node updates. **For archive nodes running Nethermind**, please see note below. ::: ### OpenEthereum Please update to `v3.3.5` which contains the hard fork transition. 1. Set docker image in `docker-compose.yml` to image: openethereum/openethereum:v3.3.5 2. Restart your node `docker-compose down` `docker-compose up -d` ### Nethermind Upgrade to version [v1.12.7](https://github.com/NethermindEth/nethermind/releases/tag/1.12.7). 1. Set docker image as image: nethermind/nethermind:1.12.7 2. `docker pull nethermind/nethermind:1.12.7` `docker-compose down` `docker-compose up -d` ### Archive nodes running Nethermind :::danger Nethermind v1.12.5`+` turns on memory pruning by default. **You will need to disable pruning** in the config file when running an archive node. Set the following variable `NETHERMIND_PRUNINGCONFIG_MODE: "None"` ::: ## Code Updates: Token Contract Bytecode * OpenEthereum: Support new hardfork ([#619](https://github.com/openethereum/openethereum/pull/619), [#633](https://github.com/openethereum/openethereum/pull/633)) * Nethermind: \[Gnosis/POSDAO] Support new hardfork ([#3889](https://github.com/NethermindEth/nethermind/pull/3889), [#3930](https://github.com/NethermindEth/nethermind/pull/3930)) This HF replaces the bytecode in the permitable token contract. Tokens bridged using the previous implementation were susceptible to re-entrancy when combined with protocols that did not guard against these types of attacks. The HF will increase bridged token security for protocols on Gnosis. More information is available in the [Gnosis Forum GIP-31 post](https://forum.gnosis.io/t/gip-31-should-gnosis-chain-perform-a-hardfork-to-upgrade-the-token-contract-vulnerable-to-the-reentrancy-attack/4134). **Previous permitable token contract bytecode** ``` 0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101bb57806306fdde03146101e4578063095ea7b31461026e5780630b26cf661461029257806318160ddd146102b557806323b872dd146102dc57806330adf81f14610306578063313ce5671461031b5780633644e51514610346578063395093511461035b5780634000aea01461037f57806340c10f19146103b057806342966c68146103d457806354fd4d50146103ec578063661884631461040157806369ffa08a1461042557806370a082311461044c578063715018a61461046d578063726600ce146104825780637d64bcb4146104a35780637ecebe00146104b8578063859ba28c146104d95780638da5cb5b1461051a5780638fcbaf0c1461054b57806395d89b4114610589578063a457c2d71461059e578063a9059cbb146105c2578063b753a98c146105e6578063bb35783b1461060a578063cd59658314610634578063d73dd62314610649578063dd62ed3e1461066d578063f2d5d56b14610694578063f2fde38b146106b8578063ff9e884d146106d9575b600080fd5b3480156101c757600080fd5b506101d0610700565b604080519115158252519081900360200190f35b3480156101f057600080fd5b506101f9610721565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023357818101518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027a57600080fd5b506101d0600160a060020a03600435166024356107af565b34801561029e57600080fd5b506102b3600160a060020a0360043516610803565b005b3480156102c157600080fd5b506102ca61085d565b60408051918252519081900360200190f35b3480156102e857600080fd5b506101d0600160a060020a0360043581169060243516604435610863565b34801561031257600080fd5b506102ca610a32565b34801561032757600080fd5b50610330610a56565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b506102ca610a5f565b34801561036757600080fd5b506101d0600160a060020a0360043516602435610a65565b34801561038b57600080fd5b506101d060048035600160a060020a0316906024803591604435918201910135610a78565b3480156103bc57600080fd5b506101d0600160a060020a0360043516602435610b89565b3480156103e057600080fd5b506102b3600435610c94565b3480156103f857600080fd5b506101f9610ca1565b34801561040d57600080fd5b506101d0600160a060020a0360043516602435610cd8565b34801561043157600080fd5b506102b3600160a060020a0360043581169060243516610db5565b34801561045857600080fd5b506102ca600160a060020a0360043516610df1565b34801561047957600080fd5b506102b3610e0c565b34801561048e57600080fd5b506101d0600160a060020a0360043516610e23565b3480156104af57600080fd5b506101d0610e37565b3480156104c457600080fd5b506102ca600160a060020a0360043516610e3e565b3480156104e557600080fd5b506104ee610e50565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052657600080fd5b5061052f610e5b565b60408051600160a060020a039092168252519081900360200190f35b34801561055757600080fd5b506102b3600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e6a565b34801561059557600080fd5b506101f9611171565b3480156105aa57600080fd5b506101d0600160a060020a03600435166024356111cb565b3480156105ce57600080fd5b506101d0600160a060020a03600435166024356111d7565b3480156105f257600080fd5b506102b3600160a060020a0360043516602435611202565b34801561061657600080fd5b506102b3600160a060020a036004358116906024351660443561120d565b34801561064057600080fd5b5061052f61121e565b34801561065557600080fd5b506101d0600160a060020a036004351660243561122d565b34801561067957600080fd5b506102ca600160a060020a03600435811690602435166112b4565b3480156106a057600080fd5b506102b3600160a060020a03600435166024356112df565b3480156106c457600080fd5b506102b3600160a060020a03600435166112ea565b3480156106e557600080fd5b506102ca600160a060020a036004358116906024351661130a565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020611a13833981519152928290030190a350600192915050565b600654600160a060020a0316331461081a57600080fd5b61082381611327565b151561082e57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561087b57600080fd5b600160a060020a038416151561089057600080fd5b600160a060020a0385166000908152600360205260409020546108b9908463ffffffff61132f16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108ee908463ffffffff61134116565b600160a060020a0380861660008181526003602090815260409182902094909455805187815290519193928916926000805160206119f383398151915292918290030190a3600160a060020a0385163314610a1c5761094d85336112b4565b905060001981146109b757610968818463ffffffff61132f16565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a3610a1c565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a1157506109ea611354565b600160a060020a0386166000908152600a6020908152604080832033845290915290205410155b1515610a1c57600080fd5b610a27858585611358565b506001949350505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1681565b60085481565b6000610a71838361122d565b9392505050565b600084600160a060020a03811615801590610a9c5750600160a060020a0381163014155b1515610aa757600080fd5b610ab186866113ef565b1515610abc57600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b3186611327565b15610b7d57610b7233878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437506113fb945050505050565b1515610b7d57600080fd5b50600195945050505050565b600654600090600160a060020a03163314610ba357600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bcb57600080fd5b600454610bde908363ffffffff61134116565b600455600160a060020a038316600090815260036020526040902054610c0a908363ffffffff61134116565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206119f38339815191529181900360200190a350600192915050565b610c9e3382611591565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d2c57336000908152600560209081526040808320600160a060020a0388168452909152812055610d61565b610d3c818463ffffffff61132f16565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611a13833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610dcc57600080fd5b80600160a060020a0381161515610de257600080fd5b610dec8383611680565b505050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b657600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260036000909192565b600654600160a060020a031681565b600080600160a060020a038a161515610e8257600080fd5b600160a060020a0389161515610e9757600080fd5b861580610eab575086610ea8611354565b11155b1515610eb657600080fd5b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb602080830191909152600160a060020a03808f16838501528d166060830152608082018c905260a082018b905289151560c0808401919091528351808403909101815260e090920192839052815191929182918401908083835b60208310610f575780518252601f199092019160209182019101610f38565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b60208310610ff75780518252601f199092019160209182019101610fd8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8d1684870152606084018c9052608084018b905294519098506001965060a080840196509194601f19820194509281900390910191865af1158015611077573d6000803e3d6000fd5b50505060206040510351600160a060020a03168a600160a060020a03161415156110a057600080fd5b600160a060020a038a16600090815260096020526040902080546001810190915588146110cc57600080fd5b856110d85760006110dc565b6000195b600160a060020a03808c166000908152600560209081526040808320938e16835292905220819055905085611112576000611114565b865b600160a060020a03808c166000818152600a60209081526040808320948f1680845294825291829020949094558051858152905192939192600080516020611a13833981519152929181900390910190a350505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b6000610a718383610cd8565b60006111e383836113ef565b15156111ee57600080fd5b6111f9338484611358565b50600192915050565b610dec338383610863565b611218838383610863565b50505050565b600754600160a060020a031690565b336000908152600560209081526040808320600160a060020a0386168452909152812054611261908363ffffffff61134116565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610dec823383610863565b600654600160a060020a0316331461130157600080fd5b610c9e816116ac565b600a60209081526000928352604080842090915290825290205481565b6000903b1190565b60008282111561133b57fe5b50900390565b8181018281101561134e57fe5b92915050565b4290565b61136182611327565b80156113885750604080516000815260208101909152611386908490849084906113fb565b155b15610dec5761139682610e23565b156113a057600080fd5b60408051600160a060020a0380861682528416602082015280820183905290517f11249f0fc79fc134a15a10d1da8291b79515bf987e036ced05b9ec119614070b9181900360600190a1505050565b6000610a71838361172a565b600083600160a060020a031663a4c0ed367c0100000000000000000000000000000000000000000000000000000000028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561148c578181015183820152602001611474565b50505050905090810190601f1680156114b95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561154757818101518382015260200161152f565b50505050905090810190601f1680156115745780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156115b657600080fd5b600160a060020a0382166000908152600360205260409020546115df908263ffffffff61132f16565b600160a060020a03831660009081526003602052604090205560045461160b908263ffffffff61132f16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206119f38339815191529181900360200190a35050565b600160a060020a038216151561169e57611699816117f9565b6116a8565b6116a88282611805565b5050565b600160a060020a03811615156116c157600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526003602052604081205482111561174657600080fd5b600160a060020a038316151561175b57600080fd5b3360009081526003602052604090205461177b908363ffffffff61132f16565b3360009081526003602052604080822092909255600160a060020a038516815220546117ad908363ffffffff61134116565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233926000805160206119f38339815191529281900390910190a350600192915050565b30316116a882826118a3565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050506040513d602081101561189457600080fd5b5051905061121884848361190b565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156116a85780826118d86119c2565b600160a060020a039091168152604051908190036020019082f080158015611904573d6000803e3d6000fd5b5050505050565b60408051600160a060020a03841660248201526044808201849052825180830390910181526064909101909152602081810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101b65750506000835111156119ba578115156119ba57600080fd5b505050505050565b6040516021806119d2833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820da715ff88e0288dbae664bb8af2f148726bdc8c499fecf88153280d022031e780029 ``` **New permitable token contract bytecode** ``` 0x6080604052600436106101b35763ffffffff60e060020a60003504166305d2035b81146101b857806306fdde03146101e1578063095ea7b31461026b5780630b26cf661461028f57806318160ddd146102b257806323b872dd146102d957806330adf81f14610303578063313ce567146103185780633644e5151461034357806339509351146103585780634000aea01461037c57806340c10f19146103ad57806342966c68146103d157806354fd4d50146103e957806366188463146103fe57806369ffa08a1461042257806370a0823114610449578063715018a61461046a578063726600ce1461047f5780637d64bcb4146104a05780637ecebe00146104b5578063859ba28c146104d65780638da5cb5b146105175780638fcbaf0c1461054857806395d89b4114610586578063a457c2d71461059b578063a9059cbb146105bf578063b753a98c146105e3578063bb35783b14610607578063c6a1dedf14610631578063cd59658314610646578063d505accf1461065b578063d73dd62314610694578063dd62ed3e146106b8578063f2d5d56b146106df578063f2fde38b14610703578063ff9e884d14610724575b600080fd5b3480156101c457600080fd5b506101cd61074b565b604080519115158252519081900360200190f35b3480156101ed57600080fd5b506101f661076c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610230578181015183820152602001610218565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506101cd600160a060020a03600435166024356107fa565b34801561029b57600080fd5b506102b0600160a060020a0360043516610810565b005b3480156102be57600080fd5b506102c761086a565b60408051918252519081900360200190f35b3480156102e557600080fd5b506101cd600160a060020a0360043581169060243516604435610870565b34801561030f57600080fd5b506102c7610a38565b34801561032457600080fd5b5061032d610a5c565b6040805160ff9092168252519081900360200190f35b34801561034f57600080fd5b506102c7610a65565b34801561036457600080fd5b506101cd600160a060020a0360043516602435610a6b565b34801561038857600080fd5b506101cd60048035600160a060020a0316906024803591604435918201910135610aac565b3480156103b957600080fd5b506101cd600160a060020a0360043516602435610bbd565b3480156103dd57600080fd5b506102b0600435610cc8565b3480156103f557600080fd5b506101f6610cd5565b34801561040a57600080fd5b506101cd600160a060020a0360043516602435610d0c565b34801561042e57600080fd5b506102b0600160a060020a0360043581169060243516610de9565b34801561045557600080fd5b506102c7600160a060020a0360043516610e0e565b34801561047657600080fd5b506102b0610e29565b34801561048b57600080fd5b506101cd600160a060020a0360043516610e40565b3480156104ac57600080fd5b506101cd610e54565b3480156104c157600080fd5b506102c7600160a060020a0360043516610e5b565b3480156104e257600080fd5b506104eb610e6d565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052357600080fd5b5061052c610e78565b60408051600160a060020a039092168252519081900360200190f35b34801561055457600080fd5b506102b0600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e87565b34801561059257600080fd5b506101f6610fc5565b3480156105a757600080fd5b506101cd600160a060020a036004351660243561101f565b3480156105cb57600080fd5b506101cd600160a060020a0360043516602435611032565b3480156105ef57600080fd5b506102b0600160a060020a0360043516602435611054565b34801561061357600080fd5b506102b0600160a060020a0360043581169060243516604435611064565b34801561063d57600080fd5b506102c7611075565b34801561065257600080fd5b5061052c611099565b34801561066757600080fd5b506102b0600160a060020a036004358116906024351660443560643560ff6084351660a43560c4356110a8565b3480156106a057600080fd5b506101cd600160a060020a0360043516602435611184565b3480156106c457600080fd5b506102c7600160a060020a036004358116906024351661120b565b3480156106eb57600080fd5b506102b0600160a060020a0360043516602435611236565b34801561070f57600080fd5b506102b0600160a060020a0360043516611241565b34801561073057600080fd5b506102c7600160a060020a0360043581169060243516611261565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b600061080733848461127e565b50600192915050565b600654600160a060020a0316331461082757600080fd5b610830816112c0565b151561083b57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561088857600080fd5b600160a060020a038416151561089d57600080fd5b600160a060020a0385166000908152600360205260409020546108c6908463ffffffff6112c816565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108fb908463ffffffff6112da16565b600160a060020a038086166000818152600360209081526040918290209490945580518781529051919392891692600080516020611d7283398151915292918290030190a3600160a060020a0385163314610a225761095a853361120b565b905060001981146109c457610975818463ffffffff6112c816565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a3610a22565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a175750600160a060020a0385166000908152600a602090815260408083203384529091529020544211155b1515610a2257600080fd5b610a2d8585856112ed565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60085481565b336000818152600560209081526040808320600160a060020a03871684529091528120549091610807918590610aa7908663ffffffff6112da16565b61127e565b600084600160a060020a03811615801590610ad05750600160a060020a0381163014155b1515610adb57600080fd5b610ae58686611324565b1515610af057600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b65866112c0565b15610bb157610ba633878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843750611330945050505050565b1515610bb157600080fd5b50600195945050505050565b600654600090600160a060020a03163314610bd757600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bff57600080fd5b600454610c12908363ffffffff6112da16565b600455600160a060020a038316600090815260036020526040902054610c3e908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611d728339815191529181900360200190a350600192915050565b610cd233826114ad565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d6057336000908152600560209081526040808320600160a060020a0388168452909152812055610d95565b610d70818463ffffffff6112c816565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611d92833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610e0057600080fd5b610e0a828261159c565b5050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b357600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260056000909192565b600654600160a060020a031681565b600080861580610e975750864211155b1515610ea257600080fd5b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020820152600160a060020a03808d16828401528b166060820152608081018a905260a0810189905287151560c0808301919091528251808303909101815260e0909101909152610f17906115da565b9150610f25828686866116e1565b600160a060020a038b8116911614610f3c57600080fd5b600160a060020a038a1660009081526009602052604090208054600181019091558814610f6857600080fd5b85610f74576000610f78565b6000195b905085610f86576000610f88565b865b600160a060020a03808c166000908152600a60209081526040808320938e1683529290522055610fb98a8a836118e3565b50505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b600061102b8383610d0c565b9392505050565b600061103e8383611324565b151561104957600080fd5b6108073384846112ed565b61105f338383610870565b505050565b61106f838383610870565b50505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b600754600160a060020a031690565b600080428610156110b857600080fd5b600160a060020a03808a1660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c99281019290925281830193909352928b166060840152608083018a905260a0830182905260c08084018a90528151808503909101815260e090930190529250611149906115da565b9050611157818686866116e1565b600160a060020a038a811691161461116e57600080fd5b61117989898961127e565b505050505050505050565b336000908152600560209081526040808320600160a060020a03861684529091528120546111b8908363ffffffff6112da16565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b61105f823383610870565b600654600160a060020a0316331461125857600080fd5b610cd281611a3e565b600a60209081526000928352604080842090915290825290205481565b6112898383836118e3565b60001981141561105f57600160a060020a038084166000908152600a60209081526040808320938616835292905290812055505050565b6000903b1190565b6000828211156112d457fe5b50900390565b818101828110156112e757fe5b92915050565b6112f682610e40565b1561105f5760408051600081526020810190915261131990849084908490611330565b151561105f57600080fd5b600061102b8383611abc565b600083600160a060020a031663a4c0ed3660e060020a028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113a8578181015183820152602001611390565b50505050905090810190601f1680156113d55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561146357818101518382015260200161144b565b50505050905090810190601f1680156114905780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156114d257600080fd5b600160a060020a0382166000908152600360205260409020546114fb908263ffffffff6112c816565b600160a060020a038316600090815260036020526040902055600454611527908263ffffffff6112c816565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611d728339815191529181900360200190a35050565b80600160a060020a03811615156115b257600080fd5b600160a060020a03831615156115d0576115cb82611b8b565b61105f565b61105f8383611b97565b6000600854826040518082805190602001908083835b6020831061160f5780518252601f1990920191602091820191016115f0565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b602083106116af5780518252601f199092019160209182019101611690565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b6000808460ff16601b14806116f957508460ff16601c145b1515611775576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611813576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600080825260208083018085528a905260ff8916838501526060830188905260808301879052925160019360a0808501949193601f19840193928390039091019190865af115801561186d573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a03811615156118da576040805160e560020a62461bcd02815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b600160a060020a0383161515611968576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821615156119ee576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0380841660008181526005602090815260408083209487168084529482529182902085905581518581529151600080516020611d928339815191529281900390910190a3505050565b600160a060020a0381161515611a5357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260036020526040812054821115611ad857600080fd5b600160a060020a0383161515611aed57600080fd5b33600090815260036020526040902054611b0d908363ffffffff6112c816565b3360009081526003602052604080822092909255600160a060020a03851681522054611b3f908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191923392600080516020611d728339815191529281900390910190a350600192915050565b3031610e0a8282611c44565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d6020811015611c2657600080fd5b5051905061106f600160a060020a038516848363ffffffff611cac16565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515610e0a578082611c79611d41565b600160a060020a039091168152604051908190036020019082f080158015611ca5573d6000803e3d6000fd5b5050505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050503d1561105f5760206000803e600051151561105f57600080fd5b604051602180611d51833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820b96bb0733a3e45fdddafa592f51114d0cf16cad047ad60b9b91ae91eb772c6940029 ``` --- // File: about/specs/hard-forks/2508800 # #2508800 - 2019-03-06 :::caution Archived page Check the latest hard fork and update your node ::: ### Info * **Network**: xDai (now Gnosis) * **Date**: 2019-03-06 * **Block number**: 2508800 ### Description This update disables Constantinople EIP-1283 at block `2508800` in `xDai` network. ### Solution 1. Update Parity node to `2.3.2-beta` using [this guide.](https://www.poa.network/for-validators/hard-forks/parity-upgrade-guide) 2. Update `poa-chain-spec/spec.json` - add [eip1283DisableTransition](https://github.com/poanetwork/poa-chain-spec/pull/107/files#diff-42eb5109ad96d4ac46cdcbf18f2938deR38) to `engine.params` section. See [Update spec.json](/concepts/specs/hard-forks/spec.json-update) 3. Organize the HF on block `2508800`. ### Verify ```bash grep -n -A2 2508800 spec.json ``` You should see: ```json 38: "eip1283DisableTransition": 2508800, 39- "registrar": "0x1ec97dc137f5168af053c24460a1200502e1a9d2" 40- }, ``` --- // File: about/specs/hard-forks/7298030 # #7298030 - 2019-12-12 :::caution Archived page Check the latest hard fork and update your node ::: * **Network**: xDai (now Gnosis) * **Date**: 2019-12-12 * **Block number**: `7298030` ## Description: Istanbul Upgrade * eip1283ReenableTransition * eip1344Transition * eip1706Transition * eip1884Transition * eip2028Transition ## Perform Updates 1. **You must update spec.json and Parity node to version 2.6.5** as the spec format was changed. [Use this guide to upgrade](/concepts/specs/hard-forks/spec.json-update). 2. Organize the HF on block `7298030` ## Verify Once your update is complete, verify the HF block number: ```bash grep -n -A2 7298030 spec.json ``` You should see: ```json 39: "eip1283ReenableTransition": 7298030, 40: "eip1344Transition": 7298030, 41: "eip1706Transition": 7298030, 42: "eip1884Transition": 7298030, 43: "eip2028Transition": 7298030, 44- "registrar": "0x1ec97dc137f5168af053c24460a1200502e1a9d2" 45- }, -- 82: "7298030": { 83- "info": "Istanbul HF", 84- "price": { -- 104: "7298030": { 105- "info": "Istanbul HF", 106- "price": { -- 127: "7298030": { 128- "info": "Istanbul HF", 129- "price": { -- 143: "7298030": { 144- "info": "Istanbul HF", 145- "price": { ``` --- // File: about/specs/hard-forks/9186425 # #9186425 - 2020-04-01 :::caution Archived page Check the latest hard fork and update your node ::: * **Network**: xDai (now Gnosis) * **Date**: 2020-04-01 * **Block number**: `9186425` ## Description: POSDAO Activation * new ValidatorSet contract * blockRewardContractTransitions * randomnessContractAddress * posdaoTransition * new Registry contract * transactionPermissionContract ## Perform Updates 1. **You must update spec.json and Parity node to version 2.7.2-posdao-stable**. [Use this guide to upgrade](https://forum.poa.network/t/posdao-activation/3310). 2. Organize the HF on block `9186425` ## Verify Once your update is complete, verify the HF block number: ```bash grep -n -A2 9186425 spec.json ``` You should see: ```json 20: "9186425": { 21- "contract": "0xB87BE9f7196F2AE084Ca1DE6af5264292976e013" 22- } -- 28: "9186425": "0x481c034c6d9441db23Ea48De68BCAe812C5d39bA" 29- }, 30- "randomnessContractAddress": { -- 31: "9186425": "0x5870b0527DeDB1cFBD9534343Feda1a41Ce47766" 32- }, 33: "posdaoTransition": 9186425 34- } 35- } -- 58: "transactionPermissionContractTransition": 9186425 59- }, 60- "genesis": { ``` --- // File: about/specs/hard-forks/README # Hard Forks :::danger Hard forks are backward-incompatible upgrades used to introduce new functionality or fix security related issues. They are backward-incompatible upgrades, requiring all nodes to upgrade to the latest version to avoid syncing to a pre-fork blockchain. Validators will receive instructions to update their nodes in the event of a hard fork. ::: Information related to a hard fork will be posted. If any assistance is needed, feel free to reach out or ask questions through [Discord](https://discord.gg/gnosischain), the [forum](https://forum.gnosis.io) or other channels. --- // File: about/specs/hard-forks/dencun # What is Dencun hardfork? Dencun hardfork activates all EIPs also activated on [Ethereum mainnet](https://eips.ethereum.org/EIPS/eip-7569). The table below lists differences if any. | EIP | Scope | | | --------------------------------------------------------------------------------------------- | ------ | -------------------------------------------- | | [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153): Transient storage opcodes | EL | Not modified | | [EIP-4788](https://eips.ethereum.org/EIPS/eip-4788): Beacon block root in the EVM | CL, EL | Not modified, same addresses as Ethereum | | [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844): Shard Blob Transactions | CL, EL | Constants maybe modified from Ethereum (\* ) | | [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656): MCOPY - Memory copying instruction | EL | Not modified | | [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780): SELFDESTRUCT only in same transaction | EL | Not modified | | [EIP-7044](https://eips.ethereum.org/EIPS/eip-7044): Perpetually Valid Signed Voluntary Exits | CL | Not modified | | [EIP-7045](https://eips.ethereum.org/EIPS/eip-7045): Increase max attestation inclusion slot | CL | Not modified | | [EIP-7514](https://eips.ethereum.org/EIPS/eip-7514): Add Max Epoch Churn Limit | CL | Constants maybe modified from Ethereum (\* ) | | [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516): BLOBBASEFEE opcode | EL | Not modified | \* See [Differences with Ethereum mainnet](#differences-with-ethereum-mainnet) Note: The trusted setup required for [deneb's cryptography](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/polynomial-commitments.md#trusted-setup) is the same as defined in Ethereum's consensus spec release v1.4.0, which can be found [here](https://github.com/gnosischain/specs/blob/master/consensus/preset/gnosis/trusted_setups/trusted_setup_4096.json). ## Differences with Ethereum mainnet ### [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) Gnosis chain has slots significantly faster than Ethereum. Bigger blocks _could_ have a higher cost to the network than Ethereum so we may price blobs differently. Ethereum mainnet has chosen a target of 3 blobs from real live experiments on mainnet with big blocks. Consequently this parameters may not be adequate. Gnosis chain has significantly cheaper fees than mainnet, so blob spam is a concern. Ethereum's `MIN_BLOB_GASPRICE` makes blob space free (1e-18 USD / blob) if usage is under the target for a sustained period of time. The same concern applies to Ethereum, but consensus is that choosing a specific value that may apply to only some market conditions and not others. Given that Gnosis native token is a stable coin, this concerns are mitigated. Given usage under target for regular txs and blob data, setting min blob gas price to 1 GWei reduces the cost per byte by a factor of 16. | Constant | Value | | ----------------------------- | ---------- | | MIN_BLOB_GASPRICE | 1000000000 | | TARGET_BLOB_GAS_PER_BLOCK | 131072 | | MAX_BLOB_GAS_PER_BLOCK | 262144 | | BLOB_GASPRICE_UPDATE_FRACTION | 1112826 | ### [EIP-7514](https://eips.ethereum.org/EIPS/eip-7514) Gnosis chain has both a lower `CHURN_LIMIT_QUOTIENT` and faster epoch times. A `MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT` value of 2 provides a good trade-off to: - Limit max state growth in the next year to 1M validators - Increase the minimum time for a 2/3 malicious take-over to 150 days at current validator set sizes - Allow validator set growth to prevent long queues unless there's exceptional demand | Constant | Value | | ------------------------------------ | ----- | | MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT | 2 | ## Upgrade Schedule | Network | Timestamp | Date & Time (UTC) | Fork Hash | Beacon Chain Epoch | | ------- | ---------- | --------------------------------- | --------- | ------------------ | | Chiado | 1706724940 | Wed Jan 31 2024 18:15:40 GMT+0000 | 0x5fbc16bc | 516608 | | Mainnet | 1710181820 | Monday March 11 202418:30:20 +UTC | 0x1384dfc1 | 889856 | ## How to Prepare ### For Validators Update your clients: Execution Layer - ✅ NethermindEth [v1.25.4+](https://github.com/NethermindEth/nethermind/releases/) - ✅ ErigonEth [v2.58.0+](https://github.com/ledgerwatch/erigon/releases/) Consensus Layer - ✅ Lighthouse [v5.0.0+](https://github.com/sigp/lighthouse/releases/) - ✅ Teku [v24.2.0+](https://github.com/Consensys/teku/releases/) - ✅ Nimbus [v24.2.1+](https://github.com/status-im/nimbus-eth2/releases/) - ✅ Lodestar [v1.16.0+](https://github.com/ChainSafe/lodestar/releases/) --- // File: about/specs/hard-forks/eip-1559 # EIP-1559 ## When EIP-1559 :::success EIP-1559 is live on Gnosis. * **Network**: Gnosis * **Date Implemented**: November 12, 2021 * **Block number**: `19,040,000` ::: ## What is EIP-1559 EIP 1559 introduces a `BASEFEE` for all blockchain transactions. This is a minimum fee charged for each transaction, and it is adjusted depending on network congestion (gas usage per block). When gas usage is high, the fee increases, and when it is low, the fee decreases. Once collected, base fees are burned by the protocol rather than paid directly to the miners (or validators in the case of xDai). In addition to the base fee, a `PRIORITYFEE` can be added to a transaction as a tip to incentivize miners (validators) to include it in a block. ## How 1559 impacts the Gnosis When EIP-1559 is implemented, xDai base fees will be burned within the protocol. This will result in a discrepancy between the xDai balance on the network and the DAI balance from Ethereum locked in the xDai bridge. To fix this imbalance, the corresponding amount of DAI on the mainnet will need to be used as well. The imbalance has not resulted in large discrepancies, and the DAI balance has not been used as of yet. Information on the burn is available here: [https://dune.com/gnosischain_team/EIP-1559-on-xDai](https://dune.com/gnosischain_team/EIP-1559-on-xDai) **Block size is also increased to 34M with this upgrade.** :::info For more info about EIP-1559 on Ethereum and how it works, see the list of [EIP-1559 resources](https://hackmd.io/@timbeiko/1559-resources) compiled by Tim Beiko. ::: --- // File: about/specs/hard-forks/merge :::danger Hard forks are backward-incompatible upgrades used to introduce new functionality or fix security related issues. They are backward-incompatible upgrades, requiring all nodes to upgrade to the latest version to avoid syncing to a pre-fork blockchain. ::: - **Network**: Gnosis - **Beacon block number**: `6,306,357` - **Completed:** 8 December 2022 - [Merged successful announcement](/updates/2022/12/10/merge) # The Merge In early December 2022, Gnosis underwent the Merge. The Gnosis execution layer (formerly xDai) has been merged with the [Gnosis Beacon Chain](../gbc/README.md), in a process similar to the [Ethereum merge](https://ethereum.org/en/upgrades/merge/). The Merge represents an important shift for Gnosis, replacing the legacy [Proof-of-Authority consensus](../consensus/aura.md) with the open and unpermissioned [Beacon Chain Consensus](../gbc/README.md). This allows Gnosis to transition to a fully decentralized and permissionless proof-of-stake network. The Merge is also another step in Gnosis' journey together with Ethereum. From the early days of xDai at ETHDenver, Gnosis has had a role in Ethereum's journey. With the adoption of Ethereum's consensus mechanism, Gnosis will continue to contribute to Ethereum's growth as an experimental chain, where newcomers, experiments and ideas are welcome. ## When did the Merge happen? :::tip The week of 5th Dec 2022 ::: On the 9 Nov 2022 Gnosis Core Devs call, it was agreed to target **the week of 5th Dec 2022** for the Merge. Due to variances in block time, the Merge will likely happen sometime from **5th to 11th Dec 2022.** ### TTD With the 5th Dec 2022 target in mind, the Core Devs have proposed the following TTD value: ``` 8626000000000000000000058750000000000000000000 ``` This number was not chosen randomly: to pay tribute to the Ethereum Merge, Core Devs have proposed to include [Ethereum's TTD](https://notes.ethereum.org/@MarioHavel/merge-ttd), `58750000000000000000000`, in the Gnosis Merge TTD. ### Bellatrix Similar to Ethereum, the Gnosis Beacon Chain have had a [Bellatrix epoch](https://blog.ethereum.org/2022/08/24/mainnet-merge-announcement) that occurred prior to the Merge. :::danger The Bellatrix upgrade is a hard fork. Nodes that aren't upgraded when the upgrade is released risk syncing to a pre-fork blockchain. ::: ## Timeline | Date | Event | | ------------------- | ----------------------------------------------- | | 15 Nov 2022 (Wed) | Merge Date announced publicly | | 23 Nov 2022 (Wed) | Release of merge-ready Client Images | | 23 Nov 2022 (Wed) | Release of revamped Validator Docs | | 30 Nov 2022 (Wed) | Bellatrix epoch hit for Consensus Layer clients | | 5-11 Dec 2022 (Mon) | Estimated TTD window for Gnosis Merge | ## How to Prepare ### For Validators :::caution Merge-ready clients releases can be downloaded from the link below. Please check and download the latest version of release for your clients. Latest announcements will be made in the #validators channel in Gnosis Discord and on Twitter. ::: **EL client** | Client | Merge ready release | Status | | ---------- | ------------------- | ------------------------------------------------------------------ | | Nethermind | v1.14.6 | ✅ https://github.com/NethermindEth/nethermind/releases/tag/1.14.6 | | Erigon | TBA | ⌛ Coming soon | **CL client** | Client | Merge ready release | Status | | ---------- | ------------------- | ---------------------------------------------------------------------- | | Teku | v22.11.0 | ✅ Available https://github.com/ConsenSys/teku/releases/tag/22.11.0 | | Lodestar | v1.2.2 | ✅ Available https://github.com/ChainSafe/lodestar/releases/tag/v1.2.2 | | Lighthouse | v3.3.0 | ✅ Available (https://github.com/sigp/lighthouse/releases/tag/v3.3.0) | | Nimbus | TBA | ⌛ Coming soon | | Prysm | N/A | ❌ Advised to switch to other clients. | **DAppNode Packages** | Package | Merge ready release | Status | | ----------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------- | | DAppNodePackage-nethermind-xdai | v1.0.17 | ✅ Available https://github.com/dappnode/DAppNodePackage-nethermind-xdai/releases/tag/v1.0.17 | | DAppNodePackage-teku-gnosis | v0.1.4 | ✅ Available https://github.com/dappnode/DAppNodePackage-teku-gnosis/releases/tag/v0.1.4 | | DAppNodePackage-web3signer-gnosis | v0.1.9 | ✅ Available https://github.com/dappnode/DAppNodePackage-web3signer-gnosis/releases/tag/v0.1.9 | | DAppNodePackage-lighthouse-gnosis | 0.1.4 | ✅ Available https://github.com/dappnode/DAppNodePackage-lighthouse-gnosis/releases/tag/v0.1.4 | | DAppNodePackage-gnosis-beacon-chain-prysm | 🚫 TBA | ⏳ TBA | | DAppNodePackage-Lodestar-Gnosis | 🟡 TBA | ⏳ After Merge | | DAppNodePackage-nimbus-gnosis | 🟡 TBA | ⏳ After Merge | ### For DApps - The Merge deprecated Gnosis' RandomAuRa on-chain randomness, and developers should find alternatives - Gnosis' Merge will be similar to the Ethereum Merge, and DApps should prepare accordingly for changes to `block.difficulty`, blockhash randomness, and block times and finalization. - We recommend the Ethereum.org article on [How the Merge affects the Application Layer](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer) - We recommend 0xMacro's post on [What Solidity Devs should know about Ethereum's Merge](https://0xmacro.com/blog/what-solidity-devs-should-know-about-ethereums-merge/) --- // File: about/specs/hard-forks/shanghai-capella # What is Shanghai/Capella hardfork? Shanghai/Capella hardfork enables validator withdrawal and several execution layer update on Gnosis Chain. EIPs that are included in this hardfork: EIP-3651, EIP-3855, EIP-3860, EIP-6049. Validator withdrawal allows a validator's account balance get withdrawn from Beacon Chain to Execution Layer, in the form of GNO. The GNO will be accrued on validator's withdrawal address on the Execution Layer, which is set using `eth1_withdrawal_address` option during validator key generation. Check out [validator withdrawal](/node/management/withdrawals) for more details. ## Upgrade Schedule | Network | Timestamp | Date & Time (UTC) | Fork Hash | Beacon Chain Epoch | | ------- | ------------ | ----------------------------- | --------- | ------------------ | | Chiado | 1684934220 | May-24-2023 13:17:00 +UTC | 0xa15a4252 | 244224 | | Mainnet | 1690889660 | Aug-01-2023 11:34:20 +UTC | 0x2efe91ba | 648704 | ## How to Prepare ### For Validators 1. Check Withdrawal Credentials For any type of withdrawals, a validator need to have `0x01` withdrawal credential. You’re fine if you used `--eth1_withdrawal_address` to create your validator keys. If not, tooling will be made available. Refer to [validator withdrawal](/node/management/withdrawals#check-withdrawal-credential) for more details. 2. Update your clients Execution Layer: ✅ NethermindEth [v1.19.3](https://github.com/NethermindEth/nethermind/releases/tag/1.19.3) ✅ ErigonEth [v2.48.0](https://github.com/ledgerwatch/erigon/releases/tag/v2.48.0) Consensus Layer: ✅ Lighthouse [v4.3.0](https://github.com/sigp/lighthouse/releases/tag/v4.3.0) ✅ Teku [v23.6.1](https://github.com/Consensys/teku/releases/tag/23.6.1) ✅ Nimbus v23.6.0 (only with the following Docker image: http://ghcr.io/gnosischain/gnosis-nimbus-eth2:v23.6.0) ✅ Lodestar [v1.9.1](https://github.com/ChainSafe/lodestar/releases/tag/v1.9.1) DAppNode Packages ✅ Teku Gnosis v0.1.9 ✅ Lighthouse Gnosis v0.1.10 ✅ Lodestar Gnosis v0.1.2 ✅ Nethermind xDAI v1.0.34 ⌛️ Erigon and Nimbus - Forthcoming ## How to claim your withdrawal? ### Partial Withdrawal As we have modified some specs regarding the withdrawals to enable withdrawing GNO instead of the native gas token xDai, unlike Ethereum, partial withdrawals currently do not happen automatically. So, for now, you will need to call [`claimWithdrawal`](https://gnosisscan.io/address/0x0b98057ea310f4d31f2a452b414647007d1645d9#writeProxyContract#F3) function on the [contract](https://gnosisscan.io/address/0x0b98057ea310f4d31f2a452b414647007d1645d9#writeProxyContract). However, it is in our plans to automate and subsidize partial withdrawals in the future. ### Full Withdrawal Please check guide on [voluntary exit](/node/management/voluntary-exit). --- // File: about/specs/hard-forks/spec.json-update # Spec.json update :::caution Archived page Check the latest hard fork and update your node ::: :::info This guide assumes that you're running this playbook from the same machine you used to make initial deployment of your node. You should already have `python` and `ansible` installed, and you have the correct ssh keypair to root-access the node. ::: 1\) If you already have a cloned version of the poa-devops repository ([https://github.com/poanetwork/poa-devops.git](https://github.com/poanetwork/poa-devops.git)), pull the latest changes: ```bash cd poa-devops git pull origin master ``` otherwise, clone this repository: ```bash git clone https://github.com/poanetwork/poa-devops.git cd poa-devops ``` 1\) create `group_vars/all` file: ```bash cp group_vars/hf-spec-change.example group_vars/all ``` and set the following variables: 1. `poa_role` - node's role (one of `bootnode`, `validator`, `moc`, `explorer`, `netstat`) 2. `MAIN_REPO_FETCH: "poanetwork"`) 3. `GENESIS_BRANCH: "dai"` ) 2\) Create/edit `hosts` file: ```bash echo "" > hosts ``` and put your node's ip address (assuming it's 192.0.2.1) as follows: ```bash [hf-spec-change] 192.0.2.1 ``` make sure you don't have other tags (`[...]`) in hosts file, **and double check you are using your DAI node's IP address**. For those who host multiple nodes: * if all your nodes are of the same role (e.g. all bootnodes), you can run this playbook on all of them by listing their ips, e.g. ``` [hf-spec-change] 192.0.2.1 192.0.2.2 192.0.2.3 192.0.2.4 ``` * if you host nodes of different types you can set `poa_role` individually against the corresponding ip address like so: ``` [hf-spec-change] 192.0.2.1 poa_role=explorer 192.0.2.2 192.0.2.3 poa_role=moc 192.0.2.4 ``` on lines where you omitted explicit `poa_role`, the value from `group_vars/all` is used. 3\) Run the playbook: ```bash ansible-playbook -i hosts site.yml ``` :::warning **I**f you get a ssh connection error, try to add `-e 'ansible_ssh_user=ubuntu'` to the command line above, substituting `ubuntu` with correct ssh username, which is usually either `ubuntu` or `root` or `poa` or `centos` depending on your setup ::: 4\) Verify that your node is active in netstat ([https://dai-netstat.poa.network/](https://dai-netstat.poa.network/)) 5\) connect to the node ```bash ssh root@192.0.2.1 ``` switch to the home folder of corresponding role: ```bash # substitute validator with your node's role (bootnode, moc, ...) cd /home/validator ``` and check the update time of `spec.json` (should be about the time you started the playbook) ```bash ls -lh # a long list should appear here, look for spec.json in the rightmost column and check the date and time on the same row ``` also check that backup was created: ```bash ls -lh spec-hfs/ # look for a file named similar to spec-hf-20180108-174649.json Numbers represent date and time in UTC when the playbook was started ``` --- // File: about/specs/security-audit # Security Audits :::info Most Audits were completed prior to the rebrand from xDai Chain to Gnosis, and will refer to the xDai chain as well as the STAKE token, the previous governance token of the chain (the chain is in the process of transferring to GNO-only security). ::: ## Stake Beacon Chain by ChainSecurity **Completed:** October 1, 2021 **Conclusion:** During the assessment one critical issue was found and fixed following the intermediate report. The remaining issues were of low severity and were fixed accordingly. The communication with the team was very responsive. **Audit Report**: [https://chainsecurity.com/security-audit/poa-network-stake-beacon-chain-sbc-deposit/](https://chainsecurity.com/security-audit/poa-network-stake-beacon-chain-sbc-deposit/) ## OmniBridge v6.0 Smart Contracts Audit by ChainSecurity **Completed:** September 7, 2021 **Conclusion**: The assessment uncovered a number of potential issues which were resolved by the team. Two additional issues were acknowledged and largely mitigated by the team, and the original severities are no longer applicable. These upgrades to the Omnibridge provide additional functionality which will be implemented in the future. * **Contracts:** [https://github.com/poanetwork/omnibridge](https://github.com/poanetwork/omnibridge) * **Audit Report** [ChainSecurity_POA_Network_Omnibridge_Version_6_0_audit.pdf](/files/ChainSecurity_POA_Network_Omnibridge_Version_6_0_audit.pdf) ## POSDAO Audit by ChainSecurity **Completed:** June 25, 2021 **Conclusion**: The assessment uncovered several issues which were addressed or acknowledged by the team. No "critical" severity security flaws preventing continued usage or launch of contracts in future contexts were found. 0 Critical Issues, 1 High Risk Issue Accepted, 4 Medium Issues Accepted/Acknowledged, 4 Low Risk Issues Accepted/Acknowledged. * **Contracts:** [https://github.com/poanetwork/posdao-contracts](https://github.com/poanetwork/posdao-contracts) * **Audit Report in repo**: [https://github.com/poanetwork/posdao-contracts/blob/master/audit/ChainSecurity/report.pdf](https://github.com/poanetwork/posdao-contracts/blob/master/audit/ChainSecurity/report.pdf) :::success more info [https://chainsecurity.com/security-audit/poa-network-posdao/](https://chainsecurity.com/security-audit/poa-network-posdao/) ::: ## OmniBridge Audit by ChainSecurity **Completed:** April 27, 2021 **Conclusion**: 0 Critical or High Risk Issues, 2 Medium Issues Accepted, 3 Low Risk Issues Accepted/Acknowledged **Contracts:** [https://github.com/poanetwork/omnibridge](https://github.com/poanetwork/omnibridge) :::success more info [https://chainsecurity.com/security-audit/poa-network-omnibridge/](https://chainsecurity.com/security-audit/poa-network-omnibridge/) ::: ## TokenBridge Audit by Quantstamp (covers OmniBridge) **Completed:** November 6, 2020 **Conclusion**: No high and medium risk issues found, all low risk issues addressed. **Contracts:** Revised in version 5.5.0-rc0 to address audit. [https://github.com/poanetwork/tokenbridge-contracts/releases/tag/5.5.0-rc0](https://github.com/poanetwork/tokenbridge-contracts/releases/tag/5.5.0-rc0) :::success [Quantstamp Security Audit PDF](https://github.com/poanetwork/tokenbridge/blob/master/audit/quantstamp/POA-Network-TokenBridge-contracts-5.4.1-security-assessment-report.pdf) ::: ## EasyStaking Audit by Quantstamp **Completed:** August 3, 2020 **Conclusion:** All high/medium/low risk issues resolved. [XDai-Easy-Staking-Final-Report.pdf](/files/XDai-Easy-Staking-Final-Report.pdf) ## TokenBridge Audit by Quantstamp (covers xDai bridge functionality) **Completed:** January 8, 2020 **Conclusion**: All high risk issues resolved and low risk issues addressed. [More information available in this post](https://forum.poa.network/t/quantstamp-security-audit-for-tokenbridge-contracts-completed/3233). **Contracts:** Revised in version 3.3.0 to address audit. [https://github.com/poanetwork/tokenbridge-contracts/releases/tag/3.3.0](https://github.com/poanetwork/tokenbridge-contracts/releases/tag/3.3.0) :::success [Quantstamp TokenBridge Security Audit PDF](https://github.com/poanetwork/tokenbridge/blob/73d500210546e2959536dc569f1aec5752077225/audit/quantstamp/POA-Network-Token-bridge-security-assessment-report.pdf) ::: ## STAKE Token Distribution by Quantstamp #### **STAKE Token Distribution Audit** **Completed:** June 24, 2020\ \ **Conclusion**: No High or Medium risks, all low and informational risks addressed :::success [Quantstamp STAKE Security Audit PDF](https://github.com/xdaichain/stake-token/blob/master/audit/Quantstamp/xDAI%20STAKE%20Token%20Distribution%20-%20Additional%20Report.pdf) ::: #### **DPOS Audit** In the original audit, the working name for the staking token was DPOS. This changed to STAKE. **DPOS Audit Completed:** September 5, 2019\ \ **Conclusion**: All risks resolved. \ \ **Contracts:** Version 1.0.1 addressed items in audit.\ [https://github.com/xdaichain/stake-token/releases/tag/v1.0.1](https://github.com/xdaichain/stake-token/releases/tag/v1.0.1) :::success [Quantstamp DPOS Security Audit PDF](https://github.com/xdaichain/stake-token/blob/master/audit/Quantstamp/DPOS%20token-Audit%20Final%20Report.pdf) ::: #### **STAKE Legal Opinion** The token constitutes a VFA in terms of Maltese law. Please contact [team@xdaichain.com ](mailto:team@xdaichain.com)to request access to the document. ## POSDAO Initial Security Audit by PepperSec **Completed**: August 2019 **Conclusion**: All issues fixed or addressed. Due to scalability concerns, teams created a new methodology to accumulate and later “pull” their stakes and rewards instead of the “push” strategy as implemented in the audited version of the contracts. **Contracts:** Version 0.1.0 addresses issues present in audit. [https://github.com/poanetwork/posdao-contracts/releases/tag/v0.1.0](https://github.com/poanetwork/posdao-contracts/releases/tag/v0.1.0) :::success [POSDAO v1 Consensus Contracts audit](https://forum.poa.network/t/security-audits-of-posdao-consensus-contracts/2921) ::: --- // File: about/tokens/README # Tokens Gnosis is a stable payments EVM (Ethereum Virtual Machine) blockchain designed for fast and inexpensive transactions. The chain uses a unique dual-token model; [xDai](/concepts/tokens/xdai/) is a stable token used for transactions, payments, and fees, and Proof of Stake protection will be provided by [GNO](/concepts/tokens/gno/) with the consensus-layer Gnosis Beacon Chain. | | xDai ⚔ | GNO 🦸 | | -- | ------- | ------ | | **Purpose** | - Stable PaymentsFast transaction times (5 seconds) & low transaction fees (500 tx for $0.01)
A stable token for transactions & gas fees
Smart Contract, DApp & [toolset](/tools) compatibility with other Ethereum-based chains like Ethereum, Ethereum Classic, BSC and others.
Fully-featured explorers [Gnosisscan](https://gnosisscan.io) and [BlockScout](https://blockscout.com/xdai/mainnet).
Growing ecosystem designed to support stable person-to-person transactions, micro transactions, conference currencies, community currencies, DeFi, NFTs, DAOs, games and more.
Wide-ranging [Community Support](/developers/communication).
{`docker pull ghcr.io/gnosischain/validator-data-generator:latest`}
docker run -it --rm -v /path/to/validator_keys:/app/validator_keys ghcr.io/gnosischain/validator-data-generator:latest new-mnemonic --num_validators=NUM --mnemonic_language=english --chain=gnosis --folder=/app/validator_keys --eth1_withdrawal_address=WITHDRAWAL_ADDRESS
/path/to/validator_keys
will contain the keystores and deposit_data*.json
file.
NUM
The number of signing keys (validators) to generate.START_NUM
Index for the first validator key. If this is the first time generating keys with this mnemonic, use 0. If keys were previously generated with this mnemonic, use the subsequent index number (e.g., if 4 keys have been generated before (keys #0, #1, #2, #3, then enter 4 here).WITHDRAWAL_ADDRESS
Use this parameter to provide a regular Gnosis Chain 0x
address for mGNO withdrawal. This parameter can also be omitted to generate withdrawal credentials with the mnemonic-derived withdrawal public key in the EIP-2334 format (ETH2 address format). Withdrawals will not be available until after the Shanghai upgrade./path/to/
should be replaced with a valid and existing path where you want to create the validator_keys folder. Or, to create the validator_keys folder in your current working directory, use $(PWD)/validator_keys:/app/validator_keys
Chiado testnet does not support public participation yet.
Step 4 is omitted.
* disabled options: unsupported clients
Besu is not yet supported, use Nethermind instead.
Geth is not yet supported, use Nethermind instead.
Node type | Benefits | Requirements |
---|---|---|
Execution + beacon |
|
Check requirements section. |
Validator | Lets you stake GNO, propose + validate blocks, earn staking rewards + transaction fee tips. |
|
jwt.hex
filegnosis
on the network/chain name.chiado
on the network/chain name.Account abstraction allows for more flexible and user-friendly account models beyond the traditional externally owned accounts (EOAs). With AA, smart contract wallets can initiate transactions, enabling more complex logic like multi-signature verification, recovery mechanisms, and gas fee payments in tokens. AA revolves around the idea of avoiding the need for change in consensus layer.
{`Smart Account Address: ${address}`}
) } ``` ### 5. Sending UserOp sponsored transaction ```typescript import { parseAbi } from "viem" import { useKernelClient, useSendUserOperation } from "@zerodev/waas" function App() { const { address } = useKernelClient() const { data: userOpHash, write, isPending } = useSendUserOperation({ paymaster: { type: "SPONSOR" } }) const tokenAddress = "0x3870419Ba2BBf0127060bCB37f69A1b1C090992B" const abi = parseAbi(["function mint(address _to, uint256 amount) public"]) return ( /* ...Create & Get Smart Account */{`UserOp Hash: ${userOpHash}`}
}Response Threshold
(Min gas price per block from previous 200 blocks)