lbryio / lbcd

An alternative full node implementation of LBRY's blockchain written in Go (golang)
https://lbry.com/
ISC License
38 stars 25 forks source link

[rpc blockchain] Add support for mediantime, chainwork to RPC getblock. #73

Closed moodyjon closed 2 years ago

moodyjon commented 2 years ago

Fixes #52

There is a "fee" attribute of nested transactions that I could not implement because I can't find the TxUndo information. Don't think that feature exists in lbcd or btcd. In C++ bitcoin, it's stored on disk I think.

"fee" : n (numeric) The transaction fee in BTC, omitted if block undo data is not available

coveralls commented 2 years ago

Pull Request Test Coverage Report for Build 2713965106


Changes Missing Coverage Covered Lines Changed/Added Lines %
rpcserver.go 0 17 0.0%
blockchain/chain.go 0 25 0.0%
<!-- Total: 0 42 0.0% -->
Files with Coverage Reduction New Missed Lines %
rpcserver.go 1 0.3%
peer/peer.go 2 76.24%
<!-- Total: 3 -->
Totals Coverage Status
Change from base Build 2694325988: -0.009%
Covered Lines: 22543
Relevant Lines: 43453

💛 - Coveralls
moodyjon commented 2 years ago

lbrycrd:

Mac-mini lbcd % ./lbcctl --notls -s 18.221.146.233 -u rpcuser -P rpcpass getblock 9ee97ed1dbaf34fbf40d755ccb9a23b3074e61b1572a8135397a9f6514d741ca 1                              
{
  "hash": "9ee97ed1dbaf34fbf40d755ccb9a23b3074e61b1572a8135397a9f6514d741ca",
  "confirmations": 23954,
  "strippedsize": 27428,
  "size": 27464,
  "weight": 109748,
  "height": 1172331,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "dd27511c9ea92bea1cc4ccfea8f5deb2ff95ff33326cd9c8d4f3b208c04bc431",
  "nameclaimroot": "5afc590538ae37423c9fd1631ef426d3b4ab4fa3b3509d1c9f4bcac3fbf9a169",
  "tx": [
    "ff99a71c7b3c63e33a855ca20ee8b658fc1e52c9eb06afe81fdc7f6bfb58cf49",
    "417fb206821b962fcf1ab7f9a83e20a65edc53381607aab02cf37d4a391f3bda",
    "6aaceb5a080def8b7cba6cde4bec3e0a11520d511f92e3a9e6743b652e54759c",
    "fb1505b485866724749ccfeaaa22a655f0b17063326e6751792408bf79bfeddd",
    "aadcb689bf9d9ca6c300fed55dcb001949a5982fe2bf9ee08ca80e220836396a",
    "1c8b3f697d699cf676c36541da3ef35460b9768894a9fd8a2789be4011e7120d",
    "05332f06e7bc9f1e1890faa32a08509b61d4a542d4e79ad5850d118780d2d836",
    "f7dc5405cfca9215a921c5938360ab08301f209ad836efef6c8de5f02c053762",
    "7d6e7b0ebc07c90518d6318743194404344d9c7f660eb1a8aae8f4d8109fb498",
    "4133f4c78e9a185044f56cb39ba5728c0f1c53044ab49cdf3a3c53869661303c",
    "0b8625267fae2450ed9e1e345adc7a8aee71eb6fe7a70ab46e05eb2591d3722e",
    "c07446c23d9d9493244fc3b4052abc9421cbd246c71a313f3704c49f95b2348e",
    "92a9f99f7a6aea21a02e7ac814552a2f17b59ff43faa5467e642adbc71b2ddd0",
    "945af6df033d2121afc002a1a5073c5b47074769950bf99aeb3c73d3fd3c803b",
    "0d7aeb6f609c72c7253537cd305bd1d5fbf95c84e51babbdc2bc1c74a341c1eb",
    "4b088a77ba2b37cfcbb17b9f816aab0036a60aa2a4456763fe3fd88adfc7ac93",
    "f43a3665b0cb9739fdd5b1a4eef1bd5caa3d6038e08bab98d28e6ab88d128bb7",
    "0e7b239df566e01b1ef3448bc002960a54854c736f377b338209e8cae0709680",
    "e3128c1efe8faae4fbdffdd9e6720b7d2523302595a1430197327d9797ee03be",
    "d1bb0b7561fe1ce9a7bc039b848181e420558cd459193fd19df1735c3f611d2f",
    "c1a1c897acd375501e31ca3d5f74265fc7231306c52da42f59aab5b1f6329733",
    "c549e41da2ebdc42cdc3eb804a8a5359de40d9f629d14e7d51631869bd7dea34",
    "6638f6f5d87a4fa12fd47914a60f3ed66b9f2edca823c49a968367731a2c3d44",
    "8bbc28571f687166f9b54881522a2b47b15853b4bb86c97819333f42f324914a",
    "b82aeafc31c6e79ed989518f039fd9ae0dc6de2766bb3c08ba0d5cc53d663754",
    "95c12ab5181d212701614b7891bdcda2f7f39d42c3be23c46c305d0029ee365d",
    "eb8f765224239505451e937ffc2e62afdc46fdf593525367d9f403d260628367",
    "a692d4126b7e9da805d8a331b78966d9560ceca3699da8b99abb044b64a0946f",
    "f9df151859aa86f5e4f135fc994276ee8510895031c45a5408dba00bf8e55876",
    "1139bf7193669c4c678f02df571f5aaf65a5a83f1dc0508769f7ca837006afa4",
    "b33760a0d73e7257ee13e0316952fc5d372913147cc0c03ef5121e1610eba2a6",
    "b9fa0b1814b7bf248ba0786d3b53a59ec9bdae68c0576b9f6a252a2220963cad",
    "7e9e141a2a1cb0395411c6d77d9d7990893967a7f52951816be986f0e865aace",
    "1580fa02e7cf5b07656d64091ab5a9d57d8a05c6bbfcc28194074f9c0c771df2",
    "1ae6f3f335b775adf9267706e85b22c571668aae00126aefab8393c3f4a1e5f9"
  ],
  "time": 1654577439,
  "mediantime": 1654576797,
  "nonce": 1398139046,
  "bits": "1a00a353",
  "difficulty": 1723386059321.713,
  "chainwork": "000000000000000000000000000000000000000000000964a694729444bc7f7b",
  "nTx": 35,
  "previousblockhash": "8e1053387e1c656b6ba16aecb6385f81c3cf9e2a7e5579acc980d782d04705f9",
  "nextblockhash": "ac280c2a68c57707cc1fedbd025782c76cc2679550aa18cc5bd6e3f64c2a2769"
}

