Taproot Assets
Taroから名前が変更されており、コマンドも変わっていたので再度まとめなおす。
今までまとめたやつ
仕様について
-------------------------------------------------------------------------------------------------------
インストールと送金までの流れ
インストール手順
LNDでTaroで使用するRPC関連をインストールする
~/lnd$ make install tags="signrpc walletrpc chainrpc invoicesrpc"
go のバージョンを 1.18 以上に上げておくおき、taro のリポジトリをクローン
$ git clone https://github.com/lightninglabs/taro.git
$ cd taro
taro/$ make install
Configファイル編集
Linux or BSD : ~/.taro/taro.conf
Mac OS : ~/Library/Application Support/Taro/taro.conf
Windows : $LOCALAPPDATA/Taro/taro.conf
LND起動
code:lnd.conf
datadir=data
logdir=log
debuglevel=info
bitcoin.testnet=1
bitcoin.active=1
bitcoin.node=bitcoind
bitcoind.rpcuser=user
bitcoind.rpcpass=pass
bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
tlsextraip=127.0.0.1
rpclisten=localhost:10011
rpclisten=localhost:10012
code:bitcoin.conf
testnet=3
txindex=1
rpcuser=user
rpcpassword=pass
# lnd
server=1
daemon=1
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
code:tapd 起動
~/develop/taproot-assets $tapd –network=testnet –debuglevel=debug —lnd.host=localhost:10009 --rpclisten=127.0.0.1:10029 --restlisten=127.0.0.1:8089 --lnd.macaroonpath=~/develop/lnd/data/chain/bitcoin/testnet/admin.macaroon
2023-05-29 19:56:56.360 INF CONF: Opening sqlite3 database at: /Users/fukataryouta/Library/Application Support/Taro/data/testnet/taro.db 2023-05-29 19:56:56.452 INF CONF: Attempting to establish connection to lnd... 2023-05-29 19:57:11.674 INF CONF: lnd connection initialized 2023-05-29 19:57:11.682 INF SRVR: Version: 0.1.99-alpha commit=v0.1.1-alpha-223-g079bc59, build=production, logging=default, debuglevel=info 2023-05-29 19:57:11.682 INF SRVR: Active network: testnet3 2023-05-29 19:57:11.685 INF RPCS: Validating RPC requests based on macaroon at: /Users/fukataryouta/Library/Application Support/Taro/data/testnet/admin.macaroon 2023-05-29 19:57:11.688 INF RPCS: RPC server listening on 127.0.0.1:10029 2023-05-29 19:57:11.691 INF RPCS: gRPC proxy started at 127.0.0.1:8089 2023-05-29 19:57:11.691 INF GRDN: Starting ChainPlanter 2023-05-29 19:57:11.721 INF GRDN: Retrieved 1 non-finalized batches from DB 2023-05-29 19:57:11.721 INF GRDN: Launching ChainCaretaker(030763b84de2c3a8f8937f526f2b16074b982d7aee49952083be39bff542d9054d) 2023-05-29 19:57:11.721 INF GRDN: Starting asset custodian アセットの発行
code:assets
# 発行するアセットの供給量と名前を決める
~/develop/lnd $tapcli assets mint --type normal --name fantasycoin --supply 100 --meta_bytes "fantastic money"
{
"batch_key": "03c2eea2075aa5b26ce2b0c93f2773e546614420030ec2bcbf8af9302ff276c0dc"
}
# バッチ処理を実行してアセットを発行する
~/develop/lnd $tapcli assets mint finalize
{
"batch_key": "03c2eea2075aa5b26ce2b0c93f2773e546614420030ec2bcbf8af9302ff276c0dc"
}
# キューになにもない場合は以下のエラーがでる
~/develop/lnd $tapcli assets mint finalize
tapcli unable to finalize batch: rpc error: code = Unknown desc = unable to finalize batch: no pending batch # 発行したアセットを確認
~/develop/lnd $tapcli assets list
{
"assets": [
{
"version": 0,
"asset_genesis": {
"genesis_point": "16f70d3e6836e634f53506a830880658fc1fda8c6b8394bef5c9db84ae5fb632:1",
"name": "fantasycoin",
"meta_hash": "04e552053fd4c8e2c01bc14cb9a0ce00f07d4ffdffff68fe455c70b934b22a43",
"asset_id": "cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0",
"output_index": 0,
"version": 0
},
"asset_type": "NORMAL",
"amount": "100",
"lock_time": 0,
"relative_lock_time": 0,
"script_version": 0,
"script_key": "02d7859fe44f3980c93013237b36da64a4a2d0616c23d35a95e4d4d763a1a160c2",
"script_key_is_local": true,
"asset_group": null,
"chain_anchor": {
"anchor_tx": "0200000000010132b65fae84dbc9f5be94836b8cda1ffc58068830a80635f534e636683e0df7160100000000ffffffff02e8030000000000002251205117a8fda65f19e0f346d402645ac8235e2ec72788c24c9b6431dcf073dfc0bc7c2f0f0000000000225120edfaaba246bd77ed757f70c93391b0f9032764bdc94805c315ba8ebaecb9471b02483045022100eda6e9355e4b0b3e6026eab676a50187b9e0d964d1018f67737bb48939febbcd02201e6c627226fcd200165379bb8e8e4a97b0e60f23827bb94d2327ec18d30b48890121023b81b5bf62fea3b4649b99d5af3f39213d022dc5b457e0926e97fe27ad254e4700000000",
"anchor_txid": "3d8bbd8750be559f16cdefa12f373059e0af8f05be2118da9d7125cf192fbc76",
"anchor_block_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"anchor_outpoint": "3d8bbd8750be559f16cdefa12f373059e0af8f05be2118da9d7125cf192fbc76:0",
"internal_key": "03c2eea2075aa5b26ce2b0c93f2773e546614420030ec2bcbf8af9302ff276c0dc",
"merkle_root": "b1b6e1f18dd48e52734a7a2555f63fb4eb6ef699ee88508e9902b8746d2dac1a",
"tapscript_sibling": null
},
"prev_witnesses": [
],
"is_spent": false
}
]
}
# エクスプローラーで確認
同期中のアセットを確認
code:同期アセット
# 多分デフォルトで設定されているものが表示されている
~/develop/lnd $tapcli universe roots
{
"universe_roots": {
"0f060ef4e886a515767e864587fda07fb48eda2e3634c2b44d2c5a008b688a11": {
"id": {
"asset_id": "0f060ef4e886a515767e864587fda07fb48eda2e3634c2b44d2c5a008b688a11"
},
"mssmt_root": {
"root_hash": "e09cc2d83debfc1c63439967101ad656c5c4e2ce4708c08f2f763b4607370016",
"root_sum": "100"
},
"asset_name": "fantasycoin"
},
"29e1ddeff47713d48cc60c899a72f4261d9a0ccb7f828bd4a64abb2476cf197e": {
"id": {
"asset_id": "29e1ddeff47713d48cc60c899a72f4261d9a0ccb7f828bd4a64abb2476cf197e"
},
"mssmt_root": {
"root_hash": "999b9660e10dfb3cf54d801e85ed749f374630a846a2f1f207c950d3a0fa0c61",
"root_sum": "10000"
},
"asset_name": "doge"
},
"4849b6f222763b53f8040ddca8a4833655661a9eb47ac458c07733afe128de36": {
"id": {
"asset_id": "4849b6f222763b53f8040ddca8a4833655661a9eb47ac458c07733afe128de36"
},
"mssmt_root": {
"root_hash": "df1e30b6abc690c764f04927963b0d2e17768a627e5f30c45b2ab5256633518d",
"root_sum": "100"
},
"asset_name": "tapd"
},
"f84238ffd7838b663f1800d8147c9338f15688b430f6e9d8d53f148049ef3bcb": {
"id": {
"asset_id": "f84238ffd7838b663f1800d8147c9338f15688b430f6e9d8d53f148049ef3bcb"
},
"mssmt_root": {
"root_hash": "5dd55a792512fce816bb744c0178617b5a92c22b297197c0360bba074935b3d2",
"root_sum": "10000"
},
"asset_name": "tapsouvenir"
}
}
}
送金テスト
code:send
~/develop/lnd $tapcli addrs new --asset_id cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0 --amt 21
{
"encoded": "taptb1qqqsqq3qe6avqazh87zn7vyuer0wg25vdkm3h4fr7he5wppdxc9jh7mqdxcqgggz0qy6sger0agyltyms44zk8q08n0jkn3qzt5tzwwmk88zy8tla57svggzcun48dtxtj9k8289050vcgs5wurttwneax88ak6yx74zhp5cdnhqsqg4nexqzl",
"asset_id": "cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0",
"asset_type": "NORMAL",
"amount": "21",
"group_key": null,
"script_key": "027809a823237f504fac9b856a2b1c0f3cdf2b4e2012e8b139dbb1ce221d7fed3d",
"internal_key": "02c72753b5665c8b63a8e57d1ecc22147706b5ba79e98e7edb4437aa2b86986cee",
"tapscript_sibling": null,
"taproot_output_key": "75ed55a0ce5155c651ff0840b37c9536da3da3db8b7eabdd148a09d2b0901550"
}
# 送金しようとしたがエラーが発生
~/develop/lnd $tapcli assets send --addr taptb1qqqsqq3qe6avqazh87zn7vyuer0wg25vdkm3h4fr7he5wppdxc9jh7mqdxcqgggz0qy6sger0agyltyms44zk8q08n0jkn3qzt5tzwwmk88zy8tla57svggzcun48dtxtj9k8289050vcgs5wurttwneax88ak6yx74zhp5cdnhqsqg4nexqzl
tapcli unable to send assets: rpc error: code = Unknown desc = unable to fund address send: cannot fetch proof for input asset: unable to find proof アセットの同期
code:新規同期
~/develop/lnd $tapcli universe sync --universe_host 127.0.0.1
{
"synced_universes": [
]
}
~/develop/lnd $tapcli universe federation add --universe_host 127.0.0.1
{
}
# さっきはなかった cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0 が追加されていた
~/develop/lnd $tapcli universe roots
{
"universe_roots": {
"0f060ef4e886a515767e864587fda07fb48eda2e3634c2b44d2c5a008b688a11": {
"id": {
"asset_id": "0f060ef4e886a515767e864587fda07fb48eda2e3634c2b44d2c5a008b688a11"
},
"mssmt_root": {
"root_hash": "e09cc2d83debfc1c63439967101ad656c5c4e2ce4708c08f2f763b4607370016",
"root_sum": "100"
},
"asset_name": "fantasycoin"
},
"29e1ddeff47713d48cc60c899a72f4261d9a0ccb7f828bd4a64abb2476cf197e": {
"id": {
"asset_id": "29e1ddeff47713d48cc60c899a72f4261d9a0ccb7f828bd4a64abb2476cf197e"
},
"mssmt_root": {
"root_hash": "999b9660e10dfb3cf54d801e85ed749f374630a846a2f1f207c950d3a0fa0c61",
"root_sum": "10000"
},
"asset_name": "doge"
},
"4849b6f222763b53f8040ddca8a4833655661a9eb47ac458c07733afe128de36": {
"id": {
"asset_id": "4849b6f222763b53f8040ddca8a4833655661a9eb47ac458c07733afe128de36"
},
"mssmt_root": {
"root_hash": "df1e30b6abc690c764f04927963b0d2e17768a627e5f30c45b2ab5256633518d",
"root_sum": "100"
},
"asset_name": "tapd"
},
"cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0": {
"id": {
"asset_id": "cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0"
},
"mssmt_root": {
"root_hash": "3be87b6a0998eda3d6b9d4f29d82f5e30bc5794ccae172320a5ac25d6fae50b5",
"root_sum": "100"
},
"asset_name": "fantasycoin"
},
"f84238ffd7838b663f1800d8147c9338f15688b430f6e9d8d53f148049ef3bcb": {
"id": {
"asset_id": "f84238ffd7838b663f1800d8147c9338f15688b430f6e9d8d53f148049ef3bcb"
},
"mssmt_root": {
"root_hash": "5dd55a792512fce816bb744c0178617b5a92c22b297197c0360bba074935b3d2",
"root_sum": "10000"
},
"asset_name": "tapsouvenir"
}
}
}
再度送金テスト
code:send
~/develop/lnd $tapcli assets send --addr taptb1qqqsqq3qe6avqazh87zn7vyuer0wg25vdkm3h4fr7he5wppdxc9jh7mqdxcqgggz0qy6sger0agyltyms44zk8q08n0jkn3qzt5tzwwmk88zy8tla57svggzcun48dtxtj9k8289050vcgs5wurttwneax88ak6yx74zhp5cdnhqsqg4nexqzl
{
"transfer": {
"transfer_timestamp": "1684753069",
"anchor_tx_hash": "0335508181f925cf4fcc36598950d4318e479efc010ff95bcdd216d466f16ec5",
"anchor_tx_height_hint": 2434784,
"anchor_tx_chain_fees": "257",
"inputs": [
{
"anchor_point": "3d8bbd8750be559f16cdefa12f373059e0af8f05be2118da9d7125cf192fbc76:0",
"asset_id": "cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0",
"script_key": "02d7859fe44f3980c93013237b36da64a4a2d0616c23d35a95e4d4d763a1a160c2",
"amount": "100"
}
],
"outputs": [
{
"anchor": {
"outpoint": "c56ef166d416d2cd5bf90f01fc9e478e31d450895936cc4fcf25f98181503503:0",
"value": "1000",
"internal_key": "024605ddc7095cc7a26bfc1656467f4a3e263aeb6896dbcf01a8cd9e35d325dfb0",
"taproot_asset_root": "79a15948392a47fd057be7acf362a9445c7bc8d66697ba55618df98019e06cbc",
"merkle_root": "79a15948392a47fd057be7acf362a9445c7bc8d66697ba55618df98019e06cbc",
"tapscript_sibling": null,
"num_passive_assets": 0
},
"script_key": "023c9f77b227da0417ef721f58a51b425ceff7899d0747b1974826f4ffc33fd7f6",
"script_key_is_local": true,
"amount": "79",
"new_proof_blob": "002476bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd01630200000000010276bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d0100000000ffffffff76bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d00000000000000000003e803000000000000225120359027d075d44f48b8bab9bcfd2ce610f5d2a8960e09a70aad67886b83c8f14be80300000000000022512075ed55a0ce5155c651ff0840b37c9536da3da3db8b7eabdd148a09d2b0901550932a0f00000000002251205eb60c4c6472e40d66d1eeee3672306b6dbdcf7aeabbf56d6404bc9422669b340140513b8fc1b087cd8312e43e81ef3f44708cf254b2a311ba921c14d14729918444b2431403819831dfc0b21b7c6185f0e3778c2a0e11f4d10f7778884889b50605014077106dc9e8ef616fc58dc53f5550cbc1399863cda52f747a8a9d6ccf144a965bb755209c622c57adacbdaecc2c46ae6eeab0fc86fc28a37b26ad94a5d13ccb360000000003010004fd0160000100015532b65fae84dbc9f5be94836b8cda1ffc58068830a80635f534e636683e0df716000000010b66616e74617379636f696e04e552053fd4c8e2c01bc14cb9a0ce00f07d4ffdffff68fe455c70b934b22a43000000000002010003014f06ad01ab006576bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d00000000cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b002d7859fe44f3980c93013237b36da64a4a2d0616c23d35a95e4d4d763a1a160c201420140554e927b60d16668e3f4cfccdec51b9b871292d76fc58641bbfa11127b50bb4336d1c88816c494bdac44462e929f19c670e0ebc2fefd457de64c61aa289f1dcd07281d2c80c8ddd2d307c370775c9e7cc76dfeadc8a7c8333e9ee88f184ab5aacf1b0000000000000064080200000921023c9f77b227da0417ef721f58a51b425ceff7899d0747b1974826f4ffc33fd7f6059f0004000000000121024605ddc7095cc7a26bfc1656467f4a3e263aeb6896dbcf01a8cd9e35d325dfb0027400490001000120cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b002220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000001012102c72753b5665c8b63a8e57d1ecc22147706b5ba79e98e7edb4437aa2b86986cee029c00710001000120cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0024a0001b7a0f9eb37536e4f2e51743954047bf1691eae24cd556685d0438e4b77ff6bdc0000000000000015ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e00040000000201210290a88dcabf1c4626977b9f47253fa97ec435077c934494b651849cef639c0f950303020101",
"split_commit_root_hash": "1d2c80c8ddd2d307c370775c9e7cc76dfeadc8a7c8333e9ee88f184ab5aacf1b",
"output_type": "OUTPUT_TYPE_SPLIT_ROOT"
},
{
"anchor": {
"outpoint": "c56ef166d416d2cd5bf90f01fc9e478e31d450895936cc4fcf25f98181503503:1",
"value": "1000",
"internal_key": "02c72753b5665c8b63a8e57d1ecc22147706b5ba79e98e7edb4437aa2b86986cee",
"taproot_asset_root": "cad3584092f4bee9c998cc34450f5f68a59161b9c7f730f977bbc888fb2a24df",
"merkle_root": "cad3584092f4bee9c998cc34450f5f68a59161b9c7f730f977bbc888fb2a24df",
"tapscript_sibling": null,
"num_passive_assets": 0
},
"script_key": "027809a823237f504fac9b856a2b1c0f3cdf2b4e2012e8b139dbb1ce221d7fed3d",
"script_key_is_local": true,
"amount": "21",
"new_proof_blob": "002476bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd01630200000000010276bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d0100000000ffffffff76bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d00000000000000000003e803000000000000225120359027d075d44f48b8bab9bcfd2ce610f5d2a8960e09a70aad67886b83c8f14be80300000000000022512075ed55a0ce5155c651ff0840b37c9536da3da3db8b7eabdd148a09d2b0901550932a0f00000000002251205eb60c4c6472e40d66d1eeee3672306b6dbdcf7aeabbf56d6404bc9422669b340140513b8fc1b087cd8312e43e81ef3f44708cf254b2a311ba921c14d14729918444b2431403819831dfc0b21b7c6185f0e3778c2a0e11f4d10f7778884889b50605014077106dc9e8ef616fc58dc53f5550cbc1399863cda52f747a8a9d6ccf144a965bb755209c622c57adacbdaecc2c46ae6eeab0fc86fc28a37b26ad94a5d13ccb360000000003010004fd02a8000100015532b65fae84dbc9f5be94836b8cda1ffc58068830a80635f534e636683e0df716000000010b66616e74617379636f696e04e552053fd4c8e2c01bc14cb9a0ce00f07d4ffdffff68fe455c70b934b22a43000000000002010003011506fd021d01fd02190065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01ae4a0001f7af8ced57d1fff38389931c97ed765a42c3206752dc36b829a84c65b3975cba000000000000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffd0160000100015532b65fae84dbc9f5be94836b8cda1ffc58068830a80635f534e636683e0df716000000010b66616e74617379636f696e04e552053fd4c8e2c01bc14cb9a0ce00f07d4ffdffff68fe455c70b934b22a43000000000002010003014f06ad01ab006576bc2f19cf25719dda1821be058fafe05930372fa1efcd169f55be5087bd8b3d00000000cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b002d7859fe44f3980c93013237b36da64a4a2d0616c23d35a95e4d4d763a1a160c201420140554e927b60d16668e3f4cfccdec51b9b871292d76fc58641bbfa11127b50bb4336d1c88816c494bdac44462e929f19c670e0ebc2fefd457de64c61aa289f1dcd07281d2c80c8ddd2d307c370775c9e7cc76dfeadc8a7c8333e9ee88f184ab5aacf1b0000000000000064080200000921023c9f77b227da0417ef721f58a51b425ceff7899d0747b1974826f4ffc33fd7f6080200000921027809a823237f504fac9b856a2b1c0f3cdf2b4e2012e8b139dbb1ce221d7fed3d059f000400000001012102c72753b5665c8b63a8e57d1ecc22147706b5ba79e98e7edb4437aa2b86986cee027400490001000120cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b002220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c70004000000000121024605ddc7095cc7a26bfc1656467f4a3e263aeb6896dbcf01a8cd9e35d325dfb0029c00710001000120cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b0024a00014d3c6f9df0e52532425a9f127767c98e0be141398cf829f695d160a8f0e008f8000000000000004fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e00040000000201210290a88dcabf1c4626977b9f47253fa97ec435077c934494b651849cef639c0f950303020101079f0004000000000121024605ddc7095cc7a26bfc1656467f4a3e263aeb6896dbcf01a8cd9e35d325dfb0027400490001000120cebac074573f853f309cc8dee42a8c6db71bd523f5f347042d360b2bfb6069b002220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"split_commit_root_hash": null,
"output_type": "OUTPUT_TYPE_SIMPLE"
}
]
}
}
# エクスプローラーでも送金が確認できた
以上の流れで送金ができることがわかった。
送金でよくわからなかったこと
universeとfederation
universe コマンドでアセット情報を同期
federation コマンドでアセット情報の交換を定期実行
ユニバースと同期する
Taproot Assetsは、どの資産が存在し、ブロックチェーンのどこに固定されているかという情報を伝達するためにユニバースを使用します。ユニバースは、仮想のmempool、エクスプローラー、リポジトリと考えることができます。
Tapdはユニバースを実行するのに必要なソフトウェアをバンドルしており、誰でもユニバースを実行したり、他の人とピアツーピアで接続したりすることができます。通常、アセット転送を依頼したり、Taproot Assetアドレスを作成する前に、受信者はユニバースと同期して、存在するすべてのアセット、特定のアセットID、グループキーに関する情報を取得する。
以下の例では、同じマシンのポート10029で実行されているuniverseからアセットのリストを取得しています。
tapcli universe sync --universe_host 127.0.0.1:10029
同期に成功すると、既存のアセットに関する情報が、その発行証明とともに取得されるはずです。作成したアセットに関する情報をプッシュするには、このユニバースをローカルフェデレーションに追加する必要があります。
ユニバースの運営とユニバース・フェデレーション
universeの実行は、tapdを実行するのと同じくらい簡単です。universeを実行するには、インスタンスがRPCポート(10029)をリッスンするように設定し、このポートがあなたのマシンで開いていることを確認します。しかし、一般に到達可能であることは、universeの要件ではありません。universeはプライベートネットワーク上のリソースにしか提供できないか、そうでなければ制限されるかもしれません。
tapd --rpclisten 0.0.0.0:10029
ユニバースとして、あなたはフェデレーションと呼ばれる他のユニバースと同期することを選択できます。各クライアントは自分のフェデレーションを定義します。つまり、定期的に同期して、新しく作成したり転送したりしたアセットに関する情報を交換するユニバースのセットを定義します。
tapcli universe federation add --universe_host testnet.universe.lightning.finance
送金前にアドレスを作成するがインボイス作成のように送金額を指定するところがあったが毎回必要?
必要だった。Taproot Assetsでのアドレスはインボイスと同じような扱い。
アセットを送信するには、受信者の Taproot Assets アドレスが必要です。この Taproot Assets アドレスは資産と金額に固有なので、アドレスを生成するには、受信者が資産の asset_id を知っている必要があり、さらに発行者のユニバースに同期している必要があります。Taproot Assets のアドレスの再利用は避けるべきでしょう。
Taproot Assetsのアドレスを生成する場合、受信者は期待するMerkleツリーを作成し、それを使ってTaprootキーを調整する。出来上がったキーはTaprootアドレスに変換され、受信者はそこでトランザクションの着信を待ちます。
21 beefbuxを要求するTaproot Assetsアドレスを生成するには、次のコマンドを使用します:
tapcli addrs new --asset_id 86b5a81b1fd54b173c378ab67ac70860803274499bd3da707074b222315690e2 --amt 21
マークルツリーの扱いについて
アドレス生成時とアセット送金時に作成をするっぽい
同タイミングでアドレス生成などが行われても問題ない?