This may be useful for blockchain explorers.
[RPC] Add transaction size to JSON output #7072
pull Har01d wants to merge 1 commits into bitcoin:master from Har01d:master changing 2 files +4 −0-
Har01d commented at 2:38 AM on November 21, 2015: contributor
-
jonasschnelli commented at 7:57 AM on November 21, 2015: contributor
Not sure if this is really useful, because in both cases you know the size already by hexlen/2.
decoderawtrandaction-> you pass a hexstring so you know the size already.gettransactionsize = result['hex']/2.But no strong opinion.
- jonasschnelli added the label RPC on Nov 21, 2015
-
Har01d commented at 8:21 AM on November 21, 2015: contributor
@jonasschnelli, it's helpful when one uses REST API (
/rest/block/{blockhash}.jsonor/rest/tx/{txid}.json), since there's no hex strings for transactions. Yes, you can use/rest/tx/{txid}.hexor/rest/tx/{txid}.binfor calculating the size, but that would be an additional query per transaction. -
jonasschnelli commented at 8:59 AM on November 21, 2015: contributor
Agreed. Over RPC/JSON it can be useful.
utACK.
-
dcousens commented at 10:30 AM on November 21, 2015: contributor
ACK
-
tulip0 commented at 1:07 PM on November 21, 2015: none
>>> import requests >>> requests.get("http://127.1:8332/rest/tx/6421d0b4dd71b0a823eb597cc5412b0af9f33bc456fb85c23b9ffe2eb18a7067.json").json()['size'] 120Field seems to be useful.
-
pstratem commented at 9:40 PM on November 22, 2015: contributor
concept ACK
-
laanwj commented at 10:42 AM on November 26, 2015: member
Needs to be tested in one of the RPC tests
-
sipa commented at 3:41 PM on November 26, 2015: member
utACK, but needs an RPC test indeed.
-
paveljanik commented at 11:47 AM on November 28, 2015: contributor
ACK
For a test, you can use this change:
diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 2a486f0..79d7fec 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -74,6 +74,7 @@ BOOST_AUTO_TEST_CASE(rpc_rawparams) BOOST_CHECK_NO_THROW(r = CallRPC(string("decoderawtransaction ")+rawtx)); BOOST_CHECK_EQUAL(find_value(r.get_obj(), "version").get_int(), 1); BOOST_CHECK_EQUAL(find_value(r.get_obj(), "locktime").get_int(), 0); + BOOST_CHECK_EQUAL(find_value(r.get_obj(), "size").get_int(), 193); BOOST_CHECK_THROW(r = CallRPC(string("decoderawtransaction ")+rawtx+" extra"), runtime_error); BOOST_CHECK_THROW(CallRPC("signrawtransaction"), runtime_error); -
Har01d commented at 12:58 PM on November 28, 2015: contributor
Thanks @paveljanik, I've added the test.
-
paveljanik commented at 1:04 PM on November 28, 2015: contributor
And now, squash everything in one commit.
-
996d3117c7
[RPC] Add transaction size to JSON output
This may be useful for blockchain explorers.
- Har01d force-pushed on Nov 28, 2015
-
Har01d commented at 5:22 PM on November 28, 2015: contributor
@paveljanik, done.
-
paveljanik commented at 5:38 PM on November 28, 2015: contributor
perfect now, reACK
$ curl localhost:18332/rest/tx/00b308619c0cfae71a1375ac75353aab8fda9564be2fb29d146ce5ba7e75c687.json 2>/dev/null | json_pp { "vout" : [ { "n" : 0, "scriptPubKey" : { "addresses" : [ "mhTohtQAoCemEZrMj6gYxwyRMQ5AH7DrmB" ], "type" : "pubkeyhash", "hex" : "76a9141557d578c41e5e5954b6ccf792eef781fce1a41188ac", "reqSigs" : 1, "asm" : "OP_DUP OP_HASH160 1557d578c41e5e5954b6ccf792eef781fce1a411 OP_EQUALVERIFY OP_CHECKSIG" }, "value" : 0.88936742 }, { "n" : 1, "scriptPubKey" : { "addresses" : [ "mn1cNcrQuHoRjGgDzQJWynca75VaVZjVXB" ], "type" : "pubkeyhash", "hex" : "76a914473c3029a6cd2fea28653fe0e2cfe0df44ad995a88ac", "reqSigs" : 1, "asm" : "OP_DUP OP_HASH160 473c3029a6cd2fea28653fe0e2cfe0df44ad995a OP_EQUALVERIFY OP_CHECKSIG" }, "value" : 0.12 } ], "txid" : "00b308619c0cfae71a1375ac75353aab8fda9564be2fb29d146ce5ba7e75c687", "version" : 1, "vin" : [ { "vout" : 1, "sequence" : 4294967294, "txid" : "8cb542fb7930f93bcd83df0825f66e8334009fd411abed7ce4ab420d049ea6c0", "scriptSig" : { "hex" : "483045022100caa46f920976fbed34bc0b5dbeddeb3dca66360ed10dfd9898a09dbce0cd7627022019f999fa2388f5bbc48858446eb6fb281ea92f3815c5e940f3ead9396a8f442c012103c9ac0648e7f79ef5ccae4a09da0d8ea4ba17a60e5359e46de3c226e1abafa168", "asm" : "3045022100caa46f920976fbed34bc0b5dbeddeb3dca66360ed10dfd9898a09dbce0cd7627022019f999fa2388f5bbc48858446eb6fb281ea92f3815c5e940f3ead9396a8f442c[ALL] 03c9ac0648e7f79ef5ccae4a09da0d8ea4ba17a60e5359e46de3c226e1abafa168" } } ], "locktime" : 607711, "size" : 226 } $ btctest decoderawtransaction 0100000001c0a69e040d42abe47cedab11d49f0034836ef62508df83cd3bf93079fb42b58c010000006b483045022100caa46f920976fbed34bc0b5dbeddeb3dca66360ed10dfd9898a09dbce0cd7627022019f999fa2388f5bbc48858446eb6fb281ea92f3815c5e940f3ead9396a8f442c012103c9ac0648e7f79ef5ccae4a09da0d8ea4ba17a60e5359e46de3c226e1abafa168feffffff0226114d05000000001976a9141557d578c41e5e5954b6ccf792eef781fce1a41188ac001bb700000000001976a914473c3029a6cd2fea28653fe0e2cfe0df44ad995a88acdf450900 { "txid": "00b308619c0cfae71a1375ac75353aab8fda9564be2fb29d146ce5ba7e75c687", "size": 226, "version": 1, "locktime": 607711, "vin": [ { "txid": "8cb542fb7930f93bcd83df0825f66e8334009fd411abed7ce4ab420d049ea6c0", "vout": 1, "scriptSig": { "asm": "3045022100caa46f920976fbed34bc0b5dbeddeb3dca66360ed10dfd9898a09dbce0cd7627022019f999fa2388f5bbc48858446eb6fb281ea92f3815c5e940f3ead9396a8f442c[ALL] 03c9ac0648e7f79ef5ccae4a09da0d8ea4ba17a60e5359e46de3c226e1abafa168", "hex": "483045022100caa46f920976fbed34bc0b5dbeddeb3dca66360ed10dfd9898a09dbce0cd7627022019f999fa2388f5bbc48858446eb6fb281ea92f3815c5e940f3ead9396a8f442c012103c9ac0648e7f79ef5ccae4a09da0d8ea4ba17a60e5359e46de3c226e1abafa168" }, "sequence": 4294967294 } ], "vout": [ { "value": 0.88936742, "n": 0, "scriptPubKey": { "asm": "OP_DUP OP_HASH160 1557d578c41e5e5954b6ccf792eef781fce1a411 OP_EQUALVERIFY OP_CHECKSIG", "hex": "76a9141557d578c41e5e5954b6ccf792eef781fce1a41188ac", "reqSigs": 1, "type": "pubkeyhash", "addresses": [ "mhTohtQAoCemEZrMj6gYxwyRMQ5AH7DrmB" ] } }, { "value": 0.12000000, "n": 1, "scriptPubKey": { "asm": "OP_DUP OP_HASH160 473c3029a6cd2fea28653fe0e2cfe0df44ad995a OP_EQUALVERIFY OP_CHECKSIG", "hex": "76a914473c3029a6cd2fea28653fe0e2cfe0df44ad995a88ac", "reqSigs": 1, "type": "pubkeyhash", "addresses": [ "mn1cNcrQuHoRjGgDzQJWynca75VaVZjVXB" ] } } ] } $ -
sipa commented at 5:39 PM on November 28, 2015: member
ACK
-
MarcoFalke commented at 6:16 PM on November 28, 2015: member
utACK 996d311
-
gmaxwell commented at 6:59 AM on December 1, 2015: contributor
ACK.
- gmaxwell merged this on Dec 1, 2015
- gmaxwell closed this on Dec 1, 2015
- gmaxwell referenced this in commit c143c499c8 on Dec 1, 2015
- zkbot referenced this in commit 94cf4a4946 on Sep 28, 2020
- MarcoFalke locked this on Sep 8, 2021