lbcd:

Mac-mini lbcd % ./lbcctl --rpcuser=.... --rpcpass=.... getblock 9ee97ed1dbaf34fbf40d755ccb9a23b3074e61b1572a8135397a9f6514d741ca 1
{
  "hash": "9ee97ed1dbaf34fbf40d755ccb9a23b3074e61b1572a8135397a9f6514d741ca",
  "confirmations": 23954,
  "strippedsize": 27428,
  "size": 27464,
  "weight": 109748,
  "height": 1172331,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "dd27511c9ea92bea1cc4ccfea8f5deb2ff95ff33326cd9c8d4f3b208c04bc431",
  "time": 1654577439,
  "mediantime": 1654576797,
  "nonce": 1398139046,
  "bits": "1a00a353",
  "difficulty": 1723386059321.7134,
  "chainwork": "964a694729444bc7f7b",
  "previousblockhash": "8e1053387e1c656b6ba16aecb6385f81c3cf9e2a7e5579acc980d782d04705f9",
  "nextblockhash": "ac280c2a68c57707cc1fedbd025782c76cc2679550aa18cc5bd6e3f64c2a2769",
  "nameclaimroot": "5afc590538ae37423c9fd1631ef426d3b4ab4fa3b3509d1c9f4bcac3fbf9a169",
  "nTx": 35,
  "tx": [
    "ff99a71c7b3c63e33a855ca20ee8b658fc1e52c9eb06afe81fdc7f6bfb58cf49",
    "417fb206821b962fcf1ab7f9a83e20a65edc53381607aab02cf37d4a391f3bda",
    "6aaceb5a080def8b7cba6cde4bec3e0a11520d511f92e3a9e6743b652e54759c",
    "fb1505b485866724749ccfeaaa22a655f0b17063326e6751792408bf79bfeddd",
    "aadcb689bf9d9ca6c300fed55dcb001949a5982fe2bf9ee08ca80e220836396a",
    "1c8b3f697d699cf676c36541da3ef35460b9768894a9fd8a2789be4011e7120d",
    "05332f06e7bc9f1e1890faa32a08509b61d4a542d4e79ad5850d118780d2d836",
    "f7dc5405cfca9215a921c5938360ab08301f209ad836efef6c8de5f02c053762",
    "7d6e7b0ebc07c90518d6318743194404344d9c7f660eb1a8aae8f4d8109fb498",
    "4133f4c78e9a185044f56cb39ba5728c0f1c53044ab49cdf3a3c53869661303c",
    "0b8625267fae2450ed9e1e345adc7a8aee71eb6fe7a70ab46e05eb2591d3722e",
    "c07446c23d9d9493244fc3b4052abc9421cbd246c71a313f3704c49f95b2348e",
    "92a9f99f7a6aea21a02e7ac814552a2f17b59ff43faa5467e642adbc71b2ddd0",
    "945af6df033d2121afc002a1a5073c5b47074769950bf99aeb3c73d3fd3c803b",
    "0d7aeb6f609c72c7253537cd305bd1d5fbf95c84e51babbdc2bc1c74a341c1eb",
    "4b088a77ba2b37cfcbb17b9f816aab0036a60aa2a4456763fe3fd88adfc7ac93",
    "f43a3665b0cb9739fdd5b1a4eef1bd5caa3d6038e08bab98d28e6ab88d128bb7",
    "0e7b239df566e01b1ef3448bc002960a54854c736f377b338209e8cae0709680",
    "e3128c1efe8faae4fbdffdd9e6720b7d2523302595a1430197327d9797ee03be",
    "d1bb0b7561fe1ce9a7bc039b848181e420558cd459193fd19df1735c3f611d2f",
    "c1a1c897acd375501e31ca3d5f74265fc7231306c52da42f59aab5b1f6329733",
    "c549e41da2ebdc42cdc3eb804a8a5359de40d9f629d14e7d51631869bd7dea34",
    "6638f6f5d87a4fa12fd47914a60f3ed66b9f2edca823c49a968367731a2c3d44",
    "8bbc28571f687166f9b54881522a2b47b15853b4bb86c97819333f42f324914a",
    "b82aeafc31c6e79ed989518f039fd9ae0dc6de2766bb3c08ba0d5cc53d663754",
    "95c12ab5181d212701614b7891bdcda2f7f39d42c3be23c46c305d0029ee365d",
    "eb8f765224239505451e937ffc2e62afdc46fdf593525367d9f403d260628367",
    "a692d4126b7e9da805d8a331b78966d9560ceca3699da8b99abb044b64a0946f",
    "f9df151859aa86f5e4f135fc994276ee8510895031c45a5408dba00bf8e55876",
    "1139bf7193669c4c678f02df571f5aaf65a5a83f1dc0508769f7ca837006afa4",
    "b33760a0d73e7257ee13e0316952fc5d372913147cc0c03ef5121e1610eba2a6",
    "b9fa0b1814b7bf248ba0786d3b53a59ec9bdae68c0576b9f6a252a2220963cad",
    "7e9e141a2a1cb0395411c6d77d9d7990893967a7f52951816be986f0e865aace",
    "1580fa02e7cf5b07656d64091ab5a9d57d8a05c6bbfcc28194074f9c0c771df2",
    "1ae6f3f335b775adf9267706e85b22c571668aae00126aefab8393c3f4a1e5f9"
  ]
}
moodyjon commented 2 years ago

