Byteballを使ったアプリやシステムを開発するための情報wikiです。現時点では管理人個人のメモとなっています。編集したい方はSlack経由でYamaokaまでご連絡下さい。

ここではゼロからアプリやシステム(チャットボットなど)を開発するために必要な環境構築手順を解説します。
この手順が完了すれば、.jsファイルを作ってnode ファイル名.js
でプログラムを起動することができます。

環境構築

dockerの準備

以下のアドレスからdockerを取得してください。
これ以降の説明では、dockerの基本的な扱いはわかってる前提で説明します。
Mac https://store.docker.com/editions/community/docker...
Windows https://store.docker.com/editions/community/docker...

手順

技術者向け概要

nodejsやdockerでの開発に詳しい方向けの概要メモです。
よくわからない方は飛ばしてください。

技術者向けの簡単な概要メモ

docker起動

作業の土台となるubuntuを取得して、ポートを開放した上で起動します。
docker pull ubuntu 
docker run -it -p 6611:6611 -p 80:80 -p 587:587 ubuntu
*PC側のポート開放も必要です。環境によって違うので各自でポート開放方法を調べて行ってください。

プロジェクトフォルダの作成

以下のコマンドでフォルダを作成して移動します。
projectnameの部分はお好みで書き換えてください。
mkdir projectname
cd projectname

日本語表示&入力対応

初期状態だと日本語は文字化けして正しく表示されず、日本語入力もできないので設定が必要になります。
以下のコードを実行してください。
apt-get install -y language-pack-ja-base language-pack-ja
update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
export LC_CTYPE=ja_JP.UTF-8

必須モジュールの取得

下記のコマンドを実行して最初に必要なモジュールを取得します。
*2018/7/30 無駄なものを削除し、nodejsのバージョン管理が出来るように変更しました。
バージョン管理システム nの使い方はこちらからご確認ください。
apt-get update
apt-get install -y curl git vim npm
npm -g i n
n lts

メール送信が必要な場合この中の設定もしておく必要があります

readmeファイル作成

以下のコマンドを入力して、作成したファイルに説明文を加えてください。
特にプログラムには影響しないので「a」とだけ入れても問題ありません。
vim README.md

npmインストール準備

npm経由で必要なモジュールを取得する準備をします。
npm init
ガイドに従って入力していってください。
その後、作成されたファイルをさらに書き換えます。
vim package.json
dependenciesを以下のように変更してください。
*ない場合は"license": "ISC"の後にカンマを入れて"dependencies"を追加してください。
"dependencies": {
    "headless-byteball": "git+https://github.com/byteball/headless-byteball.git",
    "byteballcore": "git+https://github.com/byteball/byteballcore.git",
    "bitcore-lib": "^0.13.14",
    "bitcore-mnemonic": "~1.0.0",
    "json-rpc2": "^1.0.2"
  }
npmのモジュールを一括取得
npm install

コンフィグファイルの作成

以下のコマンドでコンフィグファイルを作成
vim conf.js
以下の内容を書き込んで保存する。
/*jslint node: true */
"use strict";

//exports.port = 6611;
//exports.myUrl = 'wss://mydomain.com/bb';
exports.bServeAsHub = false;
exports.bLight = false;


exports.storage = 'sqlite';


exports.hub = 'byteball.org/bb';
exports.deviceName = 'Headless';
//ランダムな文字列。ペアリングコードの一部になる
exports.permanent_pairing_secret = '0000';
//チャットを許可するデバイスのアドレスを設定
exports.control_addresses = [''];
exports.payout_address = 'WHERE THE MONEY CAN BE SENT TO';
exports.KEYS_FILENAME = 'keys.json';

// where logs are written to (absolute path).  Default is log.txt in app data directory
//exports.LOG_FILENAME = '/dev/null';

// consolidate unspent outputs when there are too many of them.  Value of 0 means do not try to consolidate
exports.MAX_UNSPENT_OUTPUTS = 0;
exports.CONSOLIDATION_INTERVAL = 3600*1000;

// this is for runnining RPC service only, see play/rpc_service.js
exports.rpcInterface = '127.0.0.1';
exports.rpcPort = '6332';

console.log('finished headless conf');

動作確認

まず、
https://github.com/byteball/headless-byteballから
start.jsを開きます。

次にターミナル上で
vim test.js
と入力して、start.jsのコードを全てその中に貼り付けます。
貼り付けが終わったら保存して閉じて、次に
node test.js
と入力すると、通常のheadless-byteballのstart.jsと同じ動作をすることが確認できると思います。
*デバイス名やパスワードの入力は行わないでください。ウォレットが作成されてしまい後から行う開発に支障が出る場合があります。
確認が終わったらtest.jsは削除して構いません。
あとはあなたが作りたいコードを実装してください。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

当サイトは寄付歓迎です

Byteball
[1MB] [10MB] [100MB]

メニュー

メニュー



開発者ガイド

キャッシュバックプログラム

ウォレットを使用したユーザー認証(翻訳)
(調査中)JSON-RPC経由でByteballにアクセスする
コード解説(headless-byteballのstart.js)(作成中)

実用テクニック

【メニュー編集】

メンバーのみ編集できます