Webに革命をもたらすブロックチェーンであるSteemの公式リポジトリ、そしてすぐにスマートメディアトークンのブロックチェーンへようこそ!
Steemは、トークン割り当てのための「脳の証明」社会的コンセンサスアルゴリズムを導入した最初のブロックチェーンです。
現在存在している最も積極的に開発されたブロックチェーンプロジェクトの1つであるため、起業家の追求のための肥沃な土壌になりました。また、多くの暗号通貨中心のプロジェクトの拠点にもなりました。
Steemは、Smart Media TokensがコアにあるDAPP開発の好ましいブロックチェーンになることを目指しています。 SMTSを使用すると、誰もがSteemの力を活用できます。
もともと、Steemは、鉱業の開始前にBitcointalkフォーラムで発表されました。 (Steemは現在採掘できません)
Steemを始めるのはかなり簡単です。 Dockerイメージを使用するか、Dockerを手動で構築するか、ソースから直接ビルドすることを選択できます。すべてのステップが文書化されており、多くの異なるOSがサポートされていますが、最も簡単なOSはUbuntu 16.04です。
すぐに立ち上がって走りたいですか?お客様の便利さのために、事前に構築されたDocker画像があります。詳細については、QuickStartガイドをご覧ください。
事前に構築されたDocker画像の1つを使用するか、Dockerを使用してSteemを構築することを強くお勧めします。これらのプロセスは両方とも、QuickStartガイドで説明されています。
ただし、ソースから構築したい場合は、Linux(Ubuntu LTS)とMacOSの命令もビルドしています。
P2Pノードを実行するには(現時点では2GBのメモリが必要です):
docker run
-d -p 2001:2001 -p 8090:8090 --name steemd-default
steemit/steem
docker logs -f steemd-default # follow along
すべてのデータを使用してノードを実行するには(コンテンツWebサイトをサポートする場合)CA。 14GBの記憶と成長が必要です。
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
steemdとのインターフェースのための基本的なCLIウォレットを提供します。ウォレットは、コマンドラインヘルプを介して自己文書化されています。 CLIウォレットを介して接続するノードは、 account_by_key_api 、 condenser_apiを実行する必要があり、 webserver-ws-endpointを介してWebSocket接続を受け入れるように構成する必要があります。
テストビルドのターゲットと、LCOVを使用してコードテストカバレッジを確認する方法についての情報については、doc/devs/testing.mdを参照してください。
steemd 1回実行して、データディレクトリと構成ファイルを生成します。デフォルトの場所はwitness_node_data_dirです。 steemdを殺します。シードノードなしでは何もしません。構成を好みに変更する場合は、Docker画像で使用されている2つのサンプル構成があります。 (コンセンサスノード、フルノード)すべてのオプションがデフォルトの構成ファイルに存在し、Docker構成から変更する必要があるオプションが増える場合があります(画像で実際に使用されるオプションの一部はコマンドラインで構成されています)。
開始するためのいくつかのシードノードのリストは、doc/seednodes.txtにあります。
この同じファイルはDocker画像に焼き付けられ、 docker run時にコンテナ環境にSTEEMD_SEED_NODES設定することでオーバーライドできます。
さまざまな方法でSTEEMDを実行するように設定できる環境変数はかなりあります。
USE_WAY_TOO_MUCH_RAM -trueに設定した場合、steemdは「フルノード」を開始しますUSE_FULL_WEB_NODE -trueに設定されている場合、APIと関連するプラグインの完全なセットを有効にするデフォルトの構成ファイルが使用されます。USE_NGINX_FRONTEND -trueに設定されている場合、これにより、WebSocketがSTEEMDにリクエストをプロキシをプロキシをプロキシを作成するnginx逆プロキシが可能になります。また、これにより、ノードが現在のブロックチェーン時間から数秒離れたところにあるパス「/ヘルス」でカスタムヘルスチェックが可能になります。同期から60秒未満離れていれば、「200」を返します。USE_MULTICORE_READONLY -trueに設定されている場合、複数の読者モードでSteemdが複数のコアを利用できるようになります(利用可能な場合)。読み取りリクエストは読み取り専用ノードによって処理され、書き込みリクエストは単一の「ライター」ノードに自動的に転送されます。 Nginxロードバランスは、利用可能なコアごとに4つのリーダーノードにすべてのリクエストをバランスさせます。この設定は依然として実験的と見なされており、さらなる開発が完了するまでいくつかのAPI呼び出しに問題がある場合があります。HOME - これをSTEEMDにデータファイル(ブロックログ、共有メモリ、構成ファイルなど)を保存したいパスに設定します。デフォルトでは/var/lib/steemdが使用され、Dockerコンテナ内に存在します。別のマウントポイント(ラムディスクや別のドライブなど)を使用する場合は、この変数を設定してボリュームをDockerコンテナにマッピングすることをお勧めします。 Steemdは、現在AmazonのElastic Beanstalkサービスで動作するPaaSモード(プラットフォーム)をサポートしています。次の環境変数を使用して起動できます。
USE_PAAS -trueに設定されている場合、steemdはAWS EBで動作する形式で起動します。コンテナは障害時に終了し、ECSによって自動的に再起動できるようになります。このモードでは、 USE_WAY_TOO_MUCH_RAMを想定し、 USE_FULL_WEB_NODEを設定する必要はありません。S3_BUCKETこれをS3バケットの名前に設定します。ここでは、Amazon S3にSteemd用の共有メモリファイルを保存します。ファイル名blockchain-$VERSION-latest.tar.bz2を使用してBZ2形式で圧縮されます。ここで、$バージョンは、 /etc/steemdversionの各Docker画像に保存されているGit Short Commit Hashが続くリリース番号です。SYNC_TO_S3 -trueに設定されている場合、ノードは共有メモリファイルのみを生成し、指定されたS3バケットにアップロードするように機能します。これにより、Steemdの迅速な展開と自動化が可能になります。 完全なWebノードの場合、少なくとも110GBのディスクスペースが必要です。 Steemdは、現在56GBのデータを保持しているメモリマッピングファイルを使用しており、デフォルトでは最大80GBの使用に設定されています。ブロックチェーン自体のブロックログは、27GBを少し超えています。 SSDなどの高速ディスクでSTEEMDを実行するか、共有メモリファイルをRamdiskに配置し、 --shared-file-dir=/pathコマンドラインオプションを使用してどこで指定することを強くお勧めします。完全なWebノードには、少なくとも16GBのメモリが必要です。シードノード(P2Pモード)は、24 GBの状態ファイルを使用して、わずか4GBのメモリで実行できます。まともなシングルコアパフォーマンスを備えたCPUで十分です。 Steemdは常に成長しています。 2017年8月の時点で、これらの数字は正確でしたが、フルノードを実行するにはさらにディスクスペースが必要になる場合があります。また、Steemのディスクスペースの使用の最適化に常に取り組んでいます。
Linuxでは、初期同期とその後のリプレイに次の仮想メモリ構成を使用します。通常の操作には必要ありません。
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
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。