Mina Testnet: Mi primera transacción

From Mina Wiki
Revision as of 17:56, 17 April 2020 by Dan (talk | contribs) (1 revision imported)
Jump to navigation Jump to search

Originalmente publicado aquí


En esta sección, realizaremos nuestra primera transacción en la red Coda. Después de instalar el software, necesitaremos crear una nueva cuenta antes de poder enviar o recibir Coda. Empezaremos primero por arrancar el nodo para que podamos comenzar a introducir comandos.

Poner en marcha un nodo

Estado Puedes conocer el estado actual de la red y de sus servicios relacionados aquí: status.codaprotocol.com


Ejecuta el siguiente comando para iniciar una instancia de nodo Coda y conectarte a la red:

coda daemon \
-external-port 8302 \
-discovery-port 8303 \
-peer /dns4/seed-one.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWP7fTKbyiUcYJGajQDpCFo2rDexgTHFJTxCH8jvcL1eAH \
-peer /dns4/seed-two.genesis-redux.o1test.net/tcp/10002/ipfs/12D3KooWL9ywbiXNfMBqnUKHSB1Q1BaHFNUzppu6JLMVn9TTPFSA


El host y el puerto especificados anteriormente se refieren a la dirección del peer inicial; este es el peer inicial al que nos conectaremos en la red. Dado que Coda es un protocolo peer-to-peer, no existe un servidor centralizado en el que tengamos que depositar nuestra confianza.


Si redireccionas puertos de forma personalizada (diferentes a 8302 y 8303), deberás reemplazar los números de los puertos predeterminados con los que realmente utilizas.

Nota El proceso demonio debe ejecutarse cada vez que introducimos comandos desde el cliente coda, así que asegúrate de no cerrarlo / pararlo por accidente.

Consulta aquí los problemas comunes al ejecutar un nodo por primera vez.


Comprobación de conectividad

Ahora que hemos instalado y arrancado un nodo, y estamos ejecutando el demonio Coda, abrimos otra ventana terminal para ejecutar el siguiente comando:

coda client status

Nota Al arrancar por primera vez, coda client status puede tardar en conectar con el demonio hasta un minuto. Por lo tanto, si aparece Error: daemon not running. See coda daemon, solamente es necesario que esperes un momento y vuelvas a intentarlo.


Lo más probable es que veamos una respuesta que incluya los siguientes campos:

...
Peers: Total: 4 (...)
...
Sync Status: Bootstrap


Si aparece Sync Status: Bootstrap, significa que el nodo Coda está trabajando y que necesita sincronizarse con el resto de la red. No pierdas la calma en este punto, ya que el nodo puede tardar un tiempo en obtener todos los datos que necesita. Cuando el estado de sincronización sea Synced y el nodo esté conectado a 1 o más peers, habremos conseguido conectarnos a la red. Una vez sincronizados, también veremos el registro del demonio: [Info] Coda daemon is now synced.


Crear una cuenta nueva

Una vez sincronizado nuestro nodo, crearemos un par de claves pública / privada para que podamos firmar transacciones y generar una dirección para recibir pagos. Por razones de seguridad, queremos guardar las claves en un directorio que sea más difícil de acceder para los atacantes.


Ejecute el siguiente comando para crear una clave pública y privada en ~/.coda-config/wallets/store:

coda accounts create


Si estás ejecutando el nodo en una máquina virtual en la nube, asegúrate de copiar el archivo de clave privada generado en tu máquina local. Puedes hacer esto con el comando scp <source> <destination>. En el caso de que tu máquina se apague, deberás importar el archivo de clave privada utilizando el siguiente comando:

coda accounts import -privkey-path <PRIVATE-KEY-FILE>


También puedes ejecutar el comando coda accounts -help para obtener más información sobre cómo usar el comando.

Aviso La clave pública se puede compartir libremente con cualquier persona, pero ten mucho cuidado con el archivo de clave privada. Nunca compartas esta clave privada con nadie, ya que es el equivalente de una contraseña de acceso a tus fondos.


