¡Bienvenido al repositorio oficial de Steem, la cadena de bloques que revolucionará la web, y pronto la cadena de bloques de tokens de medios inteligentes!
Steem es la primera cadena de bloques que introdujo el algoritmo de consenso social "Prueba del cerebro" para la asignación de tokens.
Siendo uno de los proyectos blockchain más desarrollados actualmente actualmente existentes, se ha convertido en un suelo fértil para las actividades empresariales. También se ha convertido en el hogar de muchos proyectos centrados en criptomonedas.
Steem tiene como objetivo ser la cadena de bloques preferida para el desarrollo de DAPP con tokens de medios inteligentes en su núcleo. Con SMTS, todos pueden aprovechar el poder de Steem.
Originalmente, Steem fue anunciado en el Foro de Bitcointalk antes del inicio de cualquier minería. (Steem actualmente no es minable)
Comenzar con Steem es bastante simple. Puede optar por usar Docker-Images, construir con Docker manualmente o construir desde la fuente directamente. Todos los pasos han sido documentados y, aunque se admiten muchos sistemas operativos diferentes, el más fácil es Ubuntu 16.04.
¿Solo quieres levantarte y correr rápidamente? Tenemos imágenes de Docker preconstruidas para su conveniencia. Más detalles están en nuestra guía QuickStart.
Recomendamos encarecidamente usar una de nuestras imágenes de Docker preconstruidas o usar Docker para construir Steem. Ambos procesos se describen en la guía QuickStart.
Pero si aún desea construir desde la fuente, también tenemos instrucciones de compilación para Linux (Ubuntu LTS) y MacOS.
Para ejecutar un nodo P2P (ca. 2 GB de memoria se requiere en este momento):
docker run
-d -p 2001:2001 -p 8090:8090 --name steemd-default
steemit/steem
docker logs -f steemd-default # follow along
Para ejecutar un nodo con todos los datos (por ejemplo, para admitir un sitio web de contenido) Ca. Se requiere 14 GB de memoria y en crecimiento:
docker run
--env USE_WAY_TOO_MUCH_RAM=1 --env USE_FULL_WEB_NODE=1
-d -p 2001:2001 -p 8090:8090 --name steemd-full
steemit/steem
docker logs -f steemd-full
Proporcionamos una billetera CLI básica para interactuar con steemd . La billetera se autodocumentó a través de la ayuda de la línea de comandos. El nodo al que se conecta a través de la billetera CLI debe ejecutar el account_by_key_api , condenser_api , y debe configurarse para aceptar conexiones WebSocket a través de webserver-ws-endpoint .
Consulte Doc/Devs/Testing.MD para obtener objetivos de compilación de prueba e información sobre cómo usar LCOV para verificar la cobertura de prueba del código.
Ejecute steemd una vez para generar un directorio de datos y un archivo de configuración. La ubicación predeterminada es witness_node_data_dir . Mata steemd . No hará nada sin nodos de semillas. Si desea modificar la configuración en su gusto, tenemos dos configuraciones de ejemplo utilizadas en las imágenes Docker. (Nodo de consenso, nodo completo) Todas las opciones estarán presentes en el archivo de configuración predeterminado y puede haber más opciones que necesitan cambiarse desde las configuraciones de Docker (algunas de las opciones realmente utilizadas en las imágenes están configuradas a través de la línea de comandos).
Se puede encontrar una lista de algunos nodos de semillas para comenzar en DOC/Seednodes.txt.
Este mismo archivo se hornea en las imágenes de Docker y puede anularse configurando STEEMD_SEED_NODES en el entorno del contenedor en el tiempo docker run en una lista delimitada de nodos de semillas (con puerto).
Hay bastantes variables de entorno que se pueden configurar para ejecutar Steemd de diferentes maneras:
USE_WAY_TOO_MUCH_RAM : si se establece en True, Steemd inicia un 'nodo completo'USE_FULL_WEB_NODE : si se establece en True, se usará un archivo de configuración predeterminado que habilita un conjunto completo de API y complementos asociados.USE_NGINX_FRONTEND : si se establece en True, esto habilitará un proxy inverso NGINX frente a Steemd que proxies WebSocket solicita a Steemd. Esto también habilitará un cheque de salud personalizado en la ruta '/salud' que enumera cuántos segundos de tiempo de blockchain actual es su nodo. Devolverá un '200' si está a menos de 60 segundos de ser sincronizado.USE_MULTICORE_READONLY : si se establece en True, esto permitirá a Steemd en modo de lector múltiple para aprovechar múltiples núcleos (si están disponibles). Las solicitudes de lectura son manejadas por los nodos de solo lectura y las solicitudes de escritura se reenvían al nodo 'escritor' único automáticamente. La carga de Nginx equilibra todas las solicitudes a los nodos del lector, 4 por núcleo disponible. Esta configuración todavía se considera experimental y puede tener problemas con algunas llamadas de API hasta que se complete un mayor desarrollo.HOME : configure esto en la ruta donde desea que Steemd almacene sus archivos de datos (registro de bloques, memoria compartida, archivo de configuración, etc.). De forma predeterminada /var/lib/steemd se usa y existe dentro del contenedor Docker. Si desea utilizar un punto de montaje diferente (como un Damdisk o una unidad diferente), es posible que desee establecer esta variable para asignar el volumen a su contenedor Docker. Steemd ahora admite un modo PAAS (plataforma como servicio) que actualmente funciona con el servicio elástico de Beanstalk de Amazon. Se puede lanzar utilizando las siguientes variables de entorno:
USE_PAAS : si se establece en True, Steemd se lanzará en un formato que funcione con AWS EB. Los contenedores saldrán de falla para que los ECS puedan relanzar automáticamente. Este modo asume USE_WAY_TOO_MUCH_RAM y USE_FULL_WEB_NODE , no necesitan ser establecidos.S3_BUCKET : configure esto al nombre del cubo S3 donde almacenará archivos de memoria compartidos para Steemd en Amazon S3. Se almacenarán comprimidos en formato BZ2 con el nombre de archivo blockchain-$VERSION-latest.tar.bz2 , donde la versión $ es el número de lanzamiento seguido por el hash de comandos cortos de git almacenados en cada imagen de Docker en /etc/steemdversion .SYNC_TO_S3 : si se establece en True, el nodo funcionará solo para generar archivos de memoria compartidos y cargarlos en el cubo S3 especificado. Esto hace posible implementaciones rápidas y autoscalados para Steemd. Para un nodo web completo, necesita al menos 110 GB de espacio en disco disponible. Steemd usa un archivo mapeado de memoria que actualmente contiene 56 GB de datos y, de forma predeterminada, se establece para usar hasta 80 GB. El registro de bloques de la cadena de bloques es un poco más de 27 GB. Se recomienda ejecutar Steemd en un disco rápido, como un SSD o colocando los archivos de memoria compartida en un Disk Ram y utilizando la opción --shared-file-dir=/path Command Line para especificar dónde. Se requieren al menos 16 GB de memoria para un nodo web completo. Los nodos de semillas (modo P2P) pueden ejecutarse con tan solo 4 GB de memoria con un archivo de estado de 24 GB. Cualquier CPU con rendimiento de un solo núcleo decente debe ser suficiente. Steemd está creciendo constantemente. A partir de agosto de 2017, estos números eran precisos, pero es posible que necesite más espacio en disco para ejecutar un nodo completo. También estamos trabajando constantemente para optimizar el uso del espacio en disco de Steem.
En Linux, use la siguiente configuración de memoria virtual para la sincronización inicial y las repeticiones posteriores. No es necesario para el funcionamiento normal.
echo 75 | sudo tee /proc/sys/vm/dirty_background_ratio
echo 1000 | sudo tee /proc/sys/vm/dirty_expire_centisecs
echo 80 | sudo tee /proc/sys/vm/dirty_ratio
echo 30000 | sudo tee /proc/sys/vm/dirty_writeback_centisecs
El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita, incluidas, entre otros, las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. En ningún caso los autores o titulares de derechos de autor serán responsables de cualquier reclamo, daños u otra responsabilidad, ya sea en una acción de contrato, agravio o de otra manera, que surge, de o en relación con el software o el uso u otros tratos en el software.