diff --git a/docs/get-started/running-nodes.mdx b/docs/get-started/running-nodes.mdx deleted file mode 100644 index 6d061747..00000000 --- a/docs/get-started/running-nodes.mdx +++ /dev/null @@ -1,309 +0,0 @@ ---- -title: 'Running Etherlink Nodes' ---- - -import Figure from '@site/src/components/Figure'; - -:::info -Etherlink is still in Beta, and so is its software. We are keeping this page -up-to-date with the latest development, and one of our focus moving forward is -improving the UX and ease to administrate our tools. -::: - -Etherlink is a Layer 2 blockchain, powered by the Tezos Smart Rollup -technology. Before anything else, it is a permissionless network, with a -multitude of roles to assume. - -The goal of this documentation page is to provide an overview of Etherlink’s -architecture, and straightforward guides to help interested users getting -started running nodes and joining the Etherlink network. - -As of today, operating an Etherlink node requires some familiarity with the -Tezos ecosystem, Smart Rollups, and the Octez testsuite. - -## Big Picture - -In its life cycle, an Etherlink transaction will go through three distinct -nodes, responsible for specific aspects of Etherlink’s features set. These three -nodes are being developed as part of the [Octez software -suite](https://tezos.gitlab.io/introduction/tezos.html). - -Users are likely to interact with the `octez-evm-node`. The -`octez-evm-node` is responsible for maintaining a local copy of Etherlink -context, applying new blocks as they are being minted, and exposing a [JSON RPC -API](https://ethereum.org/en/developers/docs/apis/json-rpc/) compliant -endpoint. - -Etherlink being a Layer 2 blockchain and a Smart Rollup, it is integrated with -the Tezos network. This integration and the interactions that come with it are -delegated to a general-purpose node called the Smart Rollup node, which listens -and reacts to what is happening on the Tezos network by being connected to an -`octez-node`. - -The overall lifecycle of a typical operation is as follows: - -1. One user submits their transaction to an `octez-evm-node` using the - `eth_sendRawTransaction`. -2. This transaction is eventually forwarded to Etherlink’s sequencer, which - includes it in a new block as soon as possible (less than 500ms after - receiving it in a nominal scenario). -3. The sequencer forwards this new block to the Smart Rollup node it is - connected to, which is tasked to post this data on the Tezos network. - Besides, the sequencer also makes the new block available to other - `octez-evm-node` it is connected to, which can do the same recursively. -4. The Smart Rollup nodes tracking the state of Etherlink fetch this new - Etherlink block and validate it. -5. This allows the `octez-evm-node`s to assert the block they received - previously has indeed be faithfully posted by the sequencer. -6. Eventually, the Smart Rollup nodes assuming the role of “operators” - commit the state of Etherlink to the Tezos network. - -We can summarize the connections between each component with this diagram. - -
- -## Running Etherlink Nodes - -### Getting the Binaries - -As mentioned, the three different nodes involved in Etherlink are being -developed as part of the Octez software suite. More precisely, - -- Any `octez-node` compatible with Tezos Mainnet can be used. -- The Smart Rollup node (`octez-smart-rollup-node`) requires [Octez - V20](https://gitlab.com/tezos/tezos/-/releases/octez-v20.0-rc1). To start a - Smart Rollup node from Etherlink genesis, a more recent build is necessary. -- The `octez-evm-node` is still experimental, and not released as part of the - Octez software suite yet. - -For the Smart Rollup node required to start Etherlink from genesis and the -`octez-evm-node`, it is recommended to use the commit -[`c5ed8f9`](https://gitlab.com/tezos/tezos/-/commit/c5ed8f9d5737cec03b29e5a7c3bf2169cc239ea8) -from the `master` branch of the [upstream Octez -repository](https://gitlab.com/tezos/tezos). - -If you are concerned by the need to use unreleased version of our nodes, we -recommend using the static binaries built by our CI if possible. Builds for -Linux systems are available for the -[x86_64](https://gitlab.com/tezos/tezos/-/jobs/6849203975/artifacts/browse/octez-binaries/x86_64/) -architecture. - -More generally, the procedures described in the [Octez -manual](http://tezos.gitlab.io/introduction/howtoget.html) to get started with -Octez apply. - -### Running a Smart Rollup Node - -The scope of this section is to provide the most straightforward instructions -to get started with running a Smart Rollup node. As a consequence, only the -observer mode is covered (not the operator mode). - -Note that, as of today, the `octez-evm-node` needs to have access to the RPCs -of a running Smart Rollup node. As a consequence, you most probably need to go -through this section even if you are only interested by running an Etherlink -node. - -#### From Genesis - -Etherlink remains a blockchain (albeit a Layer 2 one), and it is possible to -recompute its most recent state from genesis. - -That being said, running a Smart Rollup node for Etherlink Mainnet from genesis -requires some manual, specific configuration. - -The first step is to initialize the local context of the node (its `data-dir`). -To that end, the `init` command can be used. We assume the shell variable -`$sr_observer_data_dir` has been set to the path of the expected directory. - -```bash -octez-smart-rollup-node init observer config for sr1Ghq66tYK9y3r8CC1Tf8i8m5nxh8nTvZEf \ - with operators --data-dir $sr_observer_data_dir -``` - -This commands generates a minimal configuration file (`config.json`) in -`$sr_observer_data_dir`. - -```json -{ "smart-rollup-address": "sr1Ghq66tYK9y3r8CC1Tf8i8m5nxh8nTvZEf", - "smart-rollup-node-operator": {}, "fee-parameters": {}, - "mode": "observer" } -``` - -Etherlink requires the activation of an advanced feature of the Smart Rollup -node in order to work properly from genesis. More precisely, it is required to -overwrite a constant of the Smart Rollup technology normally defined by the -Tezos protocol. - -:::info -This is an advance manipulation, and the naming of the corresponding features -in the Smart Rollup node has been choosen accordingly, by prefixing them with -`unsafe`. Similarly to the Rust keyword, `unsafe` here means to be used with a -good understanding of the feature. This is definitely the case for Etherlink -and the setup provided in this document is totally safe. -::: - -Besides, it can be convenient to set a “preimages endpoint” which allows the -Smart Rollup node to retreive the initial kernel of Etherlink from an arbitrary -source without any safety risks (since the integrity of said kernel is verified -by the Smart Rollup node based on a hash posted onchain during the origination -of Etherlink). - -```json -{ "smart-rollup-address": "sr1Ghq66tYK9y3r8CC1Tf8i8m5nxh8nTvZEf", - "smart-rollup-node-operator": {}, "fee-parameters": {}, - "unsafe-pvm-patches": [ - { "increase_max_nb_tick": "50_000_000_000_000" } - ], - "pre-images-endpoint": "https://snapshots.eu.tzinit.org/etherlink-mainnet/wasm_2_0_0", - "mode": "observer" } -``` - -With this configuration file, it is now possible to start the Smart Rollup node -in observer mode. Note that you will need to be able to access to the RPCs of -an Octez node, running in archive mode. For testing purposes, you can rely -on public endpoints like the one provided by TzKT for instance. - -```bash -# for testing purposes -octez-smart-rollup-node --endpoint https://rpc.tzkt.io/mainnet run \ - --data-dir $sr_observer_data_dir \ - --apply-unsafe-patches -``` - -A few remarks. - -- `--apply-unsafe-patches` is only required the first time you start your node, - and can be removed from the command-line afterwards. Similarly, the - `unsafe-pvm-patches` field can be removed from the configuration field. -- Once the Smart Rollup node has caught up, you can safely connect it to a - rolling `octez-node`. - -Once you have the rollup node running, you can confirm that you are able query -it; for instance by requesting the latest read tezos block: - -```bash -curl -s http://localhost:8932/global/block/head -``` - -### Running `octez-evm-node` in Observer Mode - -### From Genesis - -In order to run an `octez-evm-node` in observer mode from Genesis, you need: - -- An access to a Smart Rollup node tracking the state of Etherlink (see the - previous section to setup one yourself, which is probably necessary until - public nodes become available). -- The `installer.hex` file that you can get by following the “Building - Etherlink’s Initial Kernel” appendix. - -```bash -octez-evm-node init config --devmode \ - --data-dir $evm_observer_dir --rollup-node-endpoint $sr_node_observer_rpc \ - --preimages-endpoint https://snapshots.eu.tzinit.org/etherlink-mainnet/wasm_2_0_0 \ - --evm-node-endpoint https://node.mainnet.etherlink.com \ - --initial-kernel observer/installer.hex \ - --force -``` - -If you do not want to relies on a public preimages endpoint (though it is worth -mentioning again it is safe), you can move the `wasm_2_0_0/` directory built -along the `installer.hex` file in the directory `$evm_observer_dir`. Note that -this means you will have to provision this directory with the preimages of -every kernel voted by the community and deployed on Etherlink after that. - -Starting the node is as simple as running this command. - -```bash -octez-evm-node run observer --data-dir $evm_observer_node -``` - -By default, the `octez-evm-node` exposes its JSON RPC API endpoint to `localhost:8545`. -You can test that everything works as expected by running some RPC requests manually or by -setting your wallet to use your local node. - -## Appendix - -### Building Etherlink’s Initial Kernel - -The kernel of Etherlink is a Rust program compiled in WASM implementing the -semantics of Etherlink blocks and transactions. It is used by the -`octez-evm-node` and the Smart Rollup nodes to validate the blocks created by -Etherlink’s sequencer. - -We are maintaining a file server (a so-called “preimages endpoint”) which makes -it optional to build Etherlink’s kernels yourself without sacrificing security. -There is one exception, though: if you want to start an `octez-evm-node` from -genesis, without having to trust third-parties artifacts. In that case, you -need to follow this step. - -Our build process rely on a Docker image to ensure reproducible builds. This -means that, as long as you have a working local Docker setup, building the -kernel to a WASM binary is as simple as executing the following command from -the root of the repository. - -```bash -./etherlink/scripts/build-wasm.sh -``` - -This will create the file `etherlink/kernels-/evm_kernel.wasm`. - -We have used the kernel built from commit -[`b9f6c91`](https://gitlab.com/tezos/tezos/-/commit/b9f6c9138719220db83086f0548e49c5c4c8421f). - -Etherlink kernel largely exceeds the 32KBytes limit of Tezos manager -operations. To overcome this limitation and still be able to deploy Etherlink, -we rely on a tool called the `smart-rollup-installer` program from the Smart -Rollups Rust SDK. - -This time, the necessary build rules are defined in the `kernels.mk` Makefile. - - -```bash -make -f kernels.mk build-deps kernel_sdk -``` - -The `smart-rollup-installer` allows to initialize the context of a Smart Rollup -(in our case, Etherlink) with an initial kernel and an initial state. The -latter is specified using a yaml file which can be generated with the -`octez-evm-node`. We use this state to define several parameters of Etherlink, -including its chain ID, the various governance and bridge contracts, etc. - -```bash -octez-evm-node make kernel installer config setup_file.yml --chain-id 42793 \ - --sequencer edpktufVZGs2JmEwHSFLdA7XHXotmnkD2Nwr75ACpxUr1iKUWzYFHJ \ - --delayed-bridge KT1AZeXH8qUdLMfwN2g7iwiYYSZYG4RrwhCj \ - --ticketer KT1CeFqjJRJPNVvhvznQrWfHad2jCiDZ6Lyj \ - --sequencer-governance KT1NcZQ3y9Wv32BGiUfD2ZciSUz9cY1DBDGF \ - --kernel-governance KT1H5pCmFuhAwRExzNNrPQFKpunJx1yEVa6J \ - --kernel-security-governance KT1N5MHQW5fkqXkW9GPjRYfn5KwbuYrvsY1g \ - --sequencer-pool-address 0xCF02B9Ca488f8F6F4E28e37AA1bDD16b3F1b2aD8 \ - --delayed-inbox-min-levels 1600 --remove-whitelist -``` - -To generate the files required to run Etherlink from genesis, you can finally -call `smart-rollup-installer`. - -```bash -smart-rollup-installer get-reveal-installer \ - -u etherlink/kernels-b9f6c9138719220db83086f0548e49c5c4c8421f/evm_kernel.wasm \ - -o installer.hex \ - -P wasm_2_0_0 \ - -S setup_file.yml \ - -d -``` - -The output of this invocation are a file called `installer.hex` (necessary for -running an `octez-evm-node` from genesis) and the `wasm_2_0_0/` directory -(which can be used instead of relying on a public preimages endpoint). - -The content of `installer.hex` as built from the “Building Etherlink’s Initial -Kernel” section is the following. - -``` -141036a2c000041bf7f4a6a21022003200941046a2209470d000b0b2008450d00200020096a21010340200220012c000041bf7f4a6a2102200141016a21012008417f6a22080d000b0b20020b4a01017f0240024002402002418080c400460d0041012105200020022001280210118180808000000d010b20030d01410021050b20050f0b200020032004200128020c118080808000000b930201027f23808080800041106b2202248080808000200220003602002002200128021441f490c080004111200141186a28020028020c118080808000003a000c20022001360208200241003a000d20024100360204200241046a200241e490c0800010b680808000210120022d000c210002400240200128020022030d00200041ff017141004721010c010b41012101200041ff01710d0020022802082100024020034101470d0020022d000d41ff0171450d0020002d001c4104710d0041012101200028021441d78dc080004101200041186a28020028020c118080808000000d010b200028021441dc8cc080004101200041186a28020028020c1180808080000021010b200241106a24808080800020010be90203027f017e037f23808080800041306b2203248080808000412721040240024020004290ce005a0d00200021050c010b412721040340200341096a20046a2206417c6a200020004290ce008022054290ce007e7da7220741ffff037141e4006e220841017441d88dc080006a2f00003b00002006417e6a2007200841e4006c6b41ffff037141017441d88dc080006a2f00003b00002004417c6a2104200042ffc1d72f5621062005210020060d000b0b02402005a7220641e3004d0d00200341096a2004417e6a22046a2005a72206200641ffff037141e4006e220641e4006c6b41ffff037141017441d88dc080006a2f00003b00000b024002402006410a490d00200341096a2004417e6a22046a200641017441d88dc080006a2f00003b00000c010b200341096a2004417f6a22046a200641306a3a00000b2002200141dc8cc080004100200341096a20046a412720046b10af808080002104200341306a24808080800020040b1200200141c88fc08000410210aa808080000bb50101037f024002402002410f4b0d00200021030c010b2000410020006b41037122046a210502402004450d00200021030340200320013a0000200341016a22032005490d000b0b2005200220046b2204417c7122026a2103024020024101480d00200141ff017141818284086c2102034020052002360200200541046a22052003490d000b0b200441037121020b02402002450d00200320026a21050340200320013a0000200341016a22032005490d000b0b20000b0e0020002001200210c1808080000b0b8f110100418080c0000b851144414320707265696d616765207472656520636f6e7461696e7320746f6f206d616e79206c6576656c732e4661696c656420746f20726574726965766520707265696d616765556e61626c6520746f206465636f64652044414320706167653a204465636f646520696e746f20536c69636550616765206661696c65642f686f6d652f6c74686d732f776f726b2f74657a6f732f7372632f6b65726e656c5f73646b2f656e636f64696e672f7372632f6461632f70616765732e72737d0010003f0000003e0100001f00000047756172616e7465656420746f2062652065786163742e00010000000000000001000000020000007d0010003f0000001f0100002b000000496e636f6d706c657465642070617273696e67436f756c646e277420726561642066726f6d206b65726e656c20626f6f742070617468436f756c646e277420736574206b657920647572696e6720636f6e666967206170706c69636174696f6e496e76616c6964206861736820636f6e76657273696f6e2e436f756c646e2774206d6f7665207061746820647572696e6720636f6e666967206170706c69636174696f6e4661696c656420746f207772697465206b65726e656c20636f6e74656e742070616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f6b65726e656c2f656e762f7265626f6f74ee0110001200000000696e7374616c6c65722d6b65726e656c2f7372632f696e7374722e72730000090210001d000000250000001d0000004661696c656420746f2072656164206b65726e656c20626f6f74207061746820696e20726561645f696e737472756374696f6e2f6b65726e656c2f626f6f742e7761736d6578706c696369742070616e6963696e7374616c6c65722d6b65726e656c2f7372632f6c69622e72730000008a0210001b0000003c000000050000002f5f5f696e7374616c6c65725f6b65726e656c2f617578696c696172792f6b65726e656c2f626f6f742e7761736d0000b80210002e0000008a0210001b000000680000002f0000004661696c656420746f20726561642073697a65206f6620636f6e6669672070726f6772616d4661696c656420746f2072656164206b65726e656c20626f6f7420706174682073697a654661696c656420746f20636f7079206b65726e656c20626f6f74206265666f726520636f6e66696720657865637574696f6e436f756c646e2774206465636f646520636f6e66696720696e737472756374696f6e4661696c656420746f2064656c65746520617578696c69617279206b65726e656c20626f6f7420616674657220636f6e66696720657865637574696f6e656e636f64696e672f7372632f6461632f70616765732e727300da03100019000000020100001a000000da03100019000000310100001a00000050617468206d75737420636f6e7461696e206174206c65617374206f6e6520656d70747920737465700000001404100029000000686f73742f7372632f706174682e72734804100010000000c0000000260000005061746820636f6e7461696e656420746f6f206d616e79206279746573000000680410001d0000004804100010000000c10000002800000050617468206d75737420626567696e20776974682061207061746820736570617261746f72000000a0041000250000004804100010000000c20000002900000050617468207374657073206d757374206265206e6f6e20656d707479e00410001c0000004804100010000000c30000002d000000506174682073746570206279746573206d7573742062652061736369695f616c7068616e756d65726963206f720a2020202020202020202020206f6e65206f662074686520666f6c6c6f77696e672073796d626f6c73202262272e2722202c202262275f2722202c202262272d272200140510006f0000004804100010000000c50000000d00000050617468206d757374206e6f74207374617274206279202f726561646f6e6c792c207468697320697320612072657365727665640a2020202020202020202020202020202070617274206f66207468652073746f726167652e20557365732074686520617070726f7072696174652066756e6374696f6e20746f0a202020202020202020202020202020206c6f6f6b2076616c75657320696e20746869732073746f726167652e009c051000a70000004804100010000000cb0000000d00000029696e76616c696420617267730000005d0610000c0000006c6962726172792f636f72652f7372632f666d742f6d6f642e727300070000000000000001000000080000003a2000005c06100000000000a006100002000000090000000c000000040000000a0000000b0000000c000000202020202c202c0a28280a2c30303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839390900000004000000040000000d0000000e0000000f000000740610001b000000350100000d000000282972616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468200000ca07100012000000dc0710002200000072616e676520656e6420696e646578201008100010000000dc07100022000000736c69636520696e64657820737461727473206174202062757420656e647320617420003008100016000000460810000d0000000900000004000000040000001000000054727946726f6d536c6963654572726f7200c00506636f6e6669674200000000210000000021b5a05595104efcbf3d86346ce900040111959087ab4e5a2d222a614dc175ad1b2f696e7374616c6c65722f6b65726e656c2f626f6f742e7761736d2f000000011b2f696e7374616c6c65722f6b65726e656c2f626f6f742e7761736d112f6b65726e656c2f626f6f742e7761736d1b0000000200000000152f65766d2f72656d6f76655f77686974656c697374350000000214000000cf02b9ca488f8f6f4e28e37aa1bdd16b3f1b2ad81b2f65766d2f73657175656e6365725f706f6f6c5f616464726573732b000000020800000040060000000000001d2f65766d2f64656c617965645f696e626f785f6d696e5f6c6576656c73460000000021000000002fc186f3280bfbe53f5046c614c4ece58868f4aacb47be23ae738cce405287c01f2f65766d2f6b65726e656c5f73656375726974795f676f7665726e616e63653d0000000021000000009e144e38f6b681a67cd33aa5273f18954b00f2825b223a3f33ad2b226c58e94e162f65766d2f6b65726e656c5f676f7665726e616e6365400000000021000000009c3403446b48dccf087e1ebcb64770d182b626e4334bf5baf2a55336b110b6b5192f65766d2f73657175656e6365725f676f7665726e616e6365340000000021000000003639f26fa720c14e819be337bef19bf2aaac66cb433bb2653274a0d82019df190d2f65766d2f7469636b657465723a0000000021000000000afa4dd727fd64b51a62c1bad94202a108309b1f0661858dbedb73f7508a8c54132f65766d2f64656c617965645f62726964676535000000002100000000b31626f7ff1a2fa8d70ab1c877cf880c8fa23fe40b13b550f32dffa47a15f4800e2f65766d2f73657175656e63657233000000022000000029a70000000000000000000000000000000000000000000000000000000000000d2f65766d2f636861696e5f6964b5020000 -``` - -Do take into account that, as of today, the `octez-evm-node` (which requires -this file to initialize its initial state when run from genesis) does not make -any safety check. As a consequence, you might want to recompute it yourself. diff --git a/docs/index.mdx b/docs/index.mdx index 6e300bf0..d6868c5b 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -4,12 +4,17 @@ title: 'What is Etherlink?' import Figure from '@site/src/components/Figure'; -Etherlink is an EVM-compatible, non-custodial Layer 2 blockchain powered by [Tezos Smart Rollup](https://tezos.com/developers/smart-rollups/) technology. +Etherlink is an EVM-compatible, non-custodial Layer 2 blockchain powered by Tezos Smart Rollup technology. It supports Ethereum's ecosystem tools, including wallets and indexers, facilitating seamless integration and the capability to transfer assets to and from other EVM-compatible chains. Built upon the secure foundation of Tezos layer 1, Etherlink delivers a fast, fair, and (nearly) free experience. This permissionless and censorship-resistant environment empowers developers to build and participate in the next generation of decentralized applications. +:::info +Etherlink is in Beta. +Its development team keeps this page up-to-date with the latest development as they improve the user experience and tools. +::: + ### It's fast Etherlink is low latency, with sub-second (< 500ms) confirmation times, delivered by the sequencer. diff --git a/docs/network/architecture.md b/docs/network/architecture.md new file mode 100644 index 00000000..e2991f43 --- /dev/null +++ b/docs/network/architecture.md @@ -0,0 +1,50 @@ +--- +title: Etherlink architecture +--- + +Etherlink's main components are its nodes and the sequencer. + +## Sequencer + +Etherlink relies on a sequencer to publish transactions. +It receives transactions from EVM nodes, puts them in order, and publishes them in two ways: + +- It publishes transactions to EVM nodes, which can consider them final as long as they trust that the sequencer will publish them to layer 1. +- It publishes transactions to Tezos layer 1, which finalizes them. + +## Nodes + +In its life cycle, an Etherlink transaction goes through three distinct types of nodes. +These three nodes are being developed as part of the [Octez software suite](https://tezos.gitlab.io/introduction/tezos.html): + +- EVM nodes (`octez-evm-node`): The EVM nodes maintain a local copy of the Etherlink context and expose a [JSON RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/)-compliant endpoint for clients to submit transactions to. +They forward these transactions to the sequencer and receive transactions from the sequencer, which they use to update their state. +They also check Smart Rollup nodes to verify that these transactions make it to Tezos layer 1. +- Smart Rollup nodes (`octez-smart-rollup-node`): Smart Rollup nodes store the state of the Etherlink blockchain from the perspective of Tezos layer 1. + They monitor the Tezos layer 1 Smart Rollup inbox, filter the inbox to Etherlink-related messages, process them, and update their states. + + Importantly, the Smart Rollup nodes store the state of Etherlink based on the information that they get from layer 1, not on information from EVM nodes or the sequencer. + + For more information about Smart Rollup nodes in general, see [Smart Rollups](https://docs.tezos.com/architecture/smart-rollups) on docs.tezos.com and [Smart Rollup Node](https://tezos.gitlab.io/shell/smart_rollup_node.html) in the Octez documentation. +- Tezos layer 1 nodes (`octez-node`): Layer 1 nodes are responsible for the state of layer 1. +In addition to ordinary layer 1 transactions, they receive Etherlink transactions from the sequencer. +Then the baking nodes publish the Etherlink transactions in the Smart Rollup inbox in layer 1 blocks. +For more information about Tezos layer 1 and its nodes, see [Architecture](https://docs.tezos.com/architecture) on docs.tezos.com. + +## Diagram + +This diagram summarizes the interaction between the nodes and the sequencer: + +![A high-level diagram of Etherlink architecture, showing the interaction between the nodes and the sequencer](/img/architecture.png) + +## Transaction lifecycle + +The overall lifecycle of a typical operation is as follows: + +1. A user submits a transaction to an EVM node. +1. The EVM node forwards the transaction to the sequencer. +1. The sequencer puts the transaction in its queue as soon as possible (less than 500ms after receiving it in a nominal scenario). +1. The sequencer publishes the transaction to the EVM nodes. +1. The sequencer publishes the transaction to layer 1. +1. The Smart Rollup nodes tracking the state of Etherlink fetch the new Etherlink transactions from layer 1 and update their states. +1. The EVM nodes check the state of the Smart Rollup nodes to verify that transactions have successfully and faithfully been finalized on layer 1. diff --git a/docs/network/building-kernel.md b/docs/network/building-kernel.md new file mode 100644 index 00000000..ee2a689d --- /dev/null +++ b/docs/network/building-kernel.md @@ -0,0 +1,60 @@ +--- +title: Building the Etherlink kernel +--- + +It's not necessary to build Etherlink's kernel. +You can set the `pre-images-endpoint` field in the Smart Rollup node's configuration file as described in [Running an Etherlink Smart Rollup node](./smart-rollup-nodes). +You can also download the installer kernel here: [installer.hex](/files/installer.hex). + +However, if you want to build the kernel yourself, you can use these instructions. + +This build process creates the installer kernel, which is a compressed version of the kernel that provides only enough information to install the original kernel. +The data for the original kernel is stored in separate files called preimages. +For more information about installer kernels and preimages, see the tutorial [Deploy a Smart Rollup](https://docs.tezos.com/tutorials/smart-rollup) on docs.tezos.com. + +The Etherlink build process relies on a Docker image to ensure reproducible builds, so you must have Docker installed. + +Follow these steps to build the installer kernel: + +1. Clone the repository at https://gitlab.com/tezos/tezos. +1. Check out the commit with the hash `b9f6c9138719220db83086f0548e49c5c4c8421f`. +1. Build the kernel by running this command from the root directory: + + ```bash + ./etherlink/scripts/build-wasm.sh + ``` + + This command creates the file `etherlink/kernels-b9f6c9138719220db83086f0548e49c5c4c8421f/evm_kernel.wasm`. + +1. Run this command to install the installer kernel build dependencies: + + ```bash + make -f kernels.mk build-deps kernel_sdk + ``` + +1. Set the parameters for the Etherlink kernel by running this command, which sets the chain ID, governance and bridge contracts, and other values: + + ```bash + octez-evm-node make kernel installer config setup_file.yml --chain-id 42793 \ + --sequencer edpktufVZGs2JmEwHSFLdA7XHXotmnkD2Nwr75ACpxUr1iKUWzYFHJ \ + --delayed-bridge KT1AZeXH8qUdLMfwN2g7iwiYYSZYG4RrwhCj \ + --ticketer KT1CeFqjJRJPNVvhvznQrWfHad2jCiDZ6Lyj \ + --sequencer-governance KT1NcZQ3y9Wv32BGiUfD2ZciSUz9cY1DBDGF \ + --kernel-governance KT1H5pCmFuhAwRExzNNrPQFKpunJx1yEVa6J \ + --kernel-security-governance KT1N5MHQW5fkqXkW9GPjRYfn5KwbuYrvsY1g \ + --sequencer-pool-address 0xCF02B9Ca488f8F6F4E28e37AA1bDD16b3F1b2aD8 \ + --delayed-inbox-min-levels 1600 --remove-whitelist + ``` + +1. Run this command to build the installer kernel: + + ```bash + smart-rollup-installer get-reveal-installer \ + -u etherlink/kernels-b9f6c9138719220db83086f0548e49c5c4c8421f/evm_kernel.wasm \ + -o installer.hex \ + -P wasm_2_0_0 \ + -S setup_file.yml \ + -d + ``` + +The output of the build process is the installer kernel itself, named `installer.hex`, and the preimages for the kernel, in the `wasm_2_0_0` directory. diff --git a/docs/network/evm-nodes.md b/docs/network/evm-nodes.md new file mode 100644 index 00000000..c7d2e43d --- /dev/null +++ b/docs/network/evm-nodes.md @@ -0,0 +1,45 @@ +--- +title: Running an Etherlink EVM node +--- + +The Etherlink EVM nodes are responsible for maintaining a copy of the Etherlink context and applying new blueprints that process EVM transactions. + +## Prerequisites + +- Make sure you understand the interaction between different nodes as described in [Etherlink architecture](./architecture). +- Run an Etherlink Smart Rollup node as described in [Running an Etherlink Smart Rollup node](./smart-rollup-nodes). +Public Smart Rollup nodes for Etherlink are not yet available, so you must run your own if you want to participate in the Etherlink network. +- Get the Etherlink installer kernel (`installer.hex` file), which you can build yourself as described in [Building the Etherlink kernel](./building-kernel) or download here: [installer.hex](/files/installer.hex). + +## Running an Etherlink EVM node + +Follow these steps to run the EVM node: + +1. Get a built version of the EVM node binary, named `octez-evm-node`. +Octez does not yet provide a binary build of the EVM node as part of its binary distribution or in the `tezos/tezos` docker image, so you must build it yourself from the latest commit from the Octez source code. +See [Installing Octez](https://tezos.gitlab.io/introduction/howtoget.html). +1. Set the `sr_node_observer_rpc` environment variable to the URL to the Smart Rollup node you set up in the previous section, such as `http://localhost:8932`. +1. Set the `evm_observer_dir` environment variable to the directory where the node should store its local data. +The default is `$HOME/.octez-evm-node`. +1. Initialize the node by running this command: + + ```bash + octez-evm-node init config --devmode \ + --data-dir $evm_observer_dir --rollup-node-endpoint $sr_node_observer_rpc \ + --preimages-endpoint https://snapshots.eu.tzinit.org/etherlink-mainnet/wasm_2_0_0 \ + --evm-node-endpoint https://node.mainnet.etherlink.com + ``` + + This command uses preimages hosted online. + It's safe to use these preimages because the node verifies them. + If you don't want to use third-party preimages, you can build the kernel yourself and move the contents of the `wasm_2_0_0/` directory to the local data directory; see [Building the Etherlink kernel](./building-kernel). + However, in this case, you must manually update this directory with the preimages of every kernel voted by the community and deployed on Etherlink after that. + +1. Run this command to start the node with the Etherlink installer kernel that you built or downloaded; change the name of the `installer.hex` file in the command accordingly: + + ```bash + octez-evm-node run observer --data-dir $evm_observer_dir --initial-kernel installer.hex + ``` + +By default, the EVM node exposes its JSON RPC API endpoint to `localhost:8545`. +You can test that everything works as expected by running RPC requests manually or by setting your wallet to use your local node. diff --git a/docs/network/smart-rollup-nodes.md b/docs/network/smart-rollup-nodes.md new file mode 100644 index 00000000..01689e23 --- /dev/null +++ b/docs/network/smart-rollup-nodes.md @@ -0,0 +1,84 @@ +--- +title: Running an Etherlink Smart Rollup node +--- + +Etherlink uses Smart Rollup nodes as a bridge between the EVM transactions on the EVM nodes and Tezos layer 1. +Public Smart Rollup nodes for Etherlink are not yet available, so you must run your own if you want to participate in the Etherlink network. + +The Smart Rollup node runs the _kernel_, which is a Rust program compiled in WASM implementing the semantics of Etherlink blocks and transactions. + +To start, the node uses the _installer kernel_, which is a compressed version of the kernel that provides only enough information to install the original kernel. +The data for the original kernel is stored in separate files called _preimages_. + +## References + +Make sure that you understand the interaction between different nodes as described in [Etherlink architecture](./architecture). + +For more information about Smart Rollup nodes in general, see [Smart Rollups](https://docs.tezos.com/architecture/smart-rollups) on docs.tezos.com and [Smart Rollup Node](https://tezos.gitlab.io/shell/smart_rollup_node.html) in the Octez documentation. + +## Running the Smart Rollup node from a snapshot + +You can start the Smart Rollup node with a snapshot of the Etherlink state to prevent it from having to compute the state from Etherlink genesis. + +For simplicity, these steps show how to run the smart rollup node in observer mode: + +1. Get a built version of the Smart Rollup node binary, named `octez-smart-rollup-node`. +The best place to get the most recent binary files to use with Etherlink is https://gitlab.com/tezos/tezos/-/releases. + +1. Initialize the local context of the node, which is where it stores local data: + + 1. Set the environment variable `sr_observer_data_dir` to the directory where the node should store its local data. + The default value is `$HOME/.tezos-smart-rollup-node`. + 1. Initialize the local context by running this command: + + ```bash + octez-smart-rollup-node init observer config for sr1Ghq66tYK9y3r8CC1Tf8i8m5nxh8nTvZEf \ + with operators --data-dir $sr_observer_data_dir \ + --pre-images-endpoint https://snapshots.eu.tzinit.org/etherlink-mainnet/wasm_2_0_0 + ``` + + This command generates a minimal configuration file (`config.json`) in the local data folder: + + ```json + { "smart-rollup-address": "sr1Ghq66tYK9y3r8CC1Tf8i8m5nxh8nTvZEf", + "smart-rollup-node-operator": {}, "fee-parameters": {}, "mode": "observer", + "pre-images-endpoint": + "https://snapshots.eu.tzinit.org/etherlink-mainnet/wasm_2_0_0" } + ``` + + This configuration uses the preimages that the Tezos Foundation hosts on a file server on a so-called "preimages endpoint". + To build the preimages yourself, see [Building the Etherlink kernel](./building-kernel). + +1. Download the latest snapshot from https://snapshots.eu.tzinit.org/etherlink-mainnet/, which is named `eth-mainnet.snapshot`: + + ```bash + wget https://snapshots.eu.tzinit.org/etherlink-mainnet/eth-mainnet.snapshot + ``` + +1. Load the snapshot: + + ```bash + octez-smart-rollup-node --endpoint https://rpc.tzkt.io/mainnet \ + snapshot import eth-mainnet.snapshot \ + --data-dir $sr_observer_data_dir + ``` + +1. Start the Smart Rollup node in observer mode by running this command and using the RPC endpoint of a layer 1 node that is running in archive mode: + + ```bash + octez-smart-rollup-node --endpoint https://rpc.tzkt.io/mainnet run \ + --data-dir $sr_observer_data_dir + ``` + + As in this example, you can use a public layer 1 RPC node for initial setup, or you can connect it to a layer 1 node that you are running for a more stable connection. + A rolling node is sufficient if you are using a recent snapshot; if the snapshot is old, the Smart Rollup node needs a connection to an archive node. + After that you can connect it to a rolling node. + +1. Verify that the Smart Rollup node is running by querying it. +For example, this query gets the health of the node: + + ```bash + curl -s http://localhost:8932/health + ``` + +Now that you have a Smart Rollup node configured for Etherlink, you can run an Etherlink EVM node, as described in [Running an Etherlink EVM node](./evm-nodes). diff --git a/sidebars.js b/sidebars.js index db2ca185..e482d02b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -34,7 +34,6 @@ const sidebars = { href: 'https://explorer.etherlink.com', label: 'Block Explorer', }, - 'get-started/running-nodes', ], }, { @@ -51,7 +50,19 @@ const sidebars = { }, { type: 'category', - label: 'Tools 🔨', + label: 'The Etherlink network 🛜', + collapsed: false, + collapsible: false, + items: [ + 'network/architecture', + 'network/smart-rollup-nodes', + 'network/evm-nodes', + 'network/building-kernel', + ], + }, + { + type: 'category', + label: '🔨 Tools', collapsed: false, collapsible: false, items: [ diff --git a/static/files/installer.hex b/static/files/installer.hex new file mode 100644 index 00000000..ee799b68 --- /dev/null +++ b/static/files/installer.hex @@ -0,0 +1 @@ +0061736d0100000001540c60037f7f7f017f60027f7f017f60027f7f0060057f7f7f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f0060017f0060037f7f7f0060000060067f7f7f7f7f7f017f60057f7f7f7f7f0060037e7f7f017f02a6020911736d6172745f726f6c6c75705f636f72650b77726974655f6465627567000211736d6172745f726f6c6c75705f636f72650973746f72655f686173000111736d6172745f726f6c6c75705f636f72650a73746f72655f72656164000311736d6172745f726f6c6c75705f636f72650b73746f72655f7772697465000311736d6172745f726f6c6c75705f636f72650c73746f72655f64656c657465000111736d6172745f726f6c6c75705f636f72650a73746f72655f6d6f7665000411736d6172745f726f6c6c75705f636f72650a73746f72655f636f7079000411736d6172745f726f6c6c75705f636f72650f72657665616c5f707265696d616765000411736d6172745f726f6c6c75705f636f72651073746f72655f76616c75655f73697a650001033b3a0503060706080207070202070106020208080700090900030303000106060207070007010a000902070a0101000001010001010103010b0100000405017001111105030100110619037f01418080c0000b7f00419191c0000b7f0041a091c0000b073204066d656d6f727902000a6b65726e656c5f72756e000e0a5f5f646174615f656e6403010b5f5f686561705f6261736503020916010041010b100b3e2c243433263025353738393a3b400a9b623a850401047f23808080800041306b2207248080808000024002400240200241034d0d00418080c080002102412b21010c010b2007411c6a2001200341212004200510a2808080001098808080000240200728021c450d0041ab80c080002102411b21010c010b200520072802202208490d012007411c6a200420081091808080000240200728021c22034102470d0041c680c080002102413721010c010b200728022421092007280220210a02400240024020034101460d002006280200210520062802042102200720093602202007200a36021c200741086a2007411c6a109280808000200120052007280208200728020c22042002108a80808000450d0141b483c080002102412321010c030b200720093602182007200a3602142007411c6a200741146a109380808000200728022021030240200728022c22094121470d00200520086b2109200420086a2104200241016a2108200728021c2105034020034121490d032007200120082005200420092006108980808000200541216a21052003415f6a210320072802002202450d000b200728020421010c030b20032009490d0141d881c0800041172007411c6a41f081c08000418082c0800010b280808000000b2006200420026a3602040b410021020b2000200136020420002002360200200741306a2480808080000f0b41d783c08000412341c881c0800010ab80808000000bcb0201027f23808080800041c0006b2205248080808000024002402003418110490d000340200541306a200110978080800020052802302106200541286a2001109780808000200541386a20002006200528022c20042002418010109e8080800010988080800002402005280238450d00200528023c21040c030b20024180106a210220044180106a210420034180706a22034180104b0d000b200541206a200110978080800020052802202106200541186a2001109780808000200541386a20002006200528021c200420022003109e80808000109880808000200528023c410020052802381b21040c010b200541106a200110978080800020052802102106200541086a2001109780808000200541386a20002006200528020c200420022003109e80808000109880808000200528023c410020052802381b21040b200541c0006a24808080800020040b02000bd10101037f23808080800041306b2203248080808000200341206a200210978080800020032802202104200341186a2002109780808000200341286a20012004200328021c109c808080001098808080004101210441712105024020032802280d00200328022c417f6a41024b0d00200341106a200210978080800020032802102104200341086a2002109780808000200341286a20012004200328020c10a380808000109880808000200328022c2105200328022821040b2000200436020020002005360204200341306a2480808080000b1700418885c08000410e41b485c0800010ab80808000000b9810020d7f037e23808080800041a086016b2200248080808000109980808000109a80808000200041113602dc01200041f784c080003602d80120004198066a2000419f86016a200041d8016a108c8080800002400240024002402000280298060d00200028029c062101200041003602e001200041d0016a200041d8016a10978080800020002802d0012102200041c8016a200041d8016a10978080800020004198066a2000419f86016a200220002802cc012001417c6a200041e0016a4104109d80808000109880808000200028029806450d010b418c86c080002101412521020c010b20002802e0012103200041e0016a410041e70310c2808080001a20004198066a2000419f86016a200041d8016a108c808080000240200028029806450d0041b186c080002101412421020c010b200028029c062104200041c0016a200041d8016a10978080800020002802c0012101200041b8016a200041d8016a10978080800020004198066a2000419f86016a200120002802bc01109c8080800010988080800041d586c080002101413221022000280298060d00200028029c06417f6a41024b0d00200041b0016a200041d8016a10978080800020002802b0012105200041a8016a200041d8016a10978080800020002802ac012106200041a0016a41f485c0800010978080800020002802a001210720004198016a41f485c0800010978080800020004198066a2000419f86016a200520062007200028029c0110a1808080001098808080002000280298060d0002402004417c6a220620036b220320064f0d00200041e7056a2108200041d4056a2109200041c8056a41046a210720004190066a210a20004194066a210b024002400340200041003602dc0520004190016a41f485c08000109780808000200028029001210120004188016a41f485c0800010978080800020004198066a2000419f86016a2001200028028c012003200041dc056a4104109d808080001098808080000240200028029806450d0041a382c080002101412321020c050b20002802dc05220541e8034f0d01200341046a210302402005450d00200041e0016a210420052101034020004180016a41f485c080001097808080002000280280012102200041f8006a41f485c0800010978080800020004198066a2000419f86016a2002200028027c200320042001109d808080001098808080000240200028029806450d0041c484c080002101413321020c070b2001200028029c062202490d04200420026a2104200220036a2103200120026b22010d000b0b20004198066a200041e0016a2005109080808000024020002802a00622014103470d00418787c080002101412221020c050b0240200028029c06450d00419082c080002101411321020c050b20002802a806210220002802a4062104200020002902ac063702d405200020023602d005200020043602cc05200020013602c80502400240024002400240024020010e03000102000b200041386a2007108f808080000240200028023c4121470d00200028023822010d030b41f082c080002101411821020c090b200041e8006a200710978080800020002802682101200041e0006a200710978080800020004198066a2000419f86016a20012000280264109c80808000109880808000418883c080002101412c21022000280298060d08200028029c06417f6a41024b0d08200041d8006a200710978080800020002802582104200041d0006a200710978080800020002802542105200041c8006a20091097808080002000280248210c200041c0006a200910978080800020004198066a2000419f86016a20042005200c200028024410a080808000109880808000200028029806450d020c080b200041f0006a2007108f808080002000419f86016a2009200028027020002802744100108a80808000450d0141c682c080002101412a21020c070b200141026a2d00002102200141136a290000210d2001290003210e20012f00002104200129000b210f200a2001411b6a280000360200200b2001411f6a2f00003b010020004180066a41086a200d37030020004198066a41086a2201200d370300200041dc056a41026a20023a000020004198066a410e6a220220004180066a410e6a2901003701002000200f37039806200020043b01dc052008410e6a2002290100370000200841086a200129030037000020082000290398063700002000200e3700df0520004198066a41004180800110c2808080001a20002009360280062000410036028406200041306a2000419f86016a4100200041dc056a20004198066a4180800120004180066a108980808000200028023022010d010b20032006490d010c040b0b200028023421020c030b200541e70341fc85c0800010a980808000000b2002200141b484c0800010a880808000000b200041286a41f485c0800010978080800020002802282101200041206a41f485c0800010978080800020004198066a2000419f86016a20012000280224109c8080800010988080800041a987c080002101413d21022000280298060d00200028029c06417f6a41024b0d00200041186a41f485c0800010978080800020002802182103200041106a41f485c0800010978080800020004198066a2000419f86016a20032000280214109f808080001098808080002000280298060d00200041086a418c84c08000109780808000200028020821012000418c84c0800010978080800020004198066a2000419f86016a200120002802044100419484c080004101109e808080001098808080000c010b2000419f86016a20012002109b808080000b200041a086016a2480808080000b0c00200020012902003703000bce0701077f23808080800041206b2203248080808000024002400240024002400240024002400240024002400240024002400240024002402002450d00200141016a21042002417f6a210520012d00000e03020304010b2000428380808010370208200041186a41173a0000200041146a4100360200200041106a20013602000c0f0b2000428380808010370208200041186a41003a0000200041146a2005360200200041106a20043602000c0e0b4117210620024105490d03200141056a21072002417b6a21080240200128000122024180104d0d002007210420082105412f21060c040b4124210620082002490d03200720026a21040240200820026b22050d0041002105411721060c040b200441016a21092005417f6a210820042d0000220141f2014d0d022009210420082105412f21060c030b2005450d0a200141026a21072002417e6a2102024020012d0001220641f2014d0d0020072104412f21010c0c0b412421010240200220064f0d00200521020c0c0b200341106a20072006109480808000200720066a2104200220066b2202450d0a200441016a21082002417f6a210520042d0000220641f2014d0d042008210420052102412f21010c0b0b4117210620024105490d05200141056a21072002417b6a21080240200128000122024180104d0d002007210420082105412f21060c060b4124210620082002490d05200720026a21040240200820026b22050d0041002105411721060c060b200441016a21092005417f6a210820042d0000220141f2014d0d042009210420082105412f21060c050b200820014f0d010b2000428380808010370208200041186a2006360200200041146a2005360200200041106a20043602000c090b200320092001109480808000200820016b2104200920016a21014100210520032802042106200328020021080c050b200520064f0d030c060b200820014f0d010b2000428380808010370208200041186a2006360200200041146a2005360200200041106a20043602000c050b200341186a20092001109480808000200820016b2104200920016a210141022105200328021c2106200328021821080c010b2003280214210220032802102107200341086a20082006109480808000200520066b2104200820066a210141012105200328020c2106200328020821080b20002008360214200020023602102000200736020c200020053602082000200436020420002001360200200020063602180c020b41002102411721010b2000428380808010370208200041186a2001360200200041146a2002360200200041106a20043602000b200341206a2480808080000bcc0201037f0240024020020d000c010b02400240024002400240024020012d000022030e020001060b20024105490d022001280001220341187420034180fe03714108747220034108764180fe037120034118767272220341046a22042002417f6a4b0d022003417c490d0141042004418088c0800010b180808000000b20024105490d032001280001220341187420034180fe03714108747220034108764180fe03712003411876727222034121702104200341046a22052002417f6a4b0d0320040d032003417c490d0241042005419088c0800010b180808000000b20002003360208200041003602002000200141056a3602040f0b20004102360200200041023b01040f0b20002003360208200041013602002000200141056a3602040f0b20004102360200200041023b01040f0b20004102360200200041056a20033a0000200020024100473a00040b0c00200020012902003703000b3e01027f20004121360210200020012802002202360200200020012802042201412170220336020c2000200120036b22013602042000200220016a3602080b20002001200210958080800010968080800020002002360204200020013602000bc30301037f4100210202400240024020010e020200010b4103410220002d0000412f461b0f0b0240200120006a417f6a2d0000412f470d0041030f0b41012102200141f2014b0d004102210220002d0000412f470d00412f2102410121030340200241ff01712104200020036a2d0000210202402004412f470d002002412f470d0041030f0b02402002412f460d00200241506a41ff0171410a490d00200241bf7f6a41ff0171411a490d000240200241e100490d00200241fb00490d0141040f0b200241536a4102490d00200241df00460d0041040f0b2001200341016a2203470d000b0240024020014109460d0041062102200141094d0d0220002d000141f200470d0220002d000241e500470d0220002d000341e100470d0220002d000441e400470d0220002d000541ef00470d0220002d000641ee00470d0220002d000741ec00470d0220002d000841f900470d0220002d0009412f460d010c020b4106210220002d000141f200470d0120002d000241e500470d0120002d000341e100470d0120002d000441e400470d0120002d000541ef00470d0120002d000641ee00470d0120002d000741ec00470d0120002d000841f900470d010b410521020b20020ba40301017f23808080800041206b22012480808080000240024002400240024002400240200041ff017122004106460d0020000e06010203040506010b200141206a2480808080000f0b200141146a42003702002001410136020c200141cc88c08000360208200141a088c08000360210200141086a41e488c0800010a780808000000b200141146a42003702002001410136020c2001419489c08000360208200141a088c08000360210200141086a419c89c0800010a780808000000b200141146a42003702002001410136020c200141d489c08000360208200141a088c08000360210200141086a41dc89c0800010a780808000000b200141146a42003702002001410136020c200141888ac08000360208200141a088c08000360210200141086a41908ac0800010a780808000000b200141146a42003702002001410136020c200141908bc08000360208200141a088c08000360210200141086a41988bc0800010a780808000000b200141146a42003702002001410136020c200141d08cc08000360208200141a088c08000360210200141086a41d88cc0800010a780808000000b0c00200020012902003703000b1b0020002001411f76360200200020014178200141744a1b3602040b02000b02000b0c00200120021080808080000b0c00200120021081808080000b1200200120022003200420051082808080000b1200200120022003200420051083808080000b0c00200120021084808080000b100020012002200320041085808080000b100020012002200320041086808080000b100020012002200320041087808080000b0c00200120021088808080000b0d0020002802001a037f0c000b0b02000b02000b4c01017f23808080800041206b2202248080808000200220003602182002419c8dc08000360210200241e88cc0800036020c200241013a001c200220013602142002410c6a108d80808000000b7501017f23808080800041306b220324808080800020032000360200200320013602042003412c6a41838080800036020020034183808080003602242003200341046a36022820032003360220200341086a418c90c080004102200341206a410210ad80808000200341086a200210a780808000000b7501017f23808080800041306b220324808080800020032000360200200320013602042003412c6a41838080800036020020034183808080003602242003200341046a36022820032003360220200341086a41ac90c080004102200341206a410210ad80808000200341086a200210a780808000000bd20701087f0240200028020022032000280208220472450d0002402004450d00200120026a21052000410c6a28020041016a2106410021072001210802400340200821042006417f6a2206450d0120042005460d020240024020042c00002209417f4c0d00200441016a2108200941ff017121090c010b20042d0001413f71210a2009411f71210802402009415f4b0d002008410674200a722109200441026a21080c010b200a41067420042d0002413f7172210a0240200941704f0d00200a2008410c74722109200441036a21080c010b200a41067420042d0003413f71722008411274418080f00071722209418080c400460d03200441046a21080b200720046b20086a21072009418080c400470d000c020b0b20042005460d00024020042c00002208417f4a0d0020084160490d0020084170490d0020042d0002413f7141067420042d0001413f71410c747220042d0003413f7172200841ff0171411274418080f0007172418080c400460d010b024002402007450d00024020072002490d004100210420072002460d010c020b41002104200120076a2c00004140480d010b200121040b2007200220041b21022004200120041b21010b024020030d00200028021420012002200041186a28020028020c118080808000000f0b200028020421050240024020024110490d002001200210bc8080800021040c010b024020020d00410021040c010b2002410371210602400240200241044f0d0041002104410021090c010b2002417c712107410021044100210903402004200120096a22082c000041bf7f4a6a200841016a2c000041bf7f4a6a200841026a2c000041bf7f4a6a200841036a2c000041bf7f4a6a21042007200941046a2209470d000b0b2006450d00200120096a21080340200420082c000041bf7f4a6a2104200841016a21082006417f6a22060d000b0b02400240200520044d0d00200520046b21074100210402400240024020002d00200e0402000102020b20072104410021070c010b20074101762104200741016a41017621070b200441016a2104200041186a2802002108200028021021062000280214210903402004417f6a2204450d0220092006200828021011818080800000450d000b41010f0b200028021420012002200041186a28020028020c118080808000000f0b410121040240200920012002200828020c118080808000000d004100210402400340024020072004470d00200721040c020b200441016a210420092006200828021011818080800000450d000b2004417f6a21040b200420074921040b20040f0b200028021420012002200041186a28020028020c118080808000000b5401017f23808080800041206b22032480808080002003410c6a420037020020034101360204200341e88cc080003602082003200136021c200320003602182003200341186a3602002003200210a780808000000b110020003502004101200110bf808080000b940101017f23808080800041206b2205248080808000024020022004490d00200441016a2002490d00200041003602102000200236020420002001360200200020033602082000410c6a2004360200200541206a2480808080000f0b200541146a42003702002005410136020c200541f88cc08000360208200541e88cc08000360210200541086a41c48fc0800010a780808000000bca05010a7f23808080800041306b2203248080808000200341246a2001360200200341033a002c2003412036021c410021042003410036022820032000360220200341003602142003410036020c0240024002400240200228021022050d002002410c6a2802002200450d0120022802082101200041037421062000417f6a41ffffffff017141016a21042002280200210003400240200041046a2802002207450d00200328022020002802002007200328022428020c118080808000000d040b20012802002003410c6a200141046a280200118180808000000d03200141086a2101200041086a2100200641786a22060d000c020b0b200241146a2802002201450d00200141057421082001417f6a41ffffff3f7141016a210420022802082109200228020021004100210603400240200041046a2802002201450d00200328022020002802002001200328022428020c118080808000000d030b2003200520066a220141106a28020036021c20032001411c6a2d00003a002c2003200141186a2802003602282001410c6a280200210a4100210b41002107024002400240200141086a2802000e03010002010b200a410374210c410021072009200c6a220c280204418480808000470d01200c280200280200210a0b410121070b2003200a3602102003200736020c200141046a280200210702400240024020012802000e03010002010b2007410374210a2009200a6a220a280204418480808000470d01200a28020028020021070b4101210b0b200320073602182003200b3602142009200141146a2802004103746a22012802002003410c6a2001280204118180808000000d02200041086a21002008200641206a2206470d000b0b0240200420022802044f0d002003280220200228020020044103746a22012802002001280204200328022428020c118080808000000d010b410021010c010b410121010b200341306a24808080800020010bae0601077f024002402001450d00412b418080c400200028021c220641017122011b2107200120056a21080c010b200541016a2108200028021c2106412d21070b0240024020064104710d00410021020c010b0240024020034110490d002002200310bc8080800021010c010b024020030d00410021010c010b2003410371210902400240200341044f0d00410021014100210a0c010b2003417c71210b410021014100210a034020012002200a6a220c2c000041bf7f4a6a200c41016a2c000041bf7f4a6a200c41026a2c000041bf7f4a6a200c41036a2c000041bf7f4a6a2101200b200a41046a220a470d000b0b2009450d002002200a6a210c03402001200c2c000041bf7f4a6a2101200c41016a210c2009417f6a22090d000b0b200120086a21080b0240024020002802000d00410121012000280214220c2000280218220a20072002200310bd808080000d01200c20042005200a28020c118080808000000f0b02402000280204220920084b0d00410121012000280214220c2000280218220a20072002200310bd808080000d01200c20042005200a28020c118080808000000f0b02402006410871450d002000280210210b2000413036021020002d0020210641012101200041013a00202000280214220c2000280218220a20072002200310bd808080000d01200920086b41016a2101024003402001417f6a2201450d01200c4130200a28021011818080800000450d000b41010f0b41012101200c20042005200a28020c118080808000000d01200020063a00202000200b360210410021010c010b200920086b210802400240024020002d002022010e0402000100020b20082101410021080c010b20084101762101200841016a41017621080b200141016a2101200041186a280200210c200028021021092000280214210a024003402001417f6a2201450d01200a2009200c28021011818080800000450d000b41010f0b41012101200a200c20072002200310bd808080000d00200a20042005200c28020c118080808000000d00410021010340024020082001470d0020082008490f0b200141016a2101200a2009200c28021011818080800000450d000b2001417f6a2008490f0b20010b2000200042abfdf19ca983c58464370308200042f8fdc7fe8386b688393703000b7501017f23808080800041306b220324808080800020032000360200200320013602042003412c6a41838080800036020020034183808080003602242003200341046a36022820032003360220200341086a41e090c080004102200341206a410210ad80808000200341086a200210a780808000000b870101017f23808080800041c0006b22052480808080002005200136020c2005200036020820052003360214200520023602102005413c6a41858080800036020020054186808080003602342005200541106a3602382005200541086a360230200541186a41b08dc080004102200541306a410210ad80808000200541186a200410a780808000000b140020012000280200200028020410aa808080000b180020002802002001200028020428020c118180808000000bcc04010b7f2000280204210320002802002104200028020821054100210641002107410021084100210902400340200941ff01710d0102400240200820024b0d000340200120086a210a02400240200220086b220b4108490d00024002400240200a41036a417c712200200a460d002000200a6b220c450d00410021000340200a20006a2d0000410a460d05200c200041016a2200470d000b200c200b41786a220d4d0d010c020b200b41786a210d4100210c0b0340200a200c6a22092802002200417f732000418a94a8d0007341fffdfb776a71418081828478710d01200941046a2802002200417f732000418a94a8d0007341fffdfb776a71418081828478710d01200c41086a220c200d4d0d000b0b0240200c200b470d00200221080c040b03400240200a200c6a2d0000410a470d00200c21000c030b200b200c41016a220c470d000b200221080c030b024020022008470d00200221080c030b410021000340200a20006a2d0000410a460d01200b200041016a2200470d000b200221080c020b200820006a220041016a21080240200020024f0d00200120006a2d0000410a470d00410021092008210d200821000c030b200820024d0d000b0b410121092007210d2002210020072002460d020b0240024020052d0000450d00200441d88dc080004104200328020c118080808000000d010b200120076a210c200020076b210a4100210b024020002007460d00200a200c6a417f6a2d0000410a46210b0b2005200b3a0000200d21072004200c200a200328020c11808080800000450d010b0b410121060b20060bf70202057f017e23808080800041c0006b22032480808080002000280200210441012105024020002d00080d0002402000280204220628021c22074104710d0041012105200628021441dc8dc0800041e08dc0800020041b4102410120041b200641186a28020028020c118080808000000d0120012006200228020c1181808080000021050c010b024020040d0041012105200628021441e18dc080004102200641186a28020028020c118080808000000d01200628021c21070b41012105200341013a001b200341346a41c08dc080003602002003200629021437020c20032003411b6a3602142003200629020837022420062902002108200320073602382003200628021036022c200320062d00203a003c2003200837021c20032003410c6a36023020012003411c6a200228020c118180808000000d00200328023041de8dc080004102200328023428020c1180808080000021050b200020053a00082000200441016a360200200341c0006a24808080800020000b860201017f23808080800041106b22022480808080002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c410421010b20002002410c6a200110b5808080002101200241106a24808080800020010b3e01017f23808080800041106b22022480808080002002200036020c2002410c6a41ac8fc08000200110ae808080002100200241106a24808080800020000b110020002802002001200210b5808080000b8d0201017f23808080800041106b2202248080808000200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c410421010b20002002410c6a200110b5808080002101200241106a24808080800020010b4101017f23808080800041106b22022480808080002002200028020036020c2002410c6a41ac8fc08000200110ae808080002100200241106a24808080800020000b800701097f024002402001200041036a417c71220220006b2203490d00200120036b22044104490d002004410371210541002106410021010240200220004622070d00410021010240024020022000417f736a41034f0d00410021080c010b4100210803402001200020086a22092c000041bf7f4a6a200941016a2c000041bf7f4a6a200941026a2c000041bf7f4a6a200941036a2c000041bf7f4a6a2101200841046a22080d000b0b20070d00200020026b2102200020086a21090340200120092c000041bf7f4a6a2101200941016a2109200241016a22020d000b0b200020036a210802402005450d0020082004417c716a22092c000041bf7f4a210620054101460d00200620092c000141bf7f4a6a210620054102460d00200620092c000241bf7f4a6a21060b20044102762103200620016a21020340200821062003450d02200341c001200341c001491b220441037121052004410274210702400240200441fc0171220a0d00410021090c010b2006200a4102746a2100410021092006210103402001410c6a2802002208417f73410776200841067672418182840871200141086a2802002208417f73410776200841067672418182840871200141046a2802002208417f7341077620084106767241818284087120012802002208417f7341077620084106767241818284087120096a6a6a6a2109200141106a22012000470d000b0b200320046b2103200620076a2108200941087641ff81fc0771200941ff81fc07716a418180046c41107620026a21022005450d000b2006200a4102746a22092802002201417f734107762001410676724181828408712101024020054101460d0020092802042208417f7341077620084106767241818284087120016a210120054102460d0020092802082209417f7341077620094106767241818284087120016a21010b200141087641ff811c71200141ff81fc07716a418180046c41107620026a21020c010b024020010d0041000f0b2001410371210802400240200141044f0d0041002102410021090c010b2001417c712103410021024100210903402002200020096a22012c000041bf7f4a6a200141016a2c000041bf7f4a6a200141026a2c000041bf7f4a6a200141036a2c000041bf7f4a6a21022003200941046a2209470d000b0b2008450d00200020096a21010340200220012c000041bf7f4a6a2102200141016a21012008417f6a22080d000b0b20020b4a01017f0240024002402002418080c400460d0041012105200020022001280210118180808000000d010b20030d01410021050b20050f0b200020032004200128020c118080808000000b930201027f23808080800041106b22022480808080002002200036020020022001280214418091c080004111200141186a28020028020c118080808000003a000c20022001360208200241003a000d20024100360204200241046a200241f090c0800010b680808000210120022d000c210002400240200128020022030d00200041ff017141004721010c010b41012101200041ff01710d0020022802082100024020034101470d0020022d000d41ff0171450d0020002d001c4104710d0041012101200028021441e38dc080004101200041186a28020028020c118080808000000d010b200028021441e88cc080004101200041186a28020028020c1180808080000021010b200241106a24808080800020010be90203027f017e037f23808080800041306b2203248080808000412721040240024020004290ce005a0d00200021050c010b412721040340200341096a20046a2206417c6a200020004290ce008022054290ce007e7da7220741ffff037141e4006e220841017441e48dc080006a2f00003b00002006417e6a2007200841e4006c6b41ffff037141017441e48dc080006a2f00003b00002004417c6a2104200042ffc1d72f5621062005210020060d000b0b02402005a7220641e3004d0d00200341096a2004417e6a22046a2005a72206200641ffff037141e4006e220641e4006c6b41ffff037141017441e48dc080006a2f00003b00000b024002402006410a490d00200341096a2004417e6a22046a200641017441e48dc080006a2f00003b00000c010b200341096a2004417f6a22046a200641306a3a00000b2002200141e88cc080004100200341096a20046a412720046b10af808080002104200341306a24808080800020040b1200200141d48fc08000410210aa808080000bb50101037f024002402002410f4b0d00200021030c010b2000410020006b41037122046a210502402004450d00200021030340200320013a0000200341016a22032005490d000b0b2005200220046b2204417c7122026a2103024020024101480d00200141ff017141818284086c2102034020052002360200200541046a22052003490d000b0b200441037121020b02402002450d00200320026a21050340200320013a0000200341016a22032005490d000b0b20000b0e0020002001200210c1808080000b0b9b110100418080c0000b911144414320707265696d616765207472656520636f6e7461696e7320746f6f206d616e79206c6576656c732e4661696c656420746f20726574726965766520707265696d616765556e61626c6520746f206465636f64652044414320706167653a204465636f646520696e746f20536c69636550616765206661696c65642f686f6d652f7372696261726f75642f43532f50726f6a6563742f74657a6f732f7372632f6b65726e656c5f73646b2f656e636f64696e672f7372632f6461632f70616765732e727300007d001000490000003e0100001f00000047756172616e7465656420746f2062652065786163742e00010000000000000001000000020000007d001000490000001f0100002b000000496e636f6d706c657465642070617273696e67436f756c646e277420726561642066726f6d206b65726e656c20626f6f742070617468436f756c646e277420736574206b657920647572696e6720636f6e666967206170706c69636174696f6e496e76616c6964206861736820636f6e76657273696f6e2e436f756c646e2774206d6f7665207061746820647572696e6720636f6e666967206170706c69636174696f6e4661696c656420746f207772697465206b65726e656c20636f6e74656e742070616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f6b65726e656c2f656e762f7265626f6f74fa0110001200000000696e7374616c6c65722d6b65726e656c2f7372632f696e7374722e72730000150210001d000000250000001d0000004661696c656420746f2072656164206b65726e656c20626f6f74207061746820696e20726561645f696e737472756374696f6e2f6b65726e656c2f626f6f742e7761736d6578706c696369742070616e6963696e7374616c6c65722d6b65726e656c2f7372632f6c69622e7273000000960210001b0000003c000000050000002f5f5f696e7374616c6c65725f6b65726e656c2f617578696c696172792f6b65726e656c2f626f6f742e7761736d0000c40210002e000000960210001b000000680000002f0000004661696c656420746f20726561642073697a65206f6620636f6e6669672070726f6772616d4661696c656420746f2072656164206b65726e656c20626f6f7420706174682073697a654661696c656420746f20636f7079206b65726e656c20626f6f74206265666f726520636f6e66696720657865637574696f6e436f756c646e2774206465636f646520636f6e66696720696e737472756374696f6e4661696c656420746f2064656c65746520617578696c69617279206b65726e656c20626f6f7420616674657220636f6e66696720657865637574696f6e656e636f64696e672f7372632f6461632f70616765732e727300e603100019000000020100001a000000e603100019000000310100001a00000050617468206d75737420636f6e7461696e206174206c65617374206f6e6520656d70747920737465700000002004100029000000686f73742f7372632f706174682e72735404100010000000c0000000260000005061746820636f6e7461696e656420746f6f206d616e79206279746573000000740410001d0000005404100010000000c10000002800000050617468206d75737420626567696e20776974682061207061746820736570617261746f72000000ac041000250000005404100010000000c20000002900000050617468207374657073206d757374206265206e6f6e20656d707479ec0410001c0000005404100010000000c30000002d000000506174682073746570206279746573206d7573742062652061736369695f616c7068616e756d65726963206f720a2020202020202020202020206f6e65206f662074686520666f6c6c6f77696e672073796d626f6c73202262272e2722202c202262275f2722202c202262272d272200200510006f0000005404100010000000c50000000d00000050617468206d757374206e6f74207374617274206279202f726561646f6e6c792c207468697320697320612072657365727665640a2020202020202020202020202020202070617274206f66207468652073746f726167652e20557365732074686520617070726f7072696174652066756e6374696f6e20746f0a202020202020202020202020202020206c6f6f6b2076616c75657320696e20746869732073746f726167652e00a8051000a70000005404100010000000cb0000000d00000029696e76616c69642061726773000000690610000c0000006c6962726172792f636f72652f7372632f666d742f6d6f642e727300070000000000000001000000080000003a2000006806100000000000ac06100002000000090000000c000000040000000a0000000b0000000c000000202020202c202c0a28280a2c30303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839390900000004000000040000000d0000000e0000000f000000800610001b000000350100000d000000282972616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468200000d607100012000000e80710002200000072616e676520656e6420696e646578201c08100010000000e807100022000000736c69636520696e64657820737461727473206174202062757420656e647320617420003c08100016000000520810000d0000000900000004000000040000001000000054727946726f6d536c6963654572726f7200c00506636f6e6669674200000000210000000021b5a05595104efcbf3d86346ce900040111959087ab4e5a2d222a614dc175ad1b2f696e7374616c6c65722f6b65726e656c2f626f6f742e7761736d2f000000011b2f696e7374616c6c65722f6b65726e656c2f626f6f742e7761736d112f6b65726e656c2f626f6f742e7761736d1b0000000200000000152f65766d2f72656d6f76655f77686974656c697374350000000214000000cf02b9ca488f8f6f4e28e37aa1bdd16b3f1b2ad81b2f65766d2f73657175656e6365725f706f6f6c5f616464726573732b000000020800000040060000000000001d2f65766d2f64656c617965645f696e626f785f6d696e5f6c6576656c73460000000021000000002fc186f3280bfbe53f5046c614c4ece58868f4aacb47be23ae738cce405287c01f2f65766d2f6b65726e656c5f73656375726974795f676f7665726e616e63653d0000000021000000009e144e38f6b681a67cd33aa5273f18954b00f2825b223a3f33ad2b226c58e94e162f65766d2f6b65726e656c5f676f7665726e616e6365400000000021000000009c3403446b48dccf087e1ebcb64770d182b626e4334bf5baf2a55336b110b6b5192f65766d2f73657175656e6365725f676f7665726e616e6365340000000021000000003639f26fa720c14e819be337bef19bf2aaac66cb433bb2653274a0d82019df190d2f65766d2f7469636b657465723a0000000021000000000afa4dd727fd64b51a62c1bad94202a108309b1f0661858dbedb73f7508a8c54132f65766d2f64656c617965645f62726964676535000000002100000000b31626f7ff1a2fa8d70ab1c877cf880c8fa23fe40b13b550f32dffa47a15f4800e2f65766d2f73657175656e63657233000000022000000029a70000000000000000000000000000000000000000000000000000000000000d2f65766d2f636861696e5f6964b5020000 \ No newline at end of file diff --git a/static/img/architecture.png b/static/img/architecture.png new file mode 100644 index 00000000..b024b34d Binary files /dev/null and b/static/img/architecture.png differ diff --git a/static/img/big-picture-nodes.png b/static/img/big-picture-nodes.png deleted file mode 100644 index ecdef106..00000000 Binary files a/static/img/big-picture-nodes.png and /dev/null differ