La respuesta a este comando será la siguiente:

Keypair generated
Public key: 4vsRCVbLm6LvUyzYWT95WaCzyi4D4UHxRpLBhMn7q2mRPgNCgRG3Jr3tDuhgQdmzbvCcBxhUwB3REpY2Dyf1NAxSSs8Q2vdJX93pT7eyqcyRU2S9UpDddDgovj46BSknNjzydKoopebp5Kva


Dado que la clave pública es bastante larga y difícil de recordar, guárdatela como una variable de entorno:

export CODA_PUBLIC_KEY=<YOUR-PUBLIC-KEY>


Ahora podemos acceder a esta clave desde cualquier parte utilizando $CODA_PUBLIC_KEY; comprueba si se guardó correctamente usando echo $CODA_PUBLIC_KEY. También guardaremos la ruta de acceso al archivo con nuestra clave privada:

export CODA_PRIVATE_KEY_FILE=~/.coda-config/wallets/store/$CODA_PUBLIC_KEY


Ten en cuenta que estas variables de entorno solamente se guardarán para la sesión actual, por lo que si deseas guardarlas para su uso futuro, puedes agregarlas a ~/.profile o ~/.bash_profile.


Solicitar coda

Nota Si el faucet estuviera fuera de servicio por mantenimiento puedes solicitar coda en el canal #faucet y un miembro de nuestro equipo u otro miembro de la comunidad te enviará algunos tokens.


Para enviar nuestra primera transacción, primero tendremos que obtener algunos codas con los que poder jugar. Dirígete al servidor Coda en Discord y únete al canal #faucet . Una vez allí, pídele a Tiny the dog algunos codas (recibirás 100). Aquí puedes ver un ejemplo sobre cómo hacerlo:

$request <YOUR-PUBLIC-KEY>


Una vez que un moderador del canal faucet apruebe tu solicitud, comprueba el canal de Discord para ver cuándo se realiza la transacción desde ese lado. Ten en cuenta que tus fondos pueden tardar en aparecer unos minutos:


Podemos verificar nuestro saldo para asegurarnos de que recibimos los fondos ejecutando el siguiente comando, introduciendo como atributo nuestra clave pública:

coda client get-balance -public-key $CODA_PUBLIC_KEY

Es posible que veas Balance: 0 coda. Dependiendo del tráfico en la red, pueden pasar algunos bloques antes de que tu transacción se realice.


Sugerencia: puedes mirar los registros de tu demonio para ver si se están generando nuevos bloques. Ejecuta coda client status para comprobar la altura (height) del bloque actual.


Realizar un pago

¡Finalmente llegamos a lo bueno: vamos a realizar nuestra primera transacción! Antes de enviar un pago, deberás desbloquear tu cuenta:

coda accounts unlock -public-key $CODA_PUBLIC_KEY

A efectos de la prueba, hay un servicio eco configurado que inmediatamente te reembolsará el pago menos las tarifas de transacción.

Aviso En este momento, existe un problema en el servicio “eco” que evita que se reembolse correctamente tu pago. No te preocupes, te daremos puntos Testnet igualmente al completar este desafío.


Enviemos ahora algunos de nuestros coda a este servicio para ver cómo se ve un pago:

coda client send-payment \
-amount 10 \
-receiver 4vsRCVNep7JaFhtySu6vZCjnArvoAhkRscTy5TQsGTsKM4tJcYVc3uNUMRxQZAwVzSvkHDGWBmvhFpmCeiPASGnByXqvKzmHt4aR5uAWAQf3kqhwDJ2ZY3Hw4Dzo6awnJkxY338GEp12LE4x \
-fee 5 \
-sender $CODA_PUBLIC_KEY


Si te estás preguntando qué parámetros estamos pasando a los comandos anteriores, son los siguientes:

  • Para amount (importe), estamos enviando un valor de prueba de 10 coda.
  • El receiver (receptor) es la clave pública del servicio eco.
  • Como fee (comisión), introducimos la tasa de mercado actual de 5 coda.
  • El sender (transmisor) es la clave pública completa, por ejemplo: 4vsRCVQq9Ai12E3acB1rymUK8PBifcpscd9u6DsmMWMAZWz2ABH4DXTQoCmGuvG6Q72vBQ1h9yNH2VcZsoQN2DGjVjHr2qVvtAkVfaoUXnPbgsWrTeP5RqobbQGFAju2rKGtGEQchQEay18G


Si este comando se parametriza de forma correcta deberíamos obtener una respuesta como la siguiente:

Dispatched payment with ID 3XCgvAHLAqz9VVbU7an7f2L5ffJtZoFega7jZpVJrPCYA4j5HEmUAx51BCeMc232eBWVz6q9t62Kp2cNvQZoNCSGqJ1rrJpXFqMN6NQe7x987sAC2Sd6wu9Vbs9xSr8g1AkjJoB65v3suPsaCcvvCjyUvUs8c3eVRucH4doa2onGj41pjxT53y5ZkmGaPmPnpWzdJt4YJBnDRW1GcJeyqj61GKWcvvrV6KcGD25VEeHQBfhGppZc7ewVwi3vcUQR7QFFs15bMwA4oZDEfzSbnr1ECoiZGy61m5LX7afwFaviyUwjphtrzoPbQ2QAZ2w2ypnVUrcJ9oUT4y4dvDJ5vkUDazRdGxjAA6Cz86bJqqgfMHdMFqpkmLxCdLbj2Nq3Ar2VpPVvfn2kdKoxwmAGqWCiVhqYbTvHkyZSc4n3siGbxurLkyxK6yEwS23JSZWToccM83sx2hAAABNynBVuxagL8aNZF99k3LKX6E581uSVSw5DAJ2S198DvZHXD53QvjcDGpvB9jYUpofkk1aPvtW7QZkcofBYruePM7kCHjKvbDXSw2CV5brHVv5ZBV9DuUcuFHfcYAA2TVuDtFeNLBjxDumiBASgaLvcdzGiFvSqqnzmS9MBXxYybQcmmz1WuKZHj
Receipt chain hash is now TEpTGAK9usPnBnqLi53Z2bPPaJ3PuZTMgmdZYrRv4UPxztRtmyBz2HdQSnH8vA3gpLyBJGvcpMXny2DsHjvE5GaNFn2bbpLLQqTCHuY3Nd7sqy8vDbM6qHTwHt8tcfqqBkd36LuV4CC6hVH6YsmRqRp4Lzx77WnN9gnRX7ceeXdCQUVB7B2uMo3oCYxfdpU5Q2f2KzJQ46


Es posible que no veas el Receipt chain hash de la primera transacción de la cuenta, pero en las siguientes transacciones, esto te mostrará el encabezamiento del recibo correspondiente a la chain hash list.


Verificar el saldo de la cuenta

Ahora que hemos aprendido a enviar transacciones, nos es útil conocer nuestro saldo, para que no malgastemos nuestros tokens de testnet. Verifiquemos nuestro saldo actual ejecutando el siguiente comando, pasando como atributo la clave pública de la cuenta que generamos:

coda client get-balance -public-key $CODA_PUBLIC_KEY


Obtendremos una respuesta como esta:

Balance: 50 coda


Cuando te sientas cómodo con los conceptos básicos de crear una dirección y enviar y recibir Coda, pasaremos a las partes verdaderamente únicas de la red Coda: participar en el consenso y ayudar a comprimir la cadena de bloques.


Los puntos Testnet están diseñados únicamente para hacer un seguimiento de las contribuciones a la red Testnet. Los puntos Testnet no tienen valor efectivo ni ningún otro valor monetario. Los puntos Testnet no son transferibles y no pueden canjearse ni intercambiarse por ninguna criptomoneda o activo digital. En cualquier momento nos reservamos el derecho de modificar o eliminar los puntos Testnet.