4. Testnet
Un paso más en el proceso de desarrollo de una parachain es probar en una testnet pública, como Rococo. Si vamos a Polkadot JS Apps, en la sección de “Network -> Parachains” vemos muchos ambientes de prueba para parachains de Polkadot.
Vamos a ver los pasos necesarios para lanzar una parachain en Rococo, sin embargo, para realmente abrir una, necesitamos llenar un formulario y recibir autorización de Parity. En el futuro, se planea que las parachains en Rococo se puedan lanzar mediante gobernanza.
Cuenta y tokens
Para realizar cualquier acción en Rococo, necesitamos ROC, su token nativo. Para guardar estos tokens, necesitamos una wallet compatible con substrate. No es aconsejable usar claves de desarrollo en cualquier ambiente público.
Hay muchas opciones para guardar tokens, pero para nuestros propósitos, podemos usar la extensión de Polkadot JS. Para ambientes no de prueba, vamos a querer usar wallets, de las cuales hay muchas para elegir, como Talisman o Nova, entre otras.
Una vez que hayamos descargado la extensión para nuestro navegador, Firefox o Chrome, necesitamos crear una cuenta. Al crear la cuenta en la extensión, anotamos la frase semilla (seedphrase) generada, esta frase nos permitirá recuperar nuestra cuenta en el futuro si la borramos de la extensión. Al entrar a Polkadot JS Apps, tenemos que darle permiso a nuestro extensión para que nos permita usar nuestra cuenta en la página.
Para conseguir ROC, para esto, usaremos un faucet. Un faucet es una aplicación donde podemos ir a cargar nuestra cuenta con tokens de la testnet, suele existir en las testnets públicas. En el caso de Rococo, existe un faucet web que podemos usar para conseguir ROC.
Reservar ParaId
Ahora podemos reservar nuestro ParaId.
En Polkadot JS Apps, bajo “Network -> Parachains”, en la pestaña de “Parathreads”, podemos registrar nuestro ParaId.
Al confirmar, la extensión nos va a pedir que firmemos la transacción, escribiendo nuestra contraseña.
Luego de confirmada, corroboramos que tenemos nuestro ParaId viendo los eventos de la cadena.
Modificar el spec
Como vimos antes, tenemos que modificar el spec de nuestro collator para incluír el ParaId que registramos.
En este caso, la relay_chain cambia de rococo-local a rococo, dado que queremos conectarnos a la testnet pública.
Editamos nuestro archivo parachainSpec.json para cambiar esas lineas:
...
"relay_chain": "rococo",
"para_id": <para-id>,
...
"parachainInfo": {
"parachainId": <para-id>,
...
},
...
Agregamos la clave pública de nuestra cuenta a la sección de “session -> keys”.
...
"session": {
"keys": [
...
[
"5CfrJf9mCYuBmdsrizTkjiQi85SQvgNAWFc14gaLdoUbMZPK",
"5CfrJf9mCYuBmdsrizTkjiQi85SQvgNAWFc14gaLdoUbMZPK",
{
"aura": "5CfrJf9mCYuBmdsrizTkjiQi85SQvgNAWFc14gaLdoUbMZPK"
}
]
]
},
...
Luego generamos la raw spec a partir de nuestra spec modificada.
./target/release/parachain-template-node build-spec --chain parachainSpec.json \
--disable-default-bootnodes --raw > rawParachainSpec.json
Exportar archivos requeridos
Como ya vimos, tenemos que registrar el runtime y el estado génesis en nuestra relay chain, así que tenemos que exportarlos.
./target/release/parachain-template-node export-genesis-wasm --chain rawParachainSpec.json para-wasm
./target/release/parachain-template-node export-genesis-state --chain rawParachainSpec.json para-genesis-state
Correr el collator
Ahora podemos correr el collator.
./target/release/parachain-template-node \
--collator \
--chain rawParachainSpec.json \
--base-path /tmp/parachain/tutorial \
--port 50333 \
--ws-port 8855 \
-- \
--execution wasm \
--chain rococo \
--port 50343 \
--ws-port 9988
Registrar como parathread
Antes de poder ser una parachain, tenemos que registrarnos como parathread.
Podemos hacer esto en la misma pantalla de parathreads en la que registramos nuestro ParaId.
Apretamos en el botón ParaThread.
Si bajamos en la página, vemos que nuestra parathread está “Onboarding”, toma dos sesiones para quedar efectiva. Podemos ver el tiempo que falta ahí mismo.
Una vez que nuestra parathread está operativa, podemos pasar a una parachain abriendo una petición. Si queremos desarrollar una parachain, este camino es una buena opción para probar antes de lanzar en una red en producción como Kusama o Polkadot.
En este momento, el modelo de pagos a demanda, pay-as-you-go, de las parathreads no está implementado, lo que significa que solo podemos realizar acciones si tenemos una parachain.