Very new block without nextblockhash:

lbrycrd:

Mac-mini lbcd % ./lbcctl --notls -s 18.221.146.233 -u rpcuser -P rpcpass getblock a58b2c6dc0d94d1f46de6977835fb9ed61fede99440327f9984d3a8d97675792 1                              
{
  "hash": "a58b2c6dc0d94d1f46de6977835fb9ed61fede99440327f9984d3a8d97675792",
  "confirmations": 1,
  "strippedsize": 274,
  "size": 310,
  "weight": 1132,
  "height": 1196289,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "d5736675d6a4fc3896b5d9ef35b3a2bdeabf8c8b4107cc7b45d3c777fc00f899",
  "nameclaimroot": "630f8331b82754ecd8427ea737021cfb555f70fb6ac2f576391aceae2e383dc7",
  "tx": [
    "d5736675d6a4fc3896b5d9ef35b3a2bdeabf8c8b4107cc7b45d3c777fc00f899"
  ],
  "time": 1658430083,
  "mediantime": 1658429461,
  "nonce": 3017137963,
  "bits": "1a0154c0",
  "difficulty": 826032815094.2333,
  "chainwork": "0000000000000000000000000000000000000000000009dd8a264c1a3ddd61a9",
  "nTx": 1,
  "previousblockhash": "4b9f520caa5f2f12faf528adbaf4cf7641ac7ab7a501714b1ce184af44eadb37"
}

