mirror of
https://github.com/pezkuwichain/pezkuwi-runtime-templates.git
synced 2026-04-21 23:47:56 +00:00
136 lines
5.6 KiB
Plaintext
136 lines
5.6 KiB
Plaintext
:source-highlighter: highlight.js
|
|
:highlightjs-languages: rust
|
|
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
|
|
|
|
= Quick start
|
|
|
|
* Begin by visiting our link:https://github.com/OpenZeppelin/pezkuwi-runtime-templates[repository]. You can fork it, or simply clone it to your local directory.
|
|
```bash
|
|
git clone git@github.com:OpenZeppelin/pezkuwi-runtime-templates.git
|
|
```
|
|
|
|
* Move to the directory of the template you want to use. We will use the `generic runtime template` for this tutorial, but it is the same for the same applies to the xref:runtimes/evm.adoc[EVM Runtime Template].
|
|
```bash
|
|
cd generic-template
|
|
```
|
|
|
|
* Build a release version of the runtime and node:
|
|
```bash
|
|
cargo build --release
|
|
```
|
|
|
|
* Receive some `PSO` from the link:https://pezkuwichain.github.io/pezkuwi-testnet-faucet/[Paseo faucet]
|
|
|
|
* Reserve a ParaId on Paseo:
|
|
|
|
** Go to link:https://pezkuwi.js.org/apps[PezkuwiJS]. Check that it points to Paseo testnet.
|
|
** Go to `Network` > `Teyrchains`
|
|
** Go to `Parathreads` tab
|
|
** Click the `+ ParaId` button
|
|
** Save the `teyrchain id` for the further usage.
|
|
** Click `Submit` and `Sign and Submit`.
|
|
|
|
* Generate and customize a chainspec:
|
|
|
|
[NOTE]
|
|
====
|
|
We use the `generic-template-node` executable throughout all the commands since we are using the `generic-template`, but make sure to update the name of the executable if you are using any of the other runtime template.
|
|
====
|
|
|
|
** Generate a plain chainspec with this command:
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node build-spec --disable-default-bootnode > plain-teyrchain-chainspec.json
|
|
```
|
|
|
|
** Edit the chainspec:
|
|
|
|
*** Update `name`, `id` and `protocolId` to unique values.
|
|
*** Change `relay_chain` from `paseo-local` to `paseo`.
|
|
*** Change `para_id` and `teyrchainInfo.teyrchainId` from `1000` to the previously saved teyrchain id.
|
|
|
|
** Generate a raw chainspec with this command:
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node build-spec --chain plain-teyrchain-chainspec.json --disable-default-bootnode --raw > raw-teyrchain-chainspec.json
|
|
```
|
|
|
|
[NOTE]
|
|
====
|
|
At this point, you are free to use the omni-node. The command for using omni-node takes the form: `pezkuwi-omni-node --chain <chain_spec.json>`. For more information about using omni-node, see the link:https://docs.pezkuwi.com/develop/toolkit/teyrchains/pezkuwi-omni-node/[pezkuwi-omni-node documentation].
|
|
====
|
|
|
|
* Run two nodes and wait until it syncs with the Paseo relay chain. This can take a fairly long time(up to 2 days), so we can use the `fast-unsafe` flag to make the process faster since we are on a testnet(~ 3 hours). `fast` downloads the blocks without executing the transactions, and `unsafe` skips downloading the state proofs(which we are ok with since it is a testnet).
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node \
|
|
--alice \
|
|
--collator \
|
|
--force-authoring \
|
|
--chain raw-teyrchain-chainspec.json \
|
|
--base-path <path to datadir> \
|
|
--port 40333 \
|
|
--rpc-port 8844 \
|
|
-- \
|
|
--execution wasm \
|
|
--chain <path to the Paseo chainspec> \
|
|
--port 30343 \
|
|
--rpc-port 9977 \
|
|
--sync fast-unsafe
|
|
```
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node \
|
|
--bob \
|
|
--collator \
|
|
--force-authoring \
|
|
--chain raw-teyrchain-chainspec.json \
|
|
--base-path <path to datadir> \
|
|
--port 40333 \
|
|
--rpc-port 8845 \
|
|
-- \
|
|
--execution wasm \
|
|
--chain <path to the Paseo chainspec> \
|
|
--port 30343 \
|
|
--rpc-port 9977 \
|
|
--sync fast-unsafe
|
|
```
|
|
** `<path to datadir>` is where the downloaded chain state will be stored. It can be any folder on your computer.
|
|
** `<path to the Paseo chainspec>` is where your Paseo chainspec is stored. You can download this file from the link:https://github.com/pezkuwichain/pezkuwi-sdk/blob/release-pezkuwi-v1.10.0/pezkuwi/node/service/chain-specs/paseo.json[official Pezkuwi sdk repository].
|
|
|
|
* Register a parathread:
|
|
|
|
** Generate a genesis state:
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node export-genesis-state --chain raw-teyrchain-chainspec.json para-<paraId>-genesis-state
|
|
```
|
|
** Generate a genesis wasm:
|
|
+
|
|
```bash
|
|
./target/release/generic-template-node export-genesis-wasm --chain raw-teyrchain-chainspec.json para-<paraId>-wasm
|
|
```
|
|
** Go to link:https://pezkuwi.js.org/apps[PezkuwiJS]. Check that it points to Paseo testnet.
|
|
** Go to `Network` > `Teyrchains`.
|
|
** Go to `Parathreads` tab.
|
|
** Click the `+ ParaThread` button.
|
|
** Insert `para-<paraId>-wasm` to `code` field.
|
|
** Insert `para-<paraId>-genesis-state` to `initial state` field.
|
|
** Click `Submit` and `Sign and Submit`.
|
|
|
|
* When a teyrchain gets synced with a relaychain, you may start producing blocks as a parathread:
|
|
** Create some transaction with a PezkuwiJS pointing to your teyrchain setup.
|
|
** With a PezkuwiJS pointing to Paseo go to `Developer` > `Extrinsics`.
|
|
** Submit an extrinsic `onDemandAssignmentProvider.placeOrderAllowDeath` or `onDemandAssignmentProvider.placeOrderKeepAlive`:
|
|
*** `maxAmount` should be not less than 10_000_000 and it is amount of 0.00001 PAS. It is an amount of PAS paid for the block.
|
|
*** `paraId` should be set to your teyrchain id.
|
|
*** Click `Submit` and `Sign and Submit`.
|
|
** In some time your parathread will produce a block and in one of the next blocks of Paseo there will be an inclusion of this block
|
|
|
|
== What's next?
|
|
|
|
- Read our general guides to understand more about the concepts of runtime development.
|
|
|
|
- Learn more about the runtime configuration. Currently, we have two runtime templates: xref:runtimes/generic.adoc[Generic Runtime Template] and xref:runtimes/evm.adoc[EVM Runtime Template].
|
|
- Explore the documentation for pezpallets. It may be useful if you are considering building a frontend for your teyrchain.
|