En este post, comenzaremos la construcción de la criptomoneda Blancoin. Nuestra implementación incluirá todas las características que se espera en una criptomoneda de calidad de producción. La Blancoin sigue el modelo de Bitcoin, que es el estándar. Implementaremos Blancoin en Python. Python es un lenguaje sencillo pero poderoso cuya sintaxis es lúcida y excepcionalmente fácil de entender. Python es un lenguaje ideal para exponer claramente los algoritmos y técnicas que constituyen el columna vertebral de una criptomoneda. La desventaja de usar Python es que es un lenguaje interpretado y por lo tanto inherentemente lento. Esta limitación lo hace inadecuado para un ambiente de producción.
La implementación del código Python de Blancoin debería proporcionarte un modelo para implementar una criptomoneda en algún otro lenguaje compilado de alto rendimiento como C, C ++, Go o Rust, si así lo deseas.
Lo primero que vamos a hacer es implementar un entorno virtual.
C ++ es el lenguaje más utilizado para implementar criptomonedas. C y las implementaciones de C ++ deberían tener aproximadamente el mismo rendimiento. Una implementación de Go debería ser aproximadamente un 15% más lento que una implementación de C ++ y el compilador Go no tiene todas las optimizaciones que tiene el compilador GCC C ++ fruto de mejoras acumuladas durante 25 años de refinamiento. Python es entre 10 y 100 veces más lento que C++
entorno virtual
La primero es la creación de un entorno virtual para Blancoin. Necesitarás una versión de Python >= 3.8. Puedes crear su entorno virtual dentro de cualquier directorio (carpeta), pero si lo deseas para seguir este post exactamente, sugiero crear el entorno virtual en el directorio
/var/www
Un entorno virtual Python es un entorno aislado para el desarrollo de un proyecto Python. Este entorno virtual contiene el intérprete de Python que se utiliza para el proyecto, los paquetes y las dependencias del proyecto, así como todos el código fuente. Es el análogo del package.json de node en Javascript. Mostraremos cómo configurar un entorno virtual
para el proyecto de criptomonedas Blancoin. Las instrucciones que siguen son para Linux Si está utilizando una máquina Mac o Windows, las instrucciones son
iguales y disponibles en Internet.
pasos iniciales
Comprueba si la herramienta pip3 está instalada. pip3. Pip3 se utiliza para
instalar, actualizar y eliminar paquetes y bibliotecas de Python.
En tu sistema operativo Linux, puede ingresar a un shell de comandos abriendo
una ventana de terminal. Abrala e ingresa:
> pip3 --version
Si pip3 no está instalada la debes instalar con los comandos:
> sudo apt-get update
> sudo apt-get -y install python3-pip
Prueba también que python3 está instalado:
> python3 --version
El comando mostrará la versión de Python que está instalada.
Necesitamos una versión de Python que sea 3.8 o superior. Si Python no está presente o no tenemos una versión requerida, debemos instalar una versión válida de Python. Podemos instalar un versión específica del repositorio de deadsnakes. Para instalar la versión 3.8 de Python en tu sistribución de Linux derivada de Ubuntu ingresa:
> sudo apt install software-properties-common
> sudo add-apt-repository ppa:deadsnakes/ppa
> sudo apt-get update
> sudo apt install python3.8
Cuando se ejecuta desde la línea de comandos del terminal, esta secuencia de comandos
instala Python versión 3.8 en su distribución derivada de Ubuntu.
crear un entorno virtual para nuestro proyecto
virtualenv es una herramienta que crea entornos Python aislados. virtualenv crea un
árbol de directorios y un entorno virtual para nuestro proyecto. Instale virtualenv en su sistema:
> pip3 install virtualenv
Prueba que esta ya instalado:
> virtualenv --version
Ahora que hemos instalado virtualenv, creamos un directorio de proyecto llamado blancoin y creamos un entorno virtual de Python dentro de este directorio:
> mkdir blancoin
> cd blancoin
> python3 -m venv virtual
Esta secuencia de comandos creará un bajo su presente
directorio. A continuación, creará un subdirectorio virtual dentro del directorio de blancoin e instale Python versión 3.8 dentro de este directorio virtual.
Ya debe haber instalado Python versión 3.8 en el entorno de host como se indicó anteriormente.
La carpeta virtual contendrá el intérprete de Python, la biblioteca pip, así como
otros módulos y dependencias. Pip3 se utilizará para instalar módulos adicionales y
paquetes dentro del entorno virtual. El nombre del entorno virtual (en este
caso blancoin) puede ser cualquier nombre.
El comando virtualenv anterior instala Python versión 3.8 en el directorio
virtual / bin.
Ahora que hemos creado un entorno virtual para el proyecto Blancoin, necesitamos
activar el entorno para trabajar en él. Desplácese hacia el directorio de blancoin y
luego ingresa:
> source virtual/bin/activate
La línea de comandos antepondrá la cadena (virtual) a sí misma para indicar
que estamos en un entorno virtual activo. Ahora podemos instalar paquetes dentro del
entorno con pip3, como de costumbre.
Una vez que hayamos terminado de trabajar en el entorno virtual, lo desactivamos:
>(virtual) deactivate
Podemos congelar el entorno virtual ingresando el siguiente comando dentro del
directorio raíz del entorno virtual (blancoin) de la siguiente manera:
>(virtual) pip freeze > requirements.txt
Este comando creará un archivo de texto requirements.txt, que contiene una lista simple de todos los módulos instalados en el entorno actual y sus respectivas versiones.
Podemos ver la lista de módulos instalados dentro del entorno virtual con:
>(virtual) pip3 list
Podemos instalar las versiones del paquete enumeradas en requirements.txt de la siguiente manera:
>(virtual) pip3 install -r requirements.txt