lbcd:

Mac-mini lbcd % ./lbcctl --rpcuser=.... --rpcpass=.... getblock a58b2c6dc0d94d1f46de6977835fb9ed61fede99440327f9984d3a8d97675792 1
{
  "hash": "a58b2c6dc0d94d1f46de6977835fb9ed61fede99440327f9984d3a8d97675792",
  "confirmations": 1,
  "strippedsize": 274,
  "size": 310,
  "weight": 1132,
  "height": 1196289,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "d5736675d6a4fc3896b5d9ef35b3a2bdeabf8c8b4107cc7b45d3c777fc00f899",
  "time": 1658430083,
  "mediantime": 1658429461,
  "nonce": 3017137963,
  "bits": "1a0154c0",
  "difficulty": 826032815094.2333,
  "chainwork": "9dd8a264c1a3ddd61a9",
  "previousblockhash": "4b9f520caa5f2f12faf528adbaf4cf7641ac7ab7a501714b1ce184af44eadb37",
  "nameclaimroot": "630f8331b82754ecd8427ea737021cfb555f70fb6ac2f576391aceae2e383dc7",
  "nTx": 1,
  "tx": [
    "d5736675d6a4fc3896b5d9ef35b3a2bdeabf8c8b4107cc7b45d3c777fc00f899"
  ]
}
moodyjon commented 2 years ago

Block 0

lbrycrd:

Mac-mini lbcd % ./lbcctl --notls -s 18.221.146.233 -u rpcuser -P rpcpass getblock 9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463 1
{
  "hash": "9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463",
  "confirmations": 1196287,
  "strippedsize": 229,
  "size": 229,
  "weight": 916,
  "height": 0,
  "version": 1,
  "versionHex": "00000001",
  "merkleroot": "b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc",
  "nameclaimroot": "0000000000000000000000000000000000000000000000000000000000000001",
  "tx": [
    "b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc"
  ],
  "time": 1446058291,
  "mediantime": 1446058291,
  "nonce": 1287,
  "bits": "1f00ffff",
  "difficulty": 1,
  "chainwork": "0000000000000000000000000000000000000000000000000000000000010001",
  "nTx": 1,
  "nextblockhash": "decb9e2cca03a419fd9cca0cb2b1d5ad11b088f22f8f38556d93ac4358b86c24"
}

lbcd:

Mac-mini lbcd % ./lbcctl --rpcuser=.... --rpcpass=.... getblock 9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463 1
{
  "hash": "9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463",
  "confirmations": 1196287,
  "strippedsize": 229,
  "size": 229,
  "weight": 916,
  "height": 0,
  "version": 1,
  "versionHex": "00000001",
  "merkleroot": "b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc",
  "time": 1446058291,
  "mediantime": 1446058291,
  "nonce": 1287,
  "bits": "1f00ffff",
  "difficulty": 1,
  "chainwork": "10001",
  "nextblockhash": "decb9e2cca03a419fd9cca0cb2b1d5ad11b088f22f8f38556d93ac4358b86c24",
  "nameclaimroot": "0000000000000000000000000000000000000000000000000000000000000001",
  "nTx": 1,
  "tx": [
    "b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc"
  ]
}
roylee17 commented 2 years ago

LGTM.