Bienvenue dans le référentiel officiel de Steem, la blockchain qui révolutionnera le Web, et bientôt la blockchain pour les jetons Smart Media!
Steem est la première blockchain qui a introduit l'algorithme de consensus social "Proof of Brain" pour l'allocation de jetons.
Étant l'un des projets de blockchain les plus développés activement actuellement, il est devenu un sol fertile pour les activités entrepreneuriales. Il est également devenu à la maison pour de nombreux projets centrés sur les crypto-monnaies.
Steem vise à être la blockchain préférée pour le développement DAPP avec des jetons de médias intelligents à son cœur. Avec SMTS, tout le monde peut tirer parti de la puissance de Steem.
À l'origine, Steem a été annoncé sur le Bitcointalk Forum avant le début de toute mine. (Steem n'est actuellement pas exploitable)
Prendre avec Steem est assez simple. Vous pouvez choisir d'utiliser des images Docker-Images, construire avec Docker manuellement ou construire directement à partir de la source. Toutes les étapes ont été documentées et bien que de nombreux SG différents soient pris en charge, le plus facile est Ubuntu 16.04.
Vous voulez juste être opérationnel rapidement? Nous avons des images docker prédéfinies pour votre commodité. Plus de détails sont dans notre guide QuickStart.
Nous recommandons fortement d'utiliser l'une de nos images Docker prédéfinies ou d'utiliser Docker pour construire Steem. Ces deux processus sont décrits dans le guide QuickStart.
Mais si vous souhaitez toujours construire à partir de Source, nous avons également des instructions de construction pour Linux (Ubuntu LTS) et MacOS.
Pour exécuter un nœud P2P (environ 2 Go de mémoire est requis pour le moment):
docker run
-d -p 2001:2001 -p 8090:8090 --name steemd-default
steemit/steem
docker logs -f steemd-default # follow along
Pour exécuter un nœud avec toutes les données (par exemple pour prendre en charge un site Web de contenu) ca. 14 Go de mémoire et en croissance est nécessaire:
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
Nous fournissons un portefeuille CLI de base pour l'interfaçage avec steemd . Le portefeuille est auto-documenté via une aide à la ligne de commande. Le nœud auquel vous vous connectez via le portefeuille CLI doit exécuter le account_by_key_api , condenser_api , et doit être configuré pour accepter les connexions WebSocket via webserver-ws-endpoint .
Voir doc / devs / test.md pour les cibles de construction de test et les informations sur la façon d'utiliser LCOV pour vérifier la couverture du test de code.
Exécutez steemd une fois pour générer un répertoire de données et un fichier de configuration. L'emplacement par défaut est witness_node_data_dir . Tuez steemd . Il ne fera rien sans les nœuds de semence. Si vous souhaitez modifier la configuration à votre goût, nous avons deux exemple de configuration utilisées dans les images Docker. (Node de consensus, nœud complet) Toutes les options seront présentes dans le fichier de configuration par défaut et il peut y avoir plus d'options qui doivent être modifiées à partir des configurations Docker (certaines des options réellement utilisées dans les images sont configurées via la ligne de commande).
Une liste de certains nœuds de semences pour vous aider à démarrer peut être trouvée dans Doc / SeedNodes.txt.
Ce même fichier est cuit dans les images Docker et peut être remplacé en définissant STEEMD_SEED_NODES dans l'environnement du conteneur au moment de docker run vers une liste de nœuds de graines délimités en espace (avec port).
Il existe plusieurs variables d'environnement qui peuvent être définies pour exécuter STEEMD de différentes manières:
USE_WAY_TOO_MUCH_RAM - Si défini sur true, Steemd démarre un «nœud complet»USE_FULL_WEB_NODE - Si défini sur true, un fichier de configuration par défaut sera utilisé qui permet un ensemble complet d'API et de plugins associés.USE_NGINX_FRONTEND - Si défini sur true, cela permettra un proxy inversé Nginx devant Steemd qui proxie WebSocket demandes à Steemd. Cela permettra également une vérification de santé personnalisée sur le chemin «/ santé» qui répertorie le nombre de secondes du temps de blockchain actuel que votre nœud est. Il retournera un «200» s'il est à moins de 60 secondes de la synchronisation.USE_MULTICORE_READONLY - Si défini sur true, cela permettra à steemd en mode lecteur multiple pour tirer parti de plusieurs cœurs (si disponible). Les demandes de lecture sont traitées par les nœuds en lecture seule et les demandes d'écriture sont transmises automatiquement au nœud «écrivain» unique. La charge de Nginx équilibre toutes les demandes des nœuds de lecteur, 4 par noyau disponible. Ce paramètre est toujours considéré comme expérimental et peut avoir des problèmes avec certains appels d'API jusqu'à ce que le développement supplémentaire soit terminé.HOME - Définissez ceci sur le chemin où vous souhaitez que Steemd stockait ses fichiers de données (journal de bloc, mémoire partagée, fichier de configuration, etc.). Par défaut /var/lib/steemd est utilisé et existe à l'intérieur du conteneur Docker. Si vous souhaitez utiliser un autre point de montage (comme un Ramdisk ou un lecteur différent), vous pouvez définir cette variable pour mapper le volume sur votre conteneur Docker. Steemd prend désormais en charge un mode PaaS (plate-forme en tant que service) qui fonctionne actuellement avec le service Elastic Beanstalk d'Amazon. Il peut être lancé en utilisant les variables d'environnement suivantes:
USE_PAAS - Si défini sur true, Steemd sera lancé dans un format qui fonctionne avec AWS EB. Les conteneurs quitteront une défaillance afin qu'ils puissent être relancés automatiquement par ECS. Ce mode suppose USE_WAY_TOO_MUCH_RAM et USE_FULL_WEB_NODE , ils n'ont pas besoin d'être également définis.S3_BUCKET - Définissez ceci sur le nom du seau S3 où vous stockez des fichiers de mémoire partagés pour STEEMD dans Amazon S3. Ils seront stockés compressés au format BZ2 avec le nom de fichier blockchain-$VERSION-latest.tar.bz2 , où la version $ est le numéro de version suivi du hachage Git Short Commit stocké dans chaque image Docker à /etc/steemdversion .SYNC_TO_S3 - Si défini sur true, le nœud ne fonctionnera que pour générer uniquement des fichiers de mémoire partagés et les télécharger dans le seau S3 spécifié. Cela rend possible les déploiements rapides et l'automate pour STEEMD. Pour un nœud Web complet, vous avez besoin d'au moins 110 Go d'espace disque disponible. STEEMD utilise un fichier mappé de mémoire qui contient actuellement 56 Go de données et par défaut est défini pour utiliser jusqu'à 80 Go. Le journal de bloc de la blockchain lui-même est un peu plus de 27 Go. Il est fortement recommandé d'exécuter STEEMD sur un disque rapide tel qu'un SSD ou en plaçant les fichiers de mémoire partagés dans un Ramdisk et en utilisant l'option de ligne de commande --shared-file-dir=/path pour spécifier où. Au moins 16 Go de mémoire sont nécessaires pour un nœud Web complet. Les nœuds de graines (mode P2P) peuvent fonctionner avec aussi peu que 4 Go de mémoire avec un fichier d'état de 24 Go. Tout processeur avec des performances à noyau unique décentes devrait être suffisante. Steemd grandit constamment. En août 2017, ces chiffres étaient exacts, mais vous pouvez constater que vous avez besoin de plus d'espace disque pour exécuter un nœud complet. Nous travaillons également constamment sur l'optimisation de l'utilisation par Steem de l'espace disque.
Sur Linux Utilisez la configuration de mémoire virtuelle suivante pour la synchronisation initiale et les reéplays suivants. Il n'est pas nécessaire pour un fonctionnement 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
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou implicite, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et de non-contrefaçon. En aucun cas, les auteurs ou les titulaires de droits d'auteur ne seront pas responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action de contrat, de délit ou autre, découlant de, ou en relation avec le logiciel ou l'utilisation ou d'autres transactions dans le logiciel.