A continuación les vamos a hablar de Mina Protocol (MINA) Token, un proyecto muy interesante que hoy está con bastante movimiento y que ha crecido un buen tanto por ciento. En este artículo les vamos a dar toda la información de Mina Protocol y también les vamos a explicar como comprar MINA Token de forma sencilla.
Visión general Mina Protocol (MINA) Token.
Aquí es donde encontrará toda la documentación para todo el proceso de puesta en marcha de Mina.
¿Qué es Mina Protocol?
Mina es el primer protocolo de criptomonedas con una cadena de bloques sucinta. Las criptomonedas actuales como Bitcoin y Ethereum almacenan cientos de gigabytes de datos y, a medida que pasa el tiempo, sus cadenas de bloques solo aumentarán de tamaño. Sin embargo, con Mina, no importa cuánto aumente el uso, la cadena de bloques siempre se mantiene del mismo tamaño, aproximadamente 22 kb 1 (el tamaño de unos pocos tweets). Esto significa que los participantes pueden sincronizar y verificar rápidamente la red.
Este avance es posible gracias a zk-SNARKs, un tipo de prueba criptográfica sucinta. Cada vez que un nodo Mina produce un nuevo bloque, también genera una prueba SNARK que verifica que el bloque era válido. Todos los nodos pueden almacenar la prueba pequeña, a diferencia de la cadena completa. Al no tener que preocuparse por el tamaño del bloque, el protocolo Mina habilita una cadena de bloques que está descentralizada a escala.
Empezando con Mina Protocol
¡Bienvenidos a Mina! Esta sección lo guiará a través del proceso de configuración de un nodo Mina. Después, le mostraremos cómo generar un par de claves para usar con la red. Finalmente, le mostraremos cómo conectarse a la red y comenzar a producir bloques.
Requisitos
Software : macOS, Linux (actualmente es compatible con Debian 9 y Ubuntu 18.04 LTS) o cualquier host con Docker
Nota: Windows no es compatible oficialmente en este momento. Sin embargo, los miembros de la comunidad lograron configurar nodos utilizando el Subsistema de Windows para Linux. Haga clic aquí para obtener instrucciones sobre el uso de Windows, creado por la comunidad. Además, los usuarios de Windows pueden utilizar la documentación de Docker.
Hardware : enviar y recibir mina no requiere ningún hardware especial, pero ejecutar un productor de bloques en la red Mina actualmente requiere:
- al menos un procesador de 8 núcleos
- al menos 16 GB de RAM
Tenga en cuenta que si planea ejecutar un nodo trabajador snark al mismo tiempo que un productor de bloques, es posible que necesite más RAM. Actualmente no se requieren GPU, pero pueden ser necesarias para los operadores de nodos cuando se actualiza el protoctol.
Red : conexión de al menos 1 Mbps
Instancias de VM : O (1) Labs ha probado los nodos en ejecución en varios proveedores de nube y recomienda las siguientes instancias para las necesidades básicas del operador de nodos. Tenga en cuenta que los requisitos personalizados, así como las diferentes restricciones de costos, pueden requerir un tipo de instancia diferente.
- AWS – c5.2xlarge
- GCP: c2-estándar-8
- Azure: Standard_F8s_v2
- Océano digital – c-8-16gib
Consulte nuestra guía sobre cómo configurar su nodo Mina en Google Cloud.
Instalación
Las versiones binarias más recientes se pueden encontrar a continuación. A continuación, se proporcionan instrucciones para macOS y Linux:
Esta es una descarga grande, alrededor de 1 GB, por lo que la instalación puede llevar algún tiempo.
ADVERTENCIA
Si instaló mina
desde una versión anterior, deberá actualizarla para que la red no lo prohíba por usar un cliente anterior. Consulte las instrucciones a continuación para actualizar las compilaciones de macOS y Linux.
Ubuntu 18.04 / Debian 9
Agregue el repositorio de Mina Debian e instale:
echo "deb [trusted=yes] http://packages.o1test.net release main" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y curl unzip mina-mainnet=1.1.5-a42bdee
Verifique que el demonio esté instalado correctamente ejecutando mina version
. La salida debería leer Commit a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a on branch master
.
Ventanas
Windows aún no es compatible de forma nativa. Si está interesado en recibir una subvención para desarrollar Mina para Windows, envíe un correo electrónico a grant@o1labs.org o comuníquese con el servidor de Discord .
En su lugar, utilice las instrucciones de Docker a continuación.
Mac OS
Los desarrolladores utilizan macOS, pero no admitimos oficialmente ningún paquete preconstruido en este momento.
En su lugar, utilice las instrucciones de Docker a continuación o puede compilar desde la fuente.
Estibador
Docker es una herramienta multiplataforma que le permite ejecutar una máquina virtual que ejecutará cualquier software necesario. Siga las instrucciones de instalación oficiales para su plataforma en esta página . Una vez que la ventana acoplable esté instalada, continúe con las instrucciones de Mina Docker en Conectarse a la red
Construir desde la fuente
Si está ejecutando otra distribución de Linux o alguna versión de macOS, puede intentar compilar Mina a partir del código fuente . Tenga en cuenta que otros sistemas operativos no se han probado a fondo y pueden tener problemas. No dude en compartir cualquier registro y obtener ayuda para la resolución de problemas en el servidor de Discord .
Configure el reenvío de puertos y cualquier firewall
Si está ejecutando un firewall, debe permitir el tráfico en el puerto TCP 8302. Además, a menos -external-ip YOUR_IP
que se proporcione el indicador, el demonio usará HTTPS (443) y HTTP (80) para intentar determinar su propia dirección IP.
Es posible que deba configurar el reenvío de puertos de su enrutador para permitir el tráfico entrante a los siguientes puertos a través de su dirección IP externa .
TCP
Puerto8302
- Opcionalmente, para usar el servicio GraphQL, exponga el
TCP
puerto3085
Usando Mina:
Generando un par de claves
Para crear un par de claves para Mainnet o participar plenamente en una red de prueba Mina, el primer paso es generar un par de claves, que consta de una clave pública y una clave privada. Actualmente existen dos herramientas compatibles para generar pares de claves mina-generate-keypair y ledger-app-mina. También contamos con una herramienta para validar que su clave privada se haya creado correctamente.
Tenga en cuenta que es posible que desee generar más de un par de claves. Por ejemplo, si desea ejecutar un productor de bloques de manera más segura, querrá una configuración de producción de bloques de billetera caliente / billetera fría .
Métodos
mina-generate-keypair
Hemos creado una sencilla utilidad de línea de comandos llamada mina-generate-keypair
. Este es el método más simple y las instrucciones se pueden encontrar a continuación.
Cartera de hardware de libro mayor
Puede usar su billetera de hardware Ledger Nano S para almacenar de forma segura sus claves privadas Mina. Estamos en el proceso de una auditoría de seguridad independiente que actualmente no ha encontrado vulnerabilidades y el desarrollo está casi terminado. Consulte nuestra documentación de ledger-app-mina para comenzar con esta herramienta.
SDK de cliente
También hemos creado un SDK de cliente que puede generar pares de claves y firmar transacciones. Tenga en cuenta que este método no está recomendado y solo debe ser utilizado por profesionales de seguridad con experiencia. Utilice nuestra herramienta `mina-generate-keypair en su lugar para crear pares de claves. Consulte la documentación de nuestro SDK de cliente para obtener más información.
ADVERTENCIA
Nunca dé su clave privada y asegúrese de que se almacenen de manera segura. Si pierde su clave privada o si un actor malintencionado obtiene acceso a su clave privada, perderá el acceso a su cuenta y perderá los fondos de su cuenta. En su lugar, proporcione siempre sus claves públicas. Mina nunca te pedirá tus claves privadas.
Usando mina-generate-keypair
Para simplificar el proceso de creación de un par de claves, hemos creado una sencilla utilidad de línea de comandos llamada mina-generate-keypair
. La mina-generate-keypair
herramienta tiene una funcionalidad fácil de usar para crear su propio par de claves para comenzar a participar en la red Mina. Consulte a continuación para ver cómo instalar y utilizar en su sistema local.
Instalación
Admitimos varios sistemas operativos diferentes para la mina-generate-keypair
herramienta. Siga las instrucciones a continuación para instalar la herramienta en su sistema.
Mac OS
Si está utilizando macOS, instale Docker y siga las instrucciones basadas en Docker a continuación.
Ubuntu 18.04 / Debian 9
Después de agregar el repositorio de Mina , simplemente puede ejecutar el siguiente comando.
sudo apt-get install mina-generate-keypair=1.1.5-a42bdee
Verifique que la herramienta keygen esté instalada correctamente ejecutando mina-generate-keypair -version
. La salida debería leer Commit a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a on branch master
.
Windows / otras plataformas
Instale Docker y siga las instrucciones basadas en Docker en el paso 3b. debajo.
Uso
La creación de un par de claves es simple y se logra en unos pocos pasos cortos.
- Primero asegúrese de tener una carpeta en su sistema donde pueda almacenar los archivos clave. Recomendamos usar la
~/keys
carpeta.
mkdir ~/keys
- A continuación, asegúrese de que los permisos estén configurados correctamente en esta carpeta, esto evita que los procesos no deseados accedan a estos archivos.
chmod 700 ~/keys
- Genere una clave usando las instrucciones del Paso 3a en Debian / Ubuntu o el Paso 3b en Docker
ADVERTENCIA
Asegúrese de establecer una contraseña nueva y segura para los siguientes comandos. Mina nunca te pedirá esta contraseña y no debes compartirla con nadie.
3a. En Ubuntu / Debian: Genere sus claves usando el mina-generate-keypair
comando. Cuando se le solicite, escriba la contraseña que desea utilizar para proteger esta clave. Si está configurada, la herramienta utilizará la contraseña de la variable de entorno CODA_PRIVKEY_PASS en lugar de pedírselo. NO olvide esta contraseña.
mina-generate-keypair -privkey-path ~/keys/my-wallet
3b. En Docker en Windows / MacOS / Linux: Genere sus claves usando la minaprotocol/generate-keypair
imagen de Docker . Cuando se le solicite, escriba la contraseña que desea utilizar para proteger esta clave. NO olvide esta contraseña.
cd ~
docker run --interactive --tty --rm --volume $(pwd)/keys:/keys minaprotocol/generate-keypair:1.0.2-06f3c5c -privkey-path /keys/my-wallet
Esto creará dos archivos en su sistema, ~/keys/my-wallet
que contiene la clave privada encriptada y ~/keys/my-wallet.pub
que contiene la clave pública en texto sin formato. Guarde el archivo de clave privada y la contraseña que utilizó en un lugar seguro, como un administrador de contraseñas.
ADVERTENCIA
Nunca dé su clave privada y asegúrese de que se almacenen de manera segura. Si pierde su clave privada o si un actor malintencionado obtiene acceso a su clave privada, perderá el acceso a su cuenta y perderá los fondos de su cuenta. En su lugar, proporcione siempre sus claves públicas. Mina nunca te pedirá tus claves privadas.
- Finalmente, asegúrese de que los permisos estén configurados correctamente para el archivo de clave privada, esto evita que procesos no deseados accedan a él.
chmod 600 ~/keys/my-wallet
Valida tu clave privada
Ahora que ha creado su clave, querrá validar que funciona. Es suficiente verificar que puede firmar una transacción. Puede verificar esto usando la mina-validate-keypair
herramienta.
En Linux, ejecute el siguiente comando:
mina-validate-keypair -privkey-path <path-to-the-private-key-file>
Si está utilizando Docker, ejecute el siguiente comando:
docker run --interactive --tty --rm --entrypoint=mina-validate-keypair --volume $(pwd)/keys:/keys minaprotocol/generate-keypair:1.0.2-06f3c5c -privkey-path /keys/my-wallet
Próximos pasos
Ahora que hemos creado nuestro par de claves, finalmente podemos conectarnos a la red o compartir su clave pública.
Mina Protocol : Conectarse a la red
En esta sección, nos conectaremos a la Mainnet
red y enviaremos nuestra primera transacción. Primero, iniciemos el nodo para que podamos comenzar a emitir comandos.
Actualiza tu software
El primer paso para conectarse Mainnet
es instalar la última versión del demonio. Siga las instrucciones para su sistema operativo a continuación.
Ubuntu 18.04 / Debian 9
Primero elimine cualquier versión del demonio instalada previamente para evitar errores al actualizar a la última versión. Luego, puede instalar la última versión de la siguiente manera:
sudo apt-get remove -y mina-testnet-postake-medium-curves
echo "deb [trusted=yes] http://packages.o1test.net release main" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y curl unzip mina-mainnet=1.1.5-a42bdee
Verifique que el demonio esté instalado correctamente ejecutando mina version
. La salida debería leer Commit a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a on branch master
.
Iniciar un nodo
Dado que esta tecnología aún es relativamente nueva, existen algunas situaciones raras en las que su nodo puede tener algunos problemas. ¡No queremos que tus nodos se rompan y no te des cuenta! Así que hemos creado algunos flujos de reinicio automático con soporte oficial para usted. Estaremos iterando sobre esto en futuras versiones.
Sin embargo, primero queremos asegurarnos de que todo funcione ejecutándolo manualmente antes de comenzar con los flujos de reinicio automático.
Nota: Si está utilizando el proveedor de alojamiento de Hetzner, actualmente estamos experimentando un problema en el que Hetzner cree que nuestro software está siendo malicioso. Consulte la sección Redes de la página de solución de problemas para aprender cómo mitigar esto antes de iniciar un nodo.
Ejecute el siguiente comando para iniciar una instancia de nodo Mina y conectarse a la red en vivo:
mina daemon --generate-genesis-proof true --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
Si tiene una clave con participación y le gustaría producir bloques, proporcione también --block-producer-key ~/keys/my-wallet
, reemplazándola ~/keys/my-wallet
con la ruta a su clave privada si no es la predeterminada.
El -peer-list
argumento especificado anteriormente se refiere a la dirección del par inicial: este es el par inicial al que nos conectaremos en la red. Dado que Mina es un protocolo peer-to-peer , no hay un único servidor centralizado en el que dependamos.
Consulte aquí los problemas comunes al ejecutar por primera vez un nodo.
¡Aún no has terminado! Ahora que ha confirmado que todo está bien ejecutando el proceso independiente, es importante que iniciemos Mina de manera que se reinicie automáticamente cuando muera.
Primero mata el mina daemon
proceso existente con Ctrl-C
y luego sigue leyendo:
Ubuntu 18.04 / Debian 9
Asegúrese de que su clave privada con la que se registró esté ubicada en ~/keys/my-wallet
.
Agregue un archivo que ~/.mina-env
contenga lo siguiente:
CODA_PRIVKEY_PASS="private key password"
EXTRA_FLAGS=" --file-log-level Debug"
Puede agregar banderas adicionales más adelante EXTRA_FLAGS
como mejor le parezca.
Mina buscará sus pares en un archivo llamado ~/peers.txt
, así que ejecute el siguiente comando para crearlo:
curl https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt > ~/peers.txt
Luego, ejecute los siguientes comandos para iniciar una instancia de nodo Mina y conectarse a la red en vivo:
systemctl --user daemon-reload
systemctl --user start mina
systemctl --user enable mina
sudo loginctl enable-linger
Estos comandos permitirán que el nodo continúe ejecutándose después de cerrar la sesión y se reiniciará automáticamente cuando la máquina se reinicie.
De forma predeterminada, el nodo se conecta a la red usando el puerto externo predeterminado de 8302. Esto se puede cambiar usando la -external-port
bandera, simplemente agréguelo a EXTRA_FLAGS.
También puede ver el proceso de mina en sí mismo que se está ejecutando en segundo plano y se reinicia automáticamente.
Este comando le permitirá saber si mina
tuvo algún problema para comenzar.
systemctl --user status mina
Puede detener Mina con gracia y dejar de reiniciar automáticamente el servicio:
systemctl --user stop mina
Reinícielo manualmente:
systemctl --user restart mina
Y mira los registros:
journalctl --user -u mina -n 1000 -f
En algunos casos, para ver los registros, debe ejecutar el siguiente comando:
journalctl --user-unit mina -n 1000 -f
Ese comando le mostrará las últimas 1000 líneas y seguirá desde allí.
Estibador
Cuando ejecute su demonio con Docker, primero asegúrese de que su clave privada tenga los permisos correctos.
cd ~
chmod 700 ~/keys
chmod 600 ~/keys/my-wallet
mkdir ~/.mina-config
Ahora simplemente ejecute la imagen con sus claves y ~ / .mina-config montado:
docker run --name mina -d \
-p 8302:8302 \
--restart=always \
--mount "type=bind,source=`pwd`/keys,dst=/keys,readonly" \
--mount "type=bind,source=`pwd`/.mina-config,dst=/root/.mina-config" \
-e CODA_PRIVKEY_PASS="YOUR PASSWORD HERE" \
minaprotocol/mina-daemon-baked:1.1.5-a42bdee \
daemon \
--block-producer-key /keys/my-wallet \
--insecure-rest-server \
--file-log-level Debug \
--log-level Info \
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
Ejecutar docker logs -f mina
para seguir los registros, y si falla, guarde la salida del registro en un archivo con docker logs mina > mina-log.txt
y publique la salida en el canal # mentor-nodes o adjunte el ~ / .mina-config / mina.log completo a un problema de github y vincule el problema en discordia.
Ejecute docker exec -it mina mina client status
para monitorear la conectividad a la red, debe encontrar rápidamente al menos 10 pares y observar la altura del bloque / la altura máxima observada del bloque.
NOTA
Si se encuentra [Warn] Shutdown before Coda instance was created, not saving a visualization
al intentar ejecutar su contenedor Docker, aumente los recursos que el contenedor Docker puede usar .
Comprobando la conectividad
Ahora que hemos iniciado un nodo y estamos ejecutando el demonio Mina, abra otro shell y ejecute el siguiente comando:
mina client status
NOTA
Puede tomar hasta un minuto antes de que se mina client status
conecte al demonio cuando se inicia por primera vez. Entonces, si ve Error: daemon not running. See mina daemon
, espere un poco y vuelva a intentarlo.
Si está utilizando GetSandbox Nodeing , debido a una peculiaridad en la forma en que nos comunicamos para el comando de estado del cliente mina, deberá ejecutar mina client status
dentro del contenedor:
docker exec -it mina bash
Lo más probable es que veamos una respuesta que incluya los campos a continuación:
...
Peers: Total: 4 (...)
...
Sync Status: Bootstrap
Si ve Sync Status: Bootstrap
, esto significa que el nodo se está iniciando y debe sincronizarse con el resto de la red. Es posible que deba ser paciente en este caso, ya que este paso puede llevar algún tiempo para que el nodo obtenga todos los datos que necesita.
Después de un tiempo, su nodo debería conectarse a más pares y luego debería moverse Sync Status: Catchup
, lo que significa que estamos recopilando los bloques más recientes y el estado tratando de alcanzar el bloque más alto.
Cuando alcance el estado de sincronización Synced
y el nodo esté conectado a 1 o más pares, nos habremos conectado con éxito a la red. También veremos un Demonio de Registro correspondiente, una vez que hemos sincronizado: [Info] Mina daemon is now synced
.
Si el Bootstrap
estado persiste durante más de una hora, es posible que haya un problema con la configuración de su puerto.
Intensificando tu juego
Ahora que tenemos un nodo completamente sincronizado, podemos conocer algunas de las características más avanzadas del demonio, como Enviar un pago y Apostar y delegar . Y si desea ganar más tokens, consulte el Programa de delegación de la fundación .
* Los puntos Testnet están diseñados únicamente para realizar un seguimiento de las contribuciones a Testnet y los puntos Testnet no tienen dinero en efectivo ni ningún otro valor monetario. Los puntos Testnet no son transferibles y no se pueden canjear ni canjear por ninguna criptomoneda o activos digitales. En cualquier momento podemos modificar o eliminar Testnet Points.
Enviar pagos con Mina Protocol
En esta sección, daremos una breve descripción general sobre cómo enviar una transacción con el cliente Mina y cómo comenzar a interactuar con la cadena de bloques.
Usar una transacción firmada fuera de línea
Si desea enviar una transacción sin ejecutar un nodo usted mismo, pero delegando en otra persona que ejecute el ánodo, siga aquí. Si desea enviar la transacción directamente con un nodo en ejecución, pase a usar un nodo conectado .
Usando un dispositivo Ledger
Para generar una transacción firmada fuera de línea si su clave privada está en un dispositivo Ledger, consulte Modo Ledger fuera de línea .
Usando un par de claves generado con la herramienta generate-keypair
Pronto habrá una herramienta mejor: https://github.com/MinaProtocol/mina/issues/8928 . Por ahora, utilice la solución alternativa proporcionada en un comentario sobre ese problema.
Usando un par de claves generado con el cliente-sdk fuera de línea
Para generar una transacción firmada usando el client-sdk, registre el pago firmado creado como se muestra en la página léame del client-sdk .
Envíe la transacción
Puede utilizar un servicio alojado para difundir su transacción firmada. El envío de su transacción firmada no filtra su clave privada.
Las transacciones firmadas con el cliente-sdk pueden utilizar: https://minaexplorer.com/broadcast-tx
Las transacciones firmadas con el libro mayor pueden usar: https://minaexplorer.com/broadcast-ledger
Usando un nodo conectado
Suponemos en el resto de la sección que tiene el cliente Mina instalado en su sistema, si no tiene instalado Mina, consulte la Introducción .
Importa tu cuenta
Una vez que nuestro nodo esté sincronizado, necesitaremos importar nuestro par de claves pública / privada para que podamos firmar transacciones y generar una dirección para recibir pagos. Por razones de seguridad, queremos poner las claves en un directorio que sea más difícil de acceder para los atacantes.
Ejecute el siguiente comando para importar su archivo de par de claves generado previamente :
mina accounts import -privkey-path ~/keys/my-wallet
Se le pedirá la contraseña que ingresó cuando se creó la cuenta.
ADVERTENCIA
La clave pública se puede compartir libremente con cualquier persona, pero tenga mucho cuidado con su archivo de clave privada. Nunca comparta esta clave privada con nadie, ya que es el equivalente a una contraseña para sus fondos.
La respuesta de este comando se verá así:
😄 Imported account!
Public key: B62qjaA4N9843FKM5FZk1HmeuDiojG42cbCDyZeUDQVjycULte9PFkC
Además, puede utilizar el mina accounts create
comando para generar nuevas cuentas para enviar y recibir transacciones.
Dado que la clave pública es bastante larga y difícil de recordar, guardémosla como una variable de entorno. Utilice el siguiente comando, pero reemplácelo <YOUR-PUBLIC-KEY>
con el resultado de clave pública del comando anterior:
export MINA_PUBLIC_KEY=<YOUR-PUBLIC-KEY>
Ahora podemos acceder a esto en todas partes como $MINA_PUBLIC_KEY
: verifique si se guardó correctamente al intentarlo echo $MINA_PUBLIC_KEY
.
Tenga en cuenta que estas variables de entorno solo se guardarán para la sesión de shell actual, por lo que si desea guardarlas para uso futuro, puede agregarlas a ~/.profile
o ~/.bash_profile
.
NOTA
Si está ejecutando el nodo en una máquina virtual en la nube, asegúrese de exportar y guardar el archivo de clave. Puede exportar la clave con:
mina accounts export -public-key <PUBLIC-KEY> -privkey-path <EXPORT-PATH>
Luego guárdelo en su máquina local, tal vez usando scp :
scp <EXPORT-PATH> <LOCAL-DESTINATION>
Más tarde, al iniciar una nueva máquina virtual, puede cargar la clave y luego importarla:
mina accounts import -privkey-path <PRIVATE-KEY-FILE>
Si alguna vez olvida los pares de claves que ya ha creado, puede verlos todos con:
mina accounts list
Verificar el saldo de la cuenta
Podemos consultar el saldo de todas nuestras cuentas usando este comando:
mina accounts list
Es posible que vea Balance: 0 mina
para su cuenta. Dependiendo del tráfico en la red, pueden pasar algunos bloques antes de que se realice la transacción.
NOTA
Sugerencia: puede ejecutar mina client status
para ver la actualización actual de la altura del bloque.
Realizar un pago
Finalmente, llegamos a lo bueno: ¡enviamos nuestra primera transacción! Antes de enviar un pago, deberá desbloquear su cuenta:
mina accounts unlock -public-key $MINA_PUBLIC_KEY
Para fines de prueba, especificaremos su clave pública como receptor y remitente. Esto solo significa que nos estamos enviando una transacción a nosotros mismos, puede ver su clave pública emitiendo el siguiente comando:
echo $MINA_PUBLIC_KEY
ADVERTENCIA
Si la cuenta receptora no ha recibido ninguna transacción, habrá una tarifa de creación de cuenta adicional 1 MINA
que se deducirá del monto de la transacción.
Enviemos algunos de nuestros Mina a nosotros mismos para ver cómo se ve un pago:
mina client send-payment \
-amount 1.5 \
-receiver $MINA_PUBLIC_KEY \
-fee 0.1 \
-sender $MINA_PUBLIC_KEY
Si se está preguntando qué pasamos a los comandos anteriores:
- Para
amount
, estamos enviando un valor de prueba de1.5
mina que es suficiente para cubrir la tarifa de creación de cuenta. - El
receiver
es la clave pública de la cuenta de la recepción de la transacción, por ejemplo.B62qjaA4N9843FKM5FZk...
- Para
fee
, usemos 0.1 mina - El
sender
es la clave pública de la cuenta el envío de la transacción, por ejemplo.B62qjaA4N9843FKM5FZk...
Si este comando está formateado correctamente, deberíamos obtener una respuesta similar a la siguiente:
Dispatched payment with ID 3XCgvAHLAqz9VVbU7an7f2L5ffJtZoFega7jZpVJrPCYA4j5HEmUAx51BCeMc232eBWVz6q9t62Kp2cNvQZoNCSGqJ1rrJpXFqMN6NQe7x987sAC2Sd6wu9Vbs9xSr8g1AkjJoB65v3suPsaCcvvCjyUvUs8c3eVRucH4doa2onGj41pjxT53y5ZkmGaPmPnpWzdJt4YJBnDRW1GcJeyqj61GKWcvvrV6KcGD25VEeHQBfhGppZc7ewVwi3vcUQR7QFFs15bMwA4oZDEfzSbnr1ECoiZGy61m5LX7afwFaviyUwjphtrzoPbQ2QAZ2w2ypnVUrcJ9oUT4y4dvDJ5vkUDazRdGxjAA6Cz86bJqqgfMHdMFqpkmLxCdLbj2Nq3Ar2VpPVvfn2kdKoxwmAGqWCiVhqYbTvHkyZSc4n3siGTEpTGAK9usPnBnqLi53Z2bPPaJ3PuZTMgmdZYrRv4UPxztRtmyBz2HdQSnH8vbxurLkyxK6yEwS23JSZWToccM83sx2hAAABNynBVuxagL8aNZF99k3LKX6E581uSVSw5DAJ2S198DvZHXD53QvjcDGpvB9jYUpofkk1aPvtW7QZkcofBYruePM7kCHjKvbDXSw2CV5brHVv5ZBV9DuUcuFHfcYAA2TVuDtFeNLBjxDumiBASgaLvcdzGiFvSqqnzmS9MBXxYybQcmmz1WuKZHjgqph99XVEapwTsYfZGi1T8ApahcWc5EX9
Receipt chain hash is now A3gpLyBJGvcpMXny2DsHjvE5GaNFn2bbpLLQqTCHuY3Nd7sqy8vDbM6qHTwHt8tcfqqBkd36LuV4CC6hVH6YsmRqRp4Lzx77WnN9gnRX7ceeXdCQUVB7B2uMo3oCYxfdpU5Q2f2KzJQ46
Es posible que no vea el Receipt chain hash
en la primera transacción de la cuenta, pero en las siguientes transacciones, esto le mostrará el encabezado de la lista hash de la cadena de recibos.
Staking y Snarking
Una vez que se sienta cómodo con los conceptos básicos de crear una dirección y enviar y recibir mina, podemos pasar a las partes verdaderamente únicas de la red Mina, como participar en el consenso y ayudar a comprimir la cadena de bloques .
Advanced
Envío de muchas transacciones
A veces, es posible que desee enviar muchas transacciones: por ejemplo, para pagar recompensas a quienes le delegan si está ejecutando un grupo de apuestas.
Toda la información aquí es relevante a partir de la versión 1.2.0 (actualmente en versión beta):
Limitación de velocidad
Actualmente, los nodos de la red limitarán la tasa de recepción de mensajes de un nodo determinado. A partir de la versión 1.2.0, su nodo también seguirá este límite de tasa al enviar transacciones. Específicamente, el límite se establece actualmente en 10 transacciones cada 15 segundos calculados en una ventana de 5 minutos. Si intenta enviar transacciones más rápido que esta tasa, su nodo las pondrá en cola y las eliminará a medida que las transacciones más antiguas caduquen desde la ventana en la que se calcula el límite de tasa. No es necesario que acelere el envío de estas transacciones usted mismo.
Tenga en cuenta que las versiones anteriores del demonio mina no realizan esta limitación de velocidad; si está ejecutando una versión anterior, debe limitar manualmente el número de transacciones. Debido a los gastos generales de las transacciones de retransmisión, no recomendamos enviar más de 50 transacciones cada 5 minutos si necesita limitar la tasa manualmente.
Mi nodo se bloqueó o se desconectó antes de que pudiera terminar de enviar transacciones
El demonio Mina no no actualmente persiste la piscina transacción. Esto significa que las transacciones que su nodo no conocerán de ninguna transacción que haya enviado hasta ahora si su nodo falla en medio de este proceso. A partir de la versión 1.2.0, puede reenviar todas las transacciones (exactamente de la misma manera que antes) y serán retransmitidas en la red.
Si cree que se desconectó temporalmente de la red, pero su nodo permaneció en línea (es decir, la red de chismes puede haber perdido una o más de sus transacciones), a partir de la versión 1.2.0, puede reenviar cualquiera de las transacciones localmente y se transmitirán nuevamente a la red incluso si su nodo cree que ya se han compartido.
Cancelar una transacción y establecer una nueva tarifa
Para cancelar una transacción, deberá tener todas las transacciones que aún no se hayan comprometido con la cadena en su mempool de transacciones local. Esto significa que si su nodo falla (ver arriba), deberá reenviar esas transacciones anteriores. Finalmente, para cancelar una transacción, todo lo que necesita hacer es enviar una transacción con el mismo valor de la que desea cancelar con una tarifa mayor. No hay un incremento mínimo, solo necesita ser un poco más grande (y lo suficientemente grande como para que un productor de bloques elija su transacción).
Mina Protocol: Staking & Snarking
Dirijamos nuestra atención a las otras formas en que podemos interactuar con la red Mina, es decir, participar en el consenso y ayudar a comprimir los datos generando zk-SNARK. Al operar un nodo que ayuda a proteger la red, puede recibir mina por sus esfuerzos.
Participar en el consenso
La red Mina está asegurada por consenso Proof-of-Stake . Con este modelo de consenso, no es necesario tener equipos complejos como en la minería de Bitcoin. Simplemente teniendo mina en nuestra billetera, podemos elegir apostarla nosotros mismos o delegarla en otro nodo. Veamos primero cómo apostar mina nosotros mismos:
ADVERTENCIA
Para permanecer correctamente sincronizado con la red y participar en el consenso, es importante que su servidor ejecute algún tipo de protocolo de sincronización de reloj . Recomendamos usar NTP , que es relativamente fácil de configurar y ya viene instalado como servicio predeterminado en muchas distribuciones populares de Linux.
Mi huelga
Podemos probar apostar con nuestra mina emitiendo el siguiente comando:
mina client set-staking -public-key $MINA_PUBLIC_KEY
Alternativamente, puede reiniciar el demonio con la -block-producer-pubkey
bandera:
mina daemon \
-peer-list ~/peers.txt \
-block-producer-pubkey $MINA_PUBLIC_KEY
Siempre podemos verificar con qué cuentas estamos apostando actualmente, usando el mina client status
comando:
mina client status
Mina daemon status
-----------------------------------
Global number of accounts: 372
Block height: 20
Max observed block length: 20
Local uptime: 1m48s
Ledger Merkle root: ...
Protocol state hash: ...
Staged Hash: ...
Git SHA-1: ...
Configuration directory: ...
Peers: 5 (...)
User_commands sent: 0
SNARK worker: None
SNARK work fee: 1
Sync status: Synced
Block producers running: 1 (...)
Best tip consensus time: epoch=0, slot=133
Next proposal: None this epoch… checking at in 5.284h
Consensus time now: epoch=0, slot=134
Consensus mechanism: proof_of_stake
Consensus configuration: ...
Addresses and ports: ...
Libp2p PeerID: ...
El Block producers running
campo en la respuesta anterior devuelve el número de cuentas que están participando actualmente, con la clave asociada.
ADVERTENCIA
Tenga en cuenta que si está apostando de forma independiente con fondos en una cuenta, deberá permanecer conectado a la red en todo momento para producir bloques con éxito. Si necesita desconectarse con frecuencia, puede ser mejor delegar su participación.
Si desea enviar su base de monedas a una cuenta que no sea la que está apostando, puede usar la -coinbase-receiver
bandera cuando inicie su demonio. ¡Incluso puede apuntar la base de monedas a una billetera fría!
Delegando el mío
Delegar mina es una opción alternativa a apostarla directamente, con la ventaja de no tener que mantener un nodo que siempre está conectado a la red.
Primero asegúrese de haber desbloqueado su cuenta:
mina account unlock -public-key $MINA_PUBLIC_KEY
Y luego ejecute este comando para delegar su participación:
mina client delegate-stake \
-receiver <DELEGATE-PUBLIC-KEY> \
-sender $MINA_PUBLIC_KEY \
-fee 0.1
Los campos de este comando:
- La
receiver
bandera es la clave pública del receptor de la delegación de estaca. sender
es la clave pública de la cuenta desde la que desea delegarfee
es el costo de enviar su transacción. Se paga a los productores de bloques de la red.- Tenga en cuenta que no hay un parámetro de cantidad . Su saldo total de Mina se delegará automáticamente.
Notará que este comando se parece sospechosamente a una transacción de pago . ¡Eso es porque una delegación de participación también es una transacción! Es por eso que tenemos que pagar una pequeña tarifa de transacción para cambiar esta configuración.
Delegar su participación puede ser útil si está interesado en:
- Ejecutar su propio nodo de participación que usa fondos de una «billetera fría»
- Delegar en un «grupo de apuestas» que proporcionará pagos simbólicos periódicamente
- O si no tiene suficientes tokens para que valga la pena administrar un productor de bloques a tiempo completo
NOTA
Hay un período de latencia de 2 a 4 semanas antes de que su nueva delegación de participación entre en vigencia.
Comprimir datos en la red Mina
El protocolo Mina es único en el sentido de que no requiere nodos para mantener el historial completo de la cadena de bloques como otros protocolos de criptomonedas. Mediante el uso recursivo de pruebas criptográficas, el protocolo Mina comprime eficazmente la cadena de bloques a un tamaño constante. A esto lo llamamos compresión porque reduce los terabytes de datos a unos pocos kilobytes.
Sin embargo, esto no es codificación o compresión de datos en el sentido tradicional, sino que los nodos «comprimen» los datos en la red generando pruebas criptográficas. Los operadores de nodo juegan un papel crucial en este proceso al designarse a sí mismos como «trabajadores snark» que generan zk-SNARK para las transacciones que se han agregado a los bloques.
Puede iniciar un snark-worker usando estos comandos:
mina client set-snark-work-fee <FEE>
mina client set-snark-worker -address $MINA_PUBLIC_KEY
Alternativamente, puede reiniciar el demonio con estos indicadores:
mina daemon \
-peer-list ~/peers.txt \
-run-snark-worker $MINA_PUBLIC_KEY \
-snark-worker-fee <fee>
Como trabajador de snark, puedes compartir parte de la recompensa del bloque por cada bloque al que llegan tus transacciones comprimidas. El productor de bloques es responsable de recopilar transacciones comprimidas antes de incluirlas en un bloque, y el protocolo lo incentivará para recompensar a los trabajadores de snark.
Los trabajadores de Snark pueden ser bastante intensivos en computación, por lo que si necesita limitar el uso de su CPU, puede especificar la cantidad de subprocesos que usan los trabajadores de snark con la -snark-worker-parallelism
bandera. Esto puede ser especialmente útil si está intentando ejecutar un productor de bloques y un trabajador snark en la misma máquina y tiene problemas para producir bloques a tiempo.
Eso cubre los roles y responsabilidades como operador de nodo Mina. Dado que Mina es una red peer-to-peer sin permisos, todo es administrado y ejecutado de manera descentralizada por nodos de todo el mundo. Del mismo modo, el proyecto Mina también se distribuye y no tiene permiso para unirse. Todo el código es de código abierto y hay mucho trabajo por hacer, tanto técnico como no técnico. Para obtener más información sobre cómo puede participar con Mina, consulte la sección Contribuir a Mina .
Usando daemon.json para configurar su mina daemon
Al crear un archivo en ~/.mina-config/daemon.json
, puede configurar su demonio mina sin necesidad de proporcionar opciones en la línea de comandos. ¡Esto puede ser útil para ejecutar mina como un servicio, así como para evitar la escritura repetitiva!
La mayoría de las opciones a las que se puede pasar mina daemon
en la línea de comandos también se pueden proporcionar como opciones en el archivo de configuración. Consulte mina daemon -help
para obtener más documentación de las opciones. A continuación se muestra un ejemplo del uso de todos los parámetros de configuración utilizables (en su archivo, solo necesita especificar los que desea cambiar):
{
"daemon": {
"client-port": 1000,
"external-port": 1001,
"rest-port": 1002,
"block-producer-key": "/path/to/privkey-file",
"block-producer-password": "mypassword",
"block-producer-pubkey": "<MY PUBLICKEY>",
"coinbase-receiver": "<MY PUBLICKEY>",
"log-block-creation": false,
"log-received-blocks": false,
"log-snark-work-gossip": false,
"log-txn-pool-gossip": false,
"peers": ["seed-one.o1test.net", "seed-two.o1test.net"],
"run-snark-worker": "<MY PUBLICKEY>",
"snark-worker-fee": 10,
"snark-worker-parallelism": 1,
"work-reassignment-wait": 420000,
"work-selection": "seq"
}
}
Preguntas más frecuentes de Mina Protocol (MINA) Token.
Testnet
¿NECESITO ALGÚN HARDWARE ESPECÍFICO?
Actualmente, un procesador de 8 núcleos y 16 GB de RAM son los requisitos mínimos.
¿QUÉ PASA CON EL SOFTWARE?
Puede descargar todo el software necesario para ejecutar un nodo Mina aquí . En este momento, tenemos compilaciones que funcionan en macOS, así como en Debian 9 y Ubuntu 18.04. También puede compilar desde la fuente o ejecutar a través de Docker para otros sistemas no compatibles.
¿QUÉ PUEDO HACER EN LA RED MINA?
Cualquier nodo puede enviar y recibir transacciones en la red Mina. Además, cualquier nodo puede elegir ser un «operador de nodo». Los operadores de nodo juegan dos roles específicos:
-
Productor de bloques: esto es análogo a ser un «minero» de Bitcoin o un «validador» en otras redes de prueba de participación. Al apostar Mina, puedes ser seleccionado para producir un bloque y ganar la recompensa del bloque.
-
Snark Worker: este trabajo es lo que ayuda a comprimir los datos en la red de Mina. Los nodos de trabajo de snark generan pruebas de transacciones, y el productor de bloques compra estas pruebas en la red (lo llamamos un «lugar snarket» :)) – por lo tanto, el trabajador de snark recibe una recompensa de bloque por sus esfuerzos.
¿CUÁL ES EL OBJETIVO DE UNA RED DE PRUEBA?
El objetivo de la red de pruebas de Mina es mejorar la estabilidad de Mina, mejorar el software mediante la corrección de errores y abordar la experiencia del usuario, y probar el diseño de incentivos económicos en Mina. Al participar en la red de prueba, puede ser el primer participante del protocolo Mina y ayudar a desarrollarlo desde cero.
¿DÓNDE PUEDO PROBAR DEVNET?
Dirígete a la página de Docker Devnet para obtener más información y comenzar.
MI DEMONIO FALLÓ, ¿DÓNDE DEBERÍA COMPARTIR EL REGISTRO DE ERRORES?
Primero, consulte los problemas de Github para ver si se trata de un problema conocido. Si el error que experimentó es un problema nuevo, presente un problema de Github con las etiquetas adecuadas (demonio, error). Los desarrolladores de Mina evaluarán el problema y lo solucionarán en un sprint futuro.¡Gracias por tu ayuda!
¿CÓMO PUEDO INFORMAR OTROS PROBLEMAS O PONERME EN CONTACTO CON EL EQUIPO DE DESARROLLO?
- El canal de discusión en vivo de la comunidad Mina es el servidor Discord.
- También puede crear problemas de Github: https://github.com/minaprotocol/mina/issues
- Si necesita ponerse en contacto, puede enviar un ticket a través del chat de soporte de Mina .
¿EXISTE UN EXPLORADOR DE BLOQUES?
Sí, mira estos exploradores de bloques:
Preguntas generales
¿QUÉ ALGORITMO DE CONSENSO USA MINA?
El mecanismo de consenso de Mina es una implementación de Ouroboros Proof-of-Stake. Debido a la cadena de bloques comprimida única de Mina, ciertos aspectos del algoritmo han divergido de los documentos de Ouroboros, y la versión que usa Mina se llama Ouroboros Samisika. Estén atentos para obtener más detalles sobre Ouroboros Samisika y algunos informes técnicos sobre sus detalles e implementación.
¿CÓMO LOGRA MINA LA ESCALABILIDAD?
Mina logra escalabilidad mediante el uso de zk-SNARKs recursivos. Al generar una prueba que da fe de la validez de los estados históricos de la cadena de bloques, Mina puede mantener fijo el tamaño de la cadena de bloques. Esto permite un mayor rendimiento debido a que los límites de tamaño de bloque no son tan exigentes en la red, lo que aumenta la escalabilidad de la red.
¿POR QUÉ DESARROLLÓ UN NUEVO PROTOCOLO, EN LUGAR DE AUMENTAR LAS CRIPTOMONEDAS EXISTENTES?
La razón para desarrollar un nuevo protocolo en lugar de ofrecer servicios a otras cadenas de bloques es que agregar SNARK después del hecho a un proyecto de Capa 1 no es trivial. Incluso las operaciones básicas deben optimizarse para el rendimiento dentro de un SNARK, y las implementaciones existentes no pueden actualizarse como tales. Si nos fijamos en las funciones de hash, por ejemplo, SHA256 (utilizado por Bitcoin) o Keccak (utilizado por Ethereum) son extremadamente caras dentro de un circuito SNARK, pero Poseidon (lo que utiliza Mina) está optimizado para el rendimiento. Esta y muchas otras consideraciones técnicas hacen que no sea factible agregar fácilmente SNARK recursivos a las capas 1 existentes, sin revisar por completo el protocolo base.
¿CÓMO MINA VERIFICA EL ESTADO ACTUAL DE LA CADENA SIN TENER DATOS HISTÓRICOS? ¿CÓMO AUDITA UNA TRANSACCIÓN SI SOLO CONSERVA UNA PRUEBA DE LA CADENA DE BLOQUES?
El usuario medio no necesita conocer todo el historial de transacciones. Por ejemplo, cuando realiza una compra con un dólar, tampoco necesita saber de dónde vino ese dólar y cómo se gastó antes de llegar a su billetera. Otras cadenas de bloques dependen del historial de transacciones para verificar que el estado actual sea válido. Mina está usando zk-SNARKs para demostrar eso (vea este video donde el cofundador Izaak Meckler explica el uso recursivo de Mina de zk-SNARKs). Esto le permite a Mina convertirse en la cadena de bloques más liviana del mundo y ser siempre accesible para todos.
Para los casos en los que un usuario desea probar la inclusión de transacciones pasadas, Mina tiene una función llamada cadena de recibos. Cada cuenta tiene su propia cadena de recibos, representada en el estado actual por un hash. Cuando un usuario envía una transacción desde una cuenta, esa transacción modifica la cadena de recibos de la cuenta, para que sea el hash de la cadena de recibos anterior y la nueva transacción (una lista merkle). Esto permite a los usuarios probar que se envió una transacción en particular desde su cuenta.
Para los programas, Mina usa un paradigma de programación diferente al de otras cadenas: en lugar de poder hacer referencia al historial pasado, solo puede hacer referencia al estado actual. Esto es similar a un sistema de archivos que permite escribir, eliminar y sobrescribir datos, en lugar del sistema de archivos de «solo agregar» que se ve en la cadena de bloques habitual. Esto es intencional, por lo que Mina siempre será liviana y sostenible: una vez que la prueba esté disponible para reemplazar la historia, almacenar la historia es más para fines de archivo o referencia, en lugar de seguridad o uso necesario.
El paradigma de programación en Mina se diseñará para reflejar esto; en este momento, Mina tiene datos mínimos por cuenta. Los programas que almacenan más datos tendrán que pagar una cierta cantidad por esos datos, probablemente cuando se agreguen con algo como el alquiler estatal.
Los clientes que buscan tener el historial de archivo completo pueden operar como nodos de archivo para almacenar también el historial completo. Sin embargo, debido a que, a diferencia de otras cadenas de bloques, el historial completo no es necesario para las acciones que se pueden realizar en la cadena, estos son más para fines de análisis de datos que para cualquier otra cosa.
¿NECESITARÁ UNA CONFIGURACIÓN CONFIABLE?
¡No! Mina usa un Pickles SNARK , que no requiere una configuración confiable.
¿MINA ADMITE CONTRATOS INTELIGENTES? SI ES ASÍ, ¿QUÉ LENGUAJES DE CONTRATACIÓN INTELIGENTE ADMITE?
Consulte la documentación de Snapps , las aplicaciones Snarkified de Mina.
¿MINA ADMITE TRANSACCIONES PROTEGIDAS, COMO EN ZCASH?
No, Mina no implementa de forma nativa funciones de privacidad en este momento. Sin embargo, la privacidad es una consideración clave para las criptomonedas y también está en la hoja de ruta de desarrollo.
¿PUEDO EJECUTAR EL DEMONIO MINA COMO UN SERVICIO?
Consulte aquí para obtener información sobre el uso de launchd o systemd con mina.
Productores de bloques
¿CÓMO PUEDO VERIFICAR QUE DE HECHO ESTOY PRODUCIENDO BLOQUES?
(A través de la CLI): Ejecutar mina client status
Como salida, debería ver un bloque de texto, habrá una línea similar a esta si su Block Producer se está ejecutando: Block producers running: 1 (B62qrPN5Y5yq8kGE3FbVK...)
Si su productor de bloques ganó un espacio, verá algo como esto: Next block will be produced in: in 17.52m
(A través de los registros): el siguiente texto aparece cada vez que el demonio produce un bloque:
Producing new block with parent $breadcrumb
PRODUJE UN BLOQUE, ¿POR QUÉ NO FUE SELECCIONADO PARA CANONICAL CHAIN ?
Debido a una propiedad del protocolo de consenso de Ouroboros Samisika, es muy posible que se produzca más de un bloque en una ranura en particular. La red resuelve las bifurcaciones de corta duración y se consolidará en un bloque por ranura mediante selección aleatoria.
A continuación se muestra una visualización de Mina Blockchain:
SNARK y trabajadores de Snark
SI EJECUTO UN SNARK WORKER, ¿CÓMO ME PAGAN POR MIS SNARK QUE GENERO?
Los productores de bloques (los validadores que agregan nuevos bloques a la cadena de bloques) deben comprar SNARK de la red (o de lo que llamamos Snarketplace) y pagarán parte de su recompensa de bloque como tarifas a los trabajadores snark que generaron SNARK. Esto crea un mecanismo de incentivo secundario en la red para recompensar a los nodos que ayudan a comprimir las transacciones.
¿LA GENERACIÓN DE SNARK ES SIMILAR A LA MINERÍA DE PRUEBA DE TRABAJO (POW)?
No, son diferentes de varias formas:
- El trabajo de SNARK es determinista, mientras que la minería de PoW requiere el cálculo aleatorio de hashes para intentar resolver un rompecabezas. No hay un elemento de suerte en el trabajo de SNARK: si un trabajador de snark desea generar un SNARK de una transacción, solo necesita generar la prueba una vez. Esto significa que el trabajo de SNARK es mucho menos costoso y un desperdicio ambiental, ya que todo el cálculo se gasta en un objetivo productivo.
- No hay un aumento de dificultad para el trabajo de SNARK, como ocurre con la minería PoW. De hecho, a medida que mejoran las construcciones de SNARK y los tiempos de generación de pruebas, la dificultad puede disminuir.
- El trabajo de SNARK no está directamente involucrado en el consenso. Los trabajadores de Snark no juegan ningún papel en la determinación del siguiente estado de la cadena de bloques. Su función es simplemente generar SNARK de transacciones observadas en la red.
- Como trabajador de snark, no hay ningún requisito de tiempo de actividad. Los mineros de PoW necesitan operar sus plataformas sin parar para asegurarse de que no se pierdan un bloque potencial. Los trabajadores de Snark pueden conectarse y desconectarse cuando quieran; es más como Uber, donde siempre habrá trabajo por hacer y nadie necesita decir con anticipación cuándo quieren trabajar.
¿POR QUÉ NO SE HAN INCLUIDO MIS SNARK? (AKA ¿CÓMO DEBO FIJAR EL PRECIO DE MIS SNARK?)
Aunque su trabajador SNARK podría estar produciendo SNARK a un ritmo vertiginoso, si alguien más produce una prueba más barata para un trabajo en particular que ya ha completado, su SNARK sería preferible debido a su tarifa más baja.
El precio de sus SNARK es un delicado equilibrio entre el costo de la computación, el entorno del mercado (demanda de SNARK), su rendimiento de SNARK y la velocidad a la que cada uno de sus procesos de SNARK Worker puede producir SNARK. A veces, incluso podría ser económicamente prudente desconectar a su trabajador SNARK por completo hasta que el mercado mejore.
¿LOS TRABAJADORES DE SNARK REQUERIRÁN MÁS CAPACIDAD DE ALMACENAMIENTO Y COMPUTACIÓN A LO LARGO DEL TIEMPO? ¿QUÉ PASA EN COMPARACIÓN CON LOS NODOS COMPLETOS DE MINA?
Los trabajadores de Snark no necesitarán más capacidad de almacenamiento o computación con el tiempo. Los trabajadores de Snark simplemente consultan el mempool en busca de transacciones pendientes que requieran pruebas de Snark y luego generan dicha prueba; esto no requiere sincronizar datos históricos. Además, el costo de prueba subyacente del trabajo de Snark no se vuelve más costoso con el tiempo.
Si estamos comparando nodos de trabajo de Snark con nodos completos en Mina, entonces sí, los trabajadores de Snark se beneficiarán del hardware especializado, ya que la generación de pruebas de SNARK actualmente es un proceso intensivo de computación. Una vez más, sin embargo, con la explosión de la investigación de SNARK, es probable que esto cambie y se vuelva más accesible para el hardware del consumidor.
¿CUÁL ES LA DIFERENCIA ENTRE UN SNARK, UNA PRUEBA SNARK Y UN TRABAJO SNARK?
SNARK es un término muy sobrecargado en la actualidad: cuando lee SNARK , podría estar refiriéndose al concepto de sistemas de prueba sucintos no interactivos (por ejemplo, SNARK vs Bulletproofs), la implementación técnica específica del sistema de prueba (por ejemplo, la construcción, la circuito, o el probador), o la instancia individual de la prueba en sí (por ejemplo, la cadena de bloques SNARK).
Cuando hablemos de ello, intentaremos adherirnos al uso de:
- SNARK: como concepto general de pruebas de conocimiento cero sucintas y no interactivas
- Circuito SNARK: el circuito y el probador específicos, como perteneciente a una aplicación
- Prueba SNARK: una prueba individual generada por un probador SNARK
- snark work: una estructura de datos del protocolo Mina que es un envoltorio alrededor de una o dos pruebas SNARK y un precio a pagar al trabajador snark que generó las pruebas. Esto se vuelve infalsificable mediante un esquema de Firma de Conocimiento que se detallará en otra sección.
¿HAY ALGUNA PREOCUPACIÓN POR UNA ÚNICA Y GRAN TRABAJADOR SNARK VERTIDO TRABAJO EN EL SNARKETPLACE, Y LUEGO SUBIR LOS PRECIOS DESPUÉS DE MONOPOLIZAR EL MERCADO?
En economía, existe una estrategia de precios llamada precios predatorios (o dumping) en la que un proveedor de un producto busca agotar a los proveedores competidores en el mercado subcotizando el precio de mercado. El proveedor fija el precio de sus productos mucho más barato que el precio del mercado, con el fin de expulsar a los competidores, incluso si eso significa incurrir en pérdidas a corto plazo. Una vez que se ha despejado el mercado, el proveedor dominante aumenta los precios por encima de las tasas competitivas del mercado , ya que la competencia se ha extinguido.
Sin embargo, esta estrategia solo es efectiva en mercados donde existen altas barreras de entrada. Es decir, los competidores que fueron desplazados en la etapa de depredación no pueden volver a unirse al mercado.
Este no es el caso del trabajo snark, ya que las barreras de entrada son bajas. Cualquiera que tenga recursos informáticos adicionales puede unirse al snarketplace y producir tan poco como un trabajo snark, y beneficiarse de esa unidad de trabajo. La única barrera de entrada es el gasto de capital inicial en hardware, pero anticipamos que los requisitos de hardware serán bajos, de modo que los usuarios con equipo de repuesto puedan conectarse y participar. Si algún trabajador de snark logra expulsar el mercado y aumenta los precios, se prevé que los recién llegados reaparecerán y los precios volverán a bajar.
¿IMPORTA LA VELOCIDAD DE PRODUCCIÓN DE SNARKS? SI MI COMPUTADORA ES MÁS LENTA, ¿ESTARÉ EN DESVENTAJA?
No, siempre que los productores de bloques sigan requiriendo el trabajo snark producido, no importa quién lo produjo primero, solo el precio importa a los ojos de los productores de bloques. La advertencia aquí es que la inclusión temprana en el mempool snark es obviamente beneficiosa, ya que es probable que los productores de bloques «vean» el trabajo antes.
Sin embargo, se podría imaginar un escenario en el que se favorezca a un conjunto de trabajadores snark porque produjeron la mayor cantidad de trabajos snark que son rentables, y comprar pruebas de la menor cantidad posible de entidades permitiría incluir más transacciones en cualquier bloque.
También hay un umbral en el que el tiempo se convierte en un factor, pero esto solo se aplicaría a dispositivos con muy poca potencia. Haremos un seguimiento con evaluaciones comparativas detalladas cuando hayamos realizado más pruebas.
¿NECESITARÁ UN NODO COMPLETO ALMACENAR TODAS LAS PRUEBAS SNARK INTERMEDIAS? P.EJ. ¿LOS REQUISITOS DE ALMACENAMIENTO CRECERÁN LINEALMENTE CON LOS BLOQUES?
No, cuando se genera un nuevo bloque, Mina calcula la prueba de forma recursiva sobre la prueba anterior y el nuevo bloque. Esta es la ventaja de la composición recursiva: en un momento dado, los nodos solo necesitan almacenar la prueba más reciente. No se necesitan pruebas intermedias. Vea esta charla para obtener más claridad sobre cómo surgió esta arquitectura: https://www.youtube.com/watch?v=eWVGATxEB6M
¿CÓMO CONTROLAS O LIMITAS LA CANTIDAD DE NÚCLEOS QUE USAN LOS TRABAJADORES DE SNARK?
Puede utilizar la -snark-worker-parallelism
bandera al iniciar mina daemon
.
¿Cómo comprar Mina Protocol (MINA) Token?
Puede comprar CTSI en todos los principales intercambios de criptomonedas . El intercambio con mayor volumen y menor deslizamiento es Binance . Puede comprar C98 usando BTC, ETH, USDT o BNB.
En nuestro caso para el tutorial vamos a comprarlo con USDT
PASO 1 Para comprar Mina Protocol (MINA) Token en Binance
- Lo primero lógicamente será entrar en Binance, si no estás registrado hazlo aquí.
Una vez dentro de Binance, tenemos que comprar USDT , lo podemos hacer con tarjeta de Crédito o débito en la sección “Comprar Crypto”.
PASO 2 Para comprar Mina Protocol (MINA) Token en Binance
- Una vez con nuestros USDT en Binance, tenemos que comprar Mina Protocol (MINA) Token y para eso nos vamos a dirigir a “TRADE” para elegir luego “CLASSIC”.
- Ahora una vez dentro nos vamos al lado derecho de la página y buscamos el Token MINA y seleccionamos el PAR “MINA/USDT” y le damos Click.
PASO 3 Para comprar Mina Protocol (MINA) Token en Binance
- Una vez dentro del Mercado Clásico y seleccionado el Par MINA/USDT , ponemos la cantidad de USDT que queremos intercambiar por MINA y le damos comprar.
- Y listo ya tenemos nuestros MINA Token en Binance.
Espero que les haya gustado el artículo y si es así que lo compartan en las redes sociales y con sus amigos.
Precio Mina Protocol (MINA) Token en directo:
Para ver el precio de Mina Protocol en directo, lo podemos hacer desde la misma plataforma de Binance.
Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.
Direcciones de Billetera:
- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS
- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe
- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f
- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx
También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:
- Telegram
Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones