XRL Tech Corner

Blog
Tamaño de fuente: +

10 pasos para crear tu propia criptomoneda

En este artículo voy a explicar como crear una criptomoneda.
Me centraré en la parte técnica, ya que crear una criptomoneda como un negocio es un proyecto que involucra varios sectores, y para ello se necesita un plan de negocio sólido.

En 10 pasos voy a describir como crear una criptomoneda desde cero con posibilidad de minar esa criptomoneda y con una simple wallet en modo de comandos.

crear criptomoneda

Esta criptomoneda hereda las propiedades de CryptoNote, que otorgan ciertas ventajas en relación al Bitcoin original: las transacciones no se pueden tracear, con lo que proporciona un anonimato importante. Utiliza un algoritmo para la prueba de trabajo (PoW) que no premia al minado con ASICs y GPUs, de alguna manera democratizando el minado y ahorrando energía, al poderse minar con una cpu de un ordenador doméstico. Asimismo tiene una curva de emisión que promueve la creación de la mayoría de las monedas en los dos primeros años.

Es de la familia de criptomonedas entre las cuales está Monero, Bytecoin y Dashcoin para citar algunas.

Qué es una criptomoneda?

De un modo simple una moneda virtual se crea en un proceso que se ejecuta en cada ordenador de la red y que realiza varias tareas: creación y emisión de la moneda virtual, gestión de los bloques y de la cadena de bloques, gestión de las transacciones, creación de los hashes mediante un algoritmo concreto y gestión de las comunicaciones P2P (peer to peer) entre los nodos de la red.

Si necesitas soporte técnico en estos temas, envíame una petición en el formulario de contacto.

Qué necesitamos para crear nuestra propia criptomoneda?

Dado que es un programa escrito en C/C++ necesitaremos un entorno de desarrollo en el que se pueda compilar código fuente en C/C++, y dado que tendrá que estar siempre operativo y en la red, necesitaremos un servidor en internet en el que pueda ejecutarse, y que servirá de nodo principal de la red.

Pasos a seguir para crear la criptomoneda

#1 Conseguir un vps o un servidor conectado a internet

Para ello tenemos que alquilar un servidor Linux en la nube. En este enlace podéis crear uno en Digital Ocean con un descuento. También podéis usar los vps de clouding.io, una empresa española con CPD en Barcelona.

#2 Crear una cuenta en GitHub

El código fuente que vamos a usar está en GitHub, con lo cual es necesario crearse una cuenta o utilizar una existente.

#3 Crear un fork de CryptoNote

Hay que crear un fork del proyecto original de Cryptonote, esto es muy sencillo haciendo clic en el botón "Fork".

github cryptonote fork

#4 Clonar el repositorio mediante git

Para descargar el proyecto al servidor vps hay que clonar el repositorio git.

github clone download

Para ello se coge la url que figura en el botón Clone or download y se ejecuta en un terminal del servidor vps:

git clone https://github.com/tu-usuario/tu-repositorio.git

#5 Editar el fichero CryptoNoteConfig.h

Una vez descargado el código del repositorio, hay que editar ciertos parámetros de configuración de la moneda virtual que se va a crear.

Estos cambios que se muestran (por defecto) hay que hacerlos en el archivo /src/CryptoNoteConfig.h  sustituyendo los valores concretos para vuestra moneda virtual.

  • const char CRYPTONOTE_NAME[] = "tumoneda";
  • const uint64_t MONEY_SUPPLY = (uint64_t)(-1);
  • const unsigned EMISSION_SPEED_FACTOR = 18;
  • const uint64_t DIFFICULTY_TARGET = 120;
  • const uint64_t MINIMUM_FEE = 100000;
  • const size_t CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE = 20000;
  • const int P2P_DEFAULT_PORT = 17236;
  • const int P2P_DEFAULT_PORT = 17236;
  • const static boost::uuids::uuid CRYPTONOTE_NETWORK = { { 0xA1, 0x1A, 0xA1, 0x1A, 0xA1, 0x0A, 0xA1, 0x0A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA0, 0x1A, 0xA1, 0x1A } };
  • const std::initializer_list SEED_NODES = {   "111.11.11.11:17236",   "222.22.22.22:17236", };
  • const char GENESIS_COINBASE_TX_HEX[] = "";
  • const uint64_t CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 0xe9; // addresses start with "f"

Estos cambios en el /src/CMakeLists.txt

  • set_property(TARGET daemon PROPERTY OUTPUT_NAME "tumonedad")

#6 Compilar el proyecto

Para compilar el proyecto sólo hay que ejecutar make en el directorio principal y esperar unos 5-10 minutos a que se generan los ficheros ejecutables en /build/release/src.

#7 Generar el Genesis block

Será necesario crear el Genesis block para ello ejecutar el daemon de la criptomoneda y copiar el hash en el fichero anterior.

tumonedad --print-genesis-tx

#8 Insertar el Genesis block y recompilar el proyecto

Insertar el código anterior y recompilar de nuevo con make.

const char GENESIS_COINBASE_TX_HEX[] = "013c01ff0001ffff...785a33d9ebdba68b0";

#9 Ejecutar el proceso tumonedad

Ir a la ruta /build/release/src y ejecutar el daemon de nuestra criptomoneda.

#10 Usar el daemon tumonedad y la simplewallet

Para minar tu moneda virtual se puede usar la simplewallet y las monedas se enviarán a tu wallet.

Primero ejecutar el daemon tumonedad y luego abrir simplewallet y crear una wallet (especificar un nombre) con una contraseña. Luego teclear start_mining 2 para minar con 2 threads.

En unos minutos teclear balance para mostrar el saldo de la wallet.

Dado que la dificultad es muy baja en estos primeros bloques se puede minar "solo" sin necesidad de un pool.

Conclusión

Hemos visto que en menos de media hora tenemos "viva" nuestra criptomoneda con apenas un vps con Linux y una cuenta de Github.

Ahora bien hay que tener claro para que se crea una criptomoneda y para que va a servir. Si no ofrece una propuesta de valor, como por ejemplo Ethereum con sus smarts contracts es posible que nuestra criptomoneda no consiga adopción por parte del mercado, ni una red de nodos, ni un valor fiat real.

Valora este artículo del blog:
blogpay un nueva criptomoneda para bloggers
Correo phishing de Paypal

Artículos relacionados

 

Comentarios

No hay comentarios por el momento. Se el primero en enviar un comentario.
¿Ya està registrado? Ingresa Aquí
Invitado
Lunes, 19 Febrero 2018
Si desea registrarse, por favor rellene los campos de nombre de usuario y nombre.

Imagen Captcha