-
Notifications
You must be signed in to change notification settings - Fork 137
Description
I'm trying to run https://github.com/lightninglabs/tapdvalidation with lightninglabs/lightning-terminal#987. I previously had to add --taproot-assets.proofcourieraddr=universerpc://alice:8443 as a workaround to #1483 to get bob to sync universes with alice. However, I'm now getting the following issue when george is trying to use SyncUniverse to get proofs from bob:
controller-1 | alice funding a f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea channel with bob
controller-1 | alice connecting to bob
controller-1 | syncing the universe of bob to alice (172.99.0.4:8443)
controller-1 | done syncing universe
controller-1 | mining 10 blocks
controller-1 | bob funding a normal sats channel with charlie
controller-1 | bob connecting to charlie
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | charlie funding a normal sats channel with dave
controller-1 | charlie connecting to dave
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | dave funding a normal sats channel with edward
controller-1 | dave connecting to edward
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | alice sending 500000000 of f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea to bob on chain
controller-1 | syncing the universe of bob to alice (172.99.0.4:8443)
controller-1 | mining 10 blocks
controller-1 | bob funding a f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea channel with george
controller-1 | bob connecting to george
controller-1 | syncing the universe of george to bob (172.99.0.5:8443)
controller-1 | unknown
controller-1 | ERROR MESSAGE: unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-308c4a82da14ef62bf0c42dc901c17d94c65042c0f261e86212f9c1a1c9f17eb
controller-1 | , leaf_key=(universe.BaseLeafKey) {
controller-1 | OutPoint: (wire.OutPoint) 0b5642f0c10208bd540e2bf251a90eee2e0be3a9f26011e58087266c2b34dc69:0,
controller-1 | ScriptKey: (*asset.ScriptKey)(0xc0047e08f0)({
controller-1 | PubKey: (*secp256k1.PublicKey)(0xc0040b32c0)({
controller-1 | x: (secp256k1.FieldVal) 31254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e,
controller-1 | y: (secp256k1.FieldVal) 73076bd12d5f1967915e7e92e883587b63d1f2036d581701e5104c8e9dd22fb8
controller-1 | }),
controller-1 | TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
controller-1 | })
controller-1 | }
controller-1 | , new_script_key=0250aaeb166f4234650d84a2d8a130987aeaf6950206e0905401ee74ff3f8d18e6
controller-1 | syncing failed, trying again
controller-1 | Traceback (most recent call last):
controller-1 | File "/mini_META/scripts/init_network", line 149, in <module>
controller-1 | OpenTaprootAssetChannel(funder='bob', peer='george', AssetID=TheAssetID, AssetCapacity=200000000)
controller-1 | File "/mini_META/scripts/mini_META_lib.py", line 549, in OpenTaprootAssetChannel
controller-1 | litd_node_objects[peer]['tapd'].sync_universe(universe_host=universe_host, sync_mode=1)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/errors.py", line 50, in wrapper
controller-1 | raise exc
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/errors.py", line 26, in wrapper
controller-1 | return fnc(*args, **kwargs)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/universe.py", line 20, in sync_universe
controller-1 | response = self.get_universe_stub().SyncUniverse(request)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/grpc/_channel.py", line 1181, in __call__
controller-1 | return _end_unary_response_blocking(state, call, False, None)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking
controller-1 | raise _InactiveRpcError(state) # pytype: disable=not-instantiable
controller-1 | grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
controller-1 | status = StatusCode.UNKNOWN
controller-1 | details = "unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-308c4a82da14ef62bf0c42dc901c17d94c65042c0f261e86212f9c1a1c9f17eb
controller-1 | , leaf_key=(universe.BaseLeafKey) {
controller-1 | OutPoint: (wire.OutPoint) 0b5642f0c10208bd540e2bf251a90eee2e0be3a9f26011e58087266c2b34dc69:0,
controller-1 | ScriptKey: (*asset.ScriptKey)(0xc0047e08f0)({
controller-1 | PubKey: (*secp256k1.PublicKey)(0xc0040b32c0)({
controller-1 | x: (secp256k1.FieldVal) 31254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e,
controller-1 | y: (secp256k1.FieldVal) 73076bd12d5f1967915e7e92e883587b63d1f2036d581701e5104c8e9dd22fb8
controller-1 | }),
controller-1 | TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
controller-1 | })
controller-1 | }
controller-1 | , new_script_key=0250aaeb166f4234650d84a2d8a130987aeaf6950206e0905401ee74ff3f8d18e6"
controller-1 | debug_error_string = "UNKNOWN:Error received from peer ipv4:172.99.0.10:8443 {grpc_message:"unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-308c4a82da14ef62bf0c42dc901c17d94c65042c0f261e86212f9c1a1c9f17eb\n, leaf_key=(universe.BaseLeafKey) {\n OutPoint: (wire.OutPoint) 0b5642f0c10208bd540e2bf251a90eee2e0be3a9f26011e58087266c2b34dc69:0,\n ScriptKey: (*asset.ScriptKey)(0xc0047e08f0)({\n PubKey: (*secp256k1.PublicKey)(0xc0040b32c0)({\n x: (secp256k1.FieldVal) 31254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e,\n y: (secp256k1.FieldVal) 73076bd12d5f1967915e7e92e883587b63d1f2036d581701e5104c8e9dd22fb8\n }),\n TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)\n })\n}\n, new_script_key=0250aaeb166f4234650d84a2d8a130987aeaf6950206e0905401ee74ff3f8d18e6", grpc_status:2, created_time:"2025-04-24T05:26:49.450618885-04:00"}"
controller-1 | >
This error did not come up in previous versions of litd/tapd/lnd.
I'm struggling to even find the error message in the taproot-assets source code.
If I jump into george and try to do the same thing with tapcli I get the same kind of error
1280e18e0083:/$ tapcli universe sync --universe_host=172.99.0.5:8443 --proof_type='transfer' --asset_id=f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea
[tapcli] rpc error: code = Unknown desc = unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-308c4a82da14ef62bf0c42dc901c17d94c65042c0f261e86212f9c1a1c9f17eb
, leaf_key=(universe.BaseLeafKey) {
OutPoint: (wire.OutPoint) 0b5642f0c10208bd540e2bf251a90eee2e0be3a9f26011e58087266c2b34dc69:0,
ScriptKey: (*asset.ScriptKey)(0xc0044a9340)({
PubKey: (*secp256k1.PublicKey)(0xc00406efa0)({
x: (secp256k1.FieldVal) 31254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e,
y: (secp256k1.FieldVal) 73076bd12d5f1967915e7e92e883587b63d1f2036d581701e5104c8e9dd22fb8
}),
TweakedScriptKey: (*asset.TweakedScriptKey)(<nil>)
})
}
, new_script_key=0250aaeb166f4234650d84a2d8a130987aeaf6950206e0905401ee74ff3f8d18e6
1280e18e0083:/$
If I then repeat the command, but change the proof_type
1280e18e0083:/$ tapcli universe sync --universe_host=172.99.0.5:8443 --proof_type='issuance' --asset_id=f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea
{
"synced_universes": [
{
"old_asset_root": {
"id": null,
"mssmt_root": null,
"asset_name": "",
"amounts_by_asset_id": {}
},
"new_asset_root": {
"id": {
"group_key": "3d55ec3fc9561c6d96d7145a7c6a49865c601e462e3ca6896801d13bed79557b",
"proof_type": "PROOF_TYPE_ISSUANCE"
},
"mssmt_root": {
"root_hash": "1e651800389c72ea8fb3061393feeb68e48c087d98c748474b0c1d6e91d88254",
"root_sum": "210000000000000000"
},
"asset_name": "",
"amounts_by_asset_id": {}
},
"new_asset_leaves": [
{
"asset": {
"version": "ASSET_VERSION_V0",
"asset_genesis": {
"genesis_point": "65ebb74a1b62071059f9af1752d84c631cc25866a1f7ff0eb7d787dae9458378:1",
"name": "Asset1",
"meta_hash": "827c23a4b1a5f4f9a9a42e61aa7bf7bf7e7925b4723728b60ad1918d632e2b0a",
"asset_id": "f3487f9592307b8abcbaa7fb94fb2f7618141afc6269c6a8bce6b3bd03774eea",
"asset_type": "NORMAL",
"output_index": 0
},
"amount": "210000000000000000",
"lock_time": 0,
"relative_lock_time": 0,
"script_version": 0,
"script_key": "0231254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e",
"script_key_is_local": false,
"asset_group": {
"raw_group_key": "",
"tweaked_group_key": "033d55ec3fc9561c6d96d7145a7c6a49865c601e462e3ca6896801d13bed79557b",
"asset_witness": "",
"tapscript_root": ""
},
"chain_anchor": null,
"prev_witnesses": [
{
"prev_id": {
"anchor_point": "0000000000000000000000000000000000000000000000000000000000000000:0",
"asset_id": "0000000000000000000000000000000000000000000000000000000000000000",
"script_key": "000000000000000000000000000000000000000000000000000000000000000000",
"amount": "0"
},
"tx_witness": [
"2e7c5ed443304212fe58dc812feca8a138cd9fc8024528d52f968471fd98b6bc82b194b5e95485d9696918e9d3b34b272595d3e3533c9d1da91dd0d7edeaead6"
],
"split_commitment": null
}
],
"is_spent": false,
"lease_owner": "",
"lease_expiry": "0",
"is_burn": false,
"script_key_declared_known": false,
"script_key_has_script_path": false,
"decimal_display": {
"decimal_display": 3
}
},
"proof": "544150500004000000000224788345e9da87d7b70efff7a16658c21c634cd85217aff9591007621b4ab7eb6500000001045000000030b4ac8c47daf10886d315dc10e9d59c08247806e5e36b039c9c4e9f525a862d5ca21bd02706feffa5071cb9649dedcabd2a4e267e1c6dd834bff580deedb9a1dde0030a68ffff7f200000000006f602000000000101788345e9da87d7b70efff7a16658c21c634cd85217aff9591007621b4ab7eb6501000000000000000002e803000000000000225120dfdcbb8913308efcc8b7d5e11651617806283946d4707a10432f603ccda2f98b39d0f505000000002251202319e97afd161b0bf065001f08b17e7e77eb21f55552deb5d98f6d88de69b9a202473044022025cc08de64ec5befa1050525519e440a471f158cb7d39f1d9711e245c35a2e0a022023733a5f4225d9a901ef5eefca1d7a871a31d04e0763da7cf3fc438d5fb70a210121036163b766cafc52242768b14d3a9faefc232826e2f12f90876469d03015f069050000000008220171eaeb07a84472336fb15157514800bf7a2f4eb801befdcc6035ceb7efa444f3000afd015c0001000250788345e9da87d7b70efff7a16658c21c634cd85217aff9591007621b4ab7eb650000000106417373657431827c23a4b1a5f4f9a9a42e61aa7bf7bf7e7925b4723728b60ad1918d632e2b0a00000000000401000609ff02ea11e32ad500000bad01ab01650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034201402e7c5ed443304212fe58dc812feca8a138cd9fc8024528d52f968471fd98b6bc82b194b5e95485d9696918e9d3b34b272595d3e3533c9d1da91dd0d7edeaead60e02000010210231254f00de3a7e4f437491020318d5d168c3b44f586679255aa7582efa9da29e1121033d55ec3fc9561c6d96d7145a7c6a49865c601e462e3ca6896801d13bed79557b0c9f0004000000000221033fc90fbe54d4b529d90cfa5206282912d63ca45a5f9bcb973a43308e0464ce01037401490001000220308c4a82da14ef62bf0c42dc901c17d94c65042c0f261e86212f9c1a1c9f17eb04220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff022700010202220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0d30012e0004000000010221024277c805bb4df0bb05abc9e33d80592395c55066768260aea201ee33efa6582c0503040101112000010102157b22646563696d616c5f646973706c6179223a337d0504000000031604000001241750788345e9da87d7b70efff7a16658c21c634cd85217aff9591007621b4ab7eb650000000106417373657431827c23a4b1a5f4f9a9a42e61aa7bf7bf7e7925b4723728b60ad1918d632e2b0a00000000001948000102022103a6553ff1aa8bb1dc91b35e1f8428f99e6dfc3a66e39945ad9c0c22fffec677ff0420776c54fefcec5c564d69e6d844ecb5bfe2b4ff729d4fee26171093a34f2e205c"
}
]
}
]
}
1280e18e0083:/$
it works.
Then, if I change the proof type back to transfer, it also works
</details>
I've also tried to get george to sync the universe with alice, but that results in the same error:
<details>
controller-1 | alice funding a 9e23bd4b7b3704e0cecfdb292d2d7f021336907d080d6fcf31bddb20642b8add channel with bob
controller-1 | alice connecting to bob
controller-1 | syncing the universe of bob to alice (172.99.0.4:8443)
controller-1 | done syncing universe
controller-1 | mining 10 blocks
controller-1 | bob funding a normal sats channel with charlie
controller-1 | bob connecting to charlie
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | charlie funding a normal sats channel with dave
controller-1 | charlie connecting to dave
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | dave funding a normal sats channel with edward
controller-1 | dave connecting to edward
controller-1 | mining 10 blocks
controller-1 | mining 10 blocks
controller-1 | alice sending 500000000 of 9e23bd4b7b3704e0cecfdb292d2d7f021336907d080d6fcf31bddb20642b8add to bob on chain
controller-1 | syncing the universe of bob to alice (172.99.0.4:8443)
controller-1 | mining 10 blocks
controller-1 | bob funding a 9e23bd4b7b3704e0cecfdb292d2d7f021336907d080d6fcf31bddb20642b8add channel with george
controller-1 | bob connecting to george
controller-1 | syncing the universe of george to alice (172.99.0.4:8443)
controller-1 | unknown
controller-1 | ERROR MESSAGE: unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-708e8571b2ca36efc260100e9525a5c1fd165cc64a147d7ec604c1ac63e490c3
controller-1 | , leaf_key=(universe.BaseLeafKey) {
controller-1 | OutPoint: (wire.OutPoint) ec2daff7e26eb56b2940ab484431d2fca30442131d3117dfb938de91a63605ab:0,
controller-1 | ScriptKey: (*asset.ScriptKey)(0xc004c54300)({
controller-1 | PubKey: (*secp256k1.PublicKey)(0xc003eba0a0)({
controller-1 | x: (secp256k1.FieldVal) e9fa1cb15a00e37ae2c8f37b94fdf71ccad02b1ac5e7aa945ae676e3cc449d5d,
controller-1 | y: (secp256k1.FieldVal) 76ee13ef5ee1fae1e5cce7f0fedc228462bb50f020fec9608972fac92cf81cb2
controller-1 | }),
controller-1 | TweakedScriptKey: (*asset.TweakedScriptKey)()
controller-1 | })
controller-1 | }
controller-1 | , new_script_key=027a1023b5d70bb7c36cc7a16e6011c9be4667671555e88ab949cf8460acbea522
controller-1 | syncing failed, trying again
controller-1 | Traceback (most recent call last):
controller-1 | File "/mini_META/scripts/init_network", line 149, in
controller-1 | OpenTaprootAssetChannel(funder='bob', peer='george', AssetID=TheAssetID, AssetCapacity=200000000)
controller-1 | File "/mini_META/scripts/mini_META_lib.py", line 551, in OpenTaprootAssetChannel
controller-1 | litd_node_objects[peer]['tapd'].sync_universe(universe_host=universe_host, sync_mode=1)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/errors.py", line 50, in wrapper
controller-1 | raise exc
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/errors.py", line 26, in wrapper
controller-1 | return fnc(*args, **kwargs)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/lndgrpc/universe.py", line 20, in sync_universe
controller-1 | response = self.get_universe_stub().SyncUniverse(request)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/grpc/_channel.py", line 1181, in call
controller-1 | return _end_unary_response_blocking(state, call, False, None)
controller-1 | File "/usr/local/lib/python3.10/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking
controller-1 | raise _InactiveRpcError(state) # pytype: disable=not-instantiable
controller-1 | grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
controller-1 | status = StatusCode.UNKNOWN
controller-1 | details = "unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-708e8571b2ca36efc260100e9525a5c1fd165cc64a147d7ec604c1ac63e490c3
controller-1 | , leaf_key=(universe.BaseLeafKey) {
controller-1 | OutPoint: (wire.OutPoint) ec2daff7e26eb56b2940ab484431d2fca30442131d3117dfb938de91a63605ab:0,
controller-1 | ScriptKey: (*asset.ScriptKey)(0xc004c54300)({
controller-1 | PubKey: (*secp256k1.PublicKey)(0xc003eba0a0)({
controller-1 | x: (secp256k1.FieldVal) e9fa1cb15a00e37ae2c8f37b94fdf71ccad02b1ac5e7aa945ae676e3cc449d5d,
controller-1 | y: (secp256k1.FieldVal) 76ee13ef5ee1fae1e5cce7f0fedc228462bb50f020fec9608972fac92cf81cb2
controller-1 | }),
controller-1 | TweakedScriptKey: (*asset.TweakedScriptKey)()
controller-1 | })
controller-1 | }
controller-1 | , new_script_key=027a1023b5d70bb7c36cc7a16e6011c9be4667671555e88ab949cf8460acbea522"
controller-1 | debug_error_string = "UNKNOWN:Error received from peer ipv4:172.99.0.10:8443 {created_time:"2025-04-24T05:36:15.574152077-04:00", grpc_status:2, grpc_message:"unable to sync universe: unable to register proofs: unable to register proofs: unable to batch verify issuance proofs: unable to fetch previous asset snapshot: unable to fetch previous proof: no universe proof found, id=(universe.Identifier) issuance-708e8571b2ca36efc260100e9525a5c1fd165cc64a147d7ec604c1ac63e490c3\n, leaf_key=(universe.BaseLeafKey) {\n OutPoint: (wire.OutPoint) ec2daff7e26eb56b2940ab484431d2fca30442131d3117dfb938de91a63605ab:0,\n ScriptKey: (*asset.ScriptKey)(0xc004c54300)({\n PubKey: (*secp256k1.PublicKey)(0xc003eba0a0)({\n x: (secp256k1.FieldVal) e9fa1cb15a00e37ae2c8f37b94fdf71ccad02b1ac5e7aa945ae676e3cc449d5d,\n y: (secp256k1.FieldVal) 76ee13ef5ee1fae1e5cce7f0fedc228462bb50f020fec9608972fac92cf81cb2\n }),\n TweakedScriptKey: (*asset.TweakedScriptKey)()\n })\n}\n, new_script_key=027a1023b5d70bb7c36cc7a16e6011c9be4667671555e88ab949cf8460acbea522"}"
controller-1 | >
</details>