-
Notifications
You must be signed in to change notification settings - Fork 0
GettingStarted
このドキュメントではTaaSをはじめて利用する方向けに、無償で開放している体験用のTapyrusネットワーク&エンドポイントを使用して基本的な送金を行うための手順を解説しています。
このドキュメントは、Ubuntu 20.04 を前提として書かれています。OSやGNU/Linuxディストリビューションに強く依存する部分は少なく、他のOSやバージョンでも基本的な部分は共通ですが、OSやバージョンに依存する部分は適宜読み替えてください。
Ubuntu では、snap というパッケージ管理の仕組みがあり、tapyrus-core を簡単にインストールすることができます。snap パッケージは他のGNU/Linuxディストリビューションでも使用することができます。
$ sudo snap install tapyrus-core --channel=0.4/stable
インストールが完了すると、tapyrus-core.cli
というコマンドが実行できるようになっています。
$ tapyrus-core.cli
Tapyrus Core RPC client version v0.4.1
Usage: tapyrus-cli [options] <command> [params] Send command to Tapyrus Core
or: tapyrus-cli [options] -named <command> [name=value]... Send command to Tapyrus Core (with named arguments)
or: tapyrus-cli [options] help List commands
or: tapyrus-cli [options] help <command> Get help for a command
Options:
(略)
socat
というツールも使用するので、合わせてインストールしておきます。こちらはaptでインストールします。
$ sudo apt install socat
tapyrus-core.cli
はHTTPSでのJSON-RPCアクセスに対応していないため、socat
を使用してHTTPSをHTTPに変換するポートフォワードを行います。HTTPS化されていないJSON-RPCへアクセスする場合はこの作業は必要ありません。またこのポートフォワードは必ずしもsocat
を使用する必要はなく、nginxなどで任意の方法で同様のフォワードを実現しても構いません。
ここではPlaygroundのJSON-RPCエンドポイントへ接続するため、以下のコマンドで、localhost:2377 (平文) <-> playground.taas.haw.biz:2820 (TLS)
というポートフォワードを作成します。
$ socat TCP-LISTEN:2377,reuseaddr,fork,bind=localhost OPENSSL:playground.taas.haw.biz:2820 &
試しにcurl
コマンドで localhost:2377
へアクセスしてみると、レスポンスが返ってくることが確認できます。
$ curl -v http://localhost:2377
* Trying 127.0.0.1:2377...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 2377 (#0)
> GET / HTTP/1.1
> Host: localhost:2377
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 405 Method Not Allowed
< Date: Mon, 01 Mar 2021 09:33:45 GMT
< Content-Length: 41
< Content-Type: text/html; charset=ISO-8859-1
<
* Connection #0 to host localhost left intact
JSONRPC server handles only POST requests
ここまでできたら、準備完了です。
まずは、以下のようなコマンドを実行してブロックチェーンの情報を取得してみます。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus getblockchaininfo
すると、次のような結果が返ってきます。
{
"chain": "843",
"mode": "prod",
"blocks": 168369,
"headers": 168369,
"bestblockhash": "024f1bc0ac3df58b5cf215862004c703eb9d454b601fe9f5ccb63809e4687ef5",
"mediantime": 1614591249,
"verificationprogress": 1,
"initialblockdownload": false,
"size_on_disk": 52416670,
"pruned": false,
"aggregatePubkeys": [
{
"03b3ef922860c50a411f5f884e4ee7c67775bc8d6c7ae23dff55f84c42b05e6ac9": 0
}
],
"warnings": ""
}
ブロックチェーンの情報を取得できていることが確認できました。
同様のことを、curl
コマンドで実行すると以下のようになります。curl
はHTTPS通信に対応しているため、ポートフォワードを通す必要はなく直接Playgroundの公開エンドポイントへアクセスすることができます。末尾のjq
コマンドへのパイプは、JSONデータの整形のためにつけているものでリクエストには関係ありません。
$ curl --user tapyrus:tapyrus --data-binary '{"method":"getblockchaininfo"}' https://playground.taas.haw.biz:2820 | jq
(結果は省略)
まずは、RPCコマンド listwallets
を使用して既存のウォレットのリストを取得してみます。すると、以下のような結果が得られます。
Playgroundは公開されている体験環境なので、あなた以外の誰かが作成したウォレットも表示されています。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus listwallets
[
"",
"test_nakajo",
"faucet",
"luigi"
]
新しいウォレットを作成する場合は、既存のウォレットと名前が重複してはいけません。重複しなければ名前はなんでもかまいませんが、ここでは jupiter
という名前のウォレットを作成してみます。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus createwallet jupiter
{
"name": "jupiter",
"warning": ""
}
再びウォレットの一覧を取得してみると、先程作成したjupiter
というウォレットが作成できていることが確認できます。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus listwallets
[
"",
"test_nakajo",
"faucet",
"luigi",
"jupiter"
]
ウォレットを作成できたら、送金するためのアドレスを作成します。1CniSGHLt93XGRAydkdnW5nUTYJWV1rH5
というのがここで作成したjupiter
ウォレットのアドレス(のひとつ)です。このアドレスはいくつでも作成できます。このアドレスは、本稿の後のステップで使用するので控えておきます。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus -rpcwallet=jupiter getnewaddress
1CniSGHLt93XGRAydkdnW5nUTYJWV1rH5
まずは、faucet
の残高を確認します。ここで表示される残高の単位は TPC です。潤沢な残高があることがわかります。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus -rpcwallet=faucet getbalance
3140500.25051350
以下のコマンドで、faucet
ウォレットの残高から 1CniSGHLt93XGRAydkdnW5nUTYJWV1rH5
へ 1 TPC 送金してみます。トランザクションIDが結果として表示されていれば成功です。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus -rpcwallet=faucet sendtoaddress 1CniSGHLt93XGRAydkdnW5nUTYJWV1rH5 1
1f18c61c208ea43f34bc8963be5c19ff594b9f3b0fb30cac6ad0776d6b3bebc3
送金が成功したか確かめるために、jupiter
ウォレットの残高を確認します。1 TPC 表示されていることがわかります。送金は成功です。
$ tapyrus-core.cli -rpcuser=tapyrus -rpcpassword=tapyrus -rpcwallet=jupiter getbalance
1.00000000