技術発掘

財宝を見つけるべく、きままに技術の掘り起こしを行っていきます

byteball-faucet 蛇口サンプルを動作確認

byteball-faucet は下記ブログ記事の手順にある無料でテスト用のbyteを配るbotの実装です。
faucet=蛇口なのは、テスト用のbyteを吐き出してくれるからです。 こんなパトロンほしい。
最も基本的なbotとして、bot実装上の構造理解に役に立ちます。 Byteballのbotは仕組みがシンプルでよいね。

github.com

tech.kakne.com

主要ファイル

 check_daemon.js
 conf.js
 crontab.txt
 faucet.sql
 split_bb_outputs.js
 split_bytes.js
 split_indivisible_asset_outputs.js
 start.js

ソースを確認してみる

start.js

メインのプログラムです

conf.js

設定ファイル

faucet.sql

MySQL互換と思われるsqlitesqlファイル
このシステムでは支払い記録をDAGとは別にDBにも行っている

split_bb_outputs.js

split_bytes.js

split_indivisible_asset_outputs.js

ロードされていない。詳細未確認

crontab.txt

cronでcheck_daemon.jsを定期的に動かしています

*/20 * * * * cd byteball-faucet; node check_daemon.js 1>>~/.config/byteball-faucet/check_daemon.log 2>>~/.config/byteball-faucet/check_daemon.err

check_daemon.js

ソースを追っかけると、ファイル名通りnodeのプロセスについて死活監視をしているみたいです。

     var check_daemon = require('byteballcore/check_daemon.js');
     check_daemon.checkDaemonAndNotify('node start.js');

セットアップ

  • npm install
    例によってビルドは成功

  • テストネットへ変更
    node_modules/byteballcore/constants.jsの次の個所を変更

exports.version = '1.0' exports.version = '1.0t'
exports.alt = '1' exports.alt = '2'
  • conf.js 編集
    hubをテスト系に変更。
    ライトで起動したい。
    最後にメール関係の設定が必要みたいですが、実際には送信されないようです。(送信部位がコメントアウトされています)
exports.hub = 'byteball.org/bb-test';
exports.bLight = true;
exports.admin_email='admin@eample.com'
exports.from_email='admin@eample.com'
  • node start.jsで起動
    例によってデバイス名と秘密鍵のパスワードを設定
    次にいろいろ生成されます C:\Users[USERNAME]\AppData\Local/byteball-faucet/

  • Ctrl + Cでいったん終了しfaucet.sqlを使用して、次のDBファイル内にテーブルを作成 C:\Users[USERNAME]\AppData\Local/byteball-faucet/byteball.sqlite

  • node start.jsで起動

  • テストウォレットへbotをペアリング
    ペアリングコードはログの次の行に出ています

    ====== my pairing code: ApvXpxFI6GzXKVYebwi25mSnjkIc26ErW2LcyZKmJUZk@byteball.org/bb#0000

  • 動作確認
    うごいたー!。botのアカウントにbyte入れてないから、金がないと怒られますが。
    f:id:kakne:20180102142038p:plain

免責事項:当サイトで提供される情報の正確性・妥当性、また、本サイトの情報に基づいて作業を行われた場合の結果について一切の保証は致しかねます。閲覧者の責任の範疇でご参照くださいますようお願いいたします。
Logo made with DesignEvo