Commit graph

3521 commits

Author SHA1 Message Date
Brannon King
f73b79ae04 [lbry] test: fixed all current tests and delete three.
Co-authored-by: Roy Lee <roylee17@gmail.com>
2021-12-14 14:00:59 -08:00
Brannon King
ed5dd41a2a [lbry] upnp: brought in upnp fix from dcrd 2021-12-14 14:00:59 -08:00
Brannon King
0c8cf5dea0 [lbry] upnp: switched upnp param to its opposite 2021-12-14 14:00:59 -08:00
Brannon King
41472404c6 [lbry] enable segwit 2021-12-14 14:00:59 -08:00
Brannon King
30f4bd6582 [lbry] rpc: added optional address type for getnewaddress 2021-12-14 14:00:59 -08:00
Brannon King
c035acb6b2 [lbry] rpc: ladded claim related fields for wallet 2021-12-14 14:00:59 -08:00
Alex Grintsvayg
c87ce56241 [lbry] rpc: make uptime rpc return a real uptime 2021-12-14 14:00:59 -08:00
Brannon King
276a6141c7 [lbry] rpc: made estimatesmartfee call estimatefee (for now) 2021-12-14 14:00:59 -08:00
Roy Lee
96846fef20 [lbry] rpc, mining: fix generatetoaddress 2021-12-14 14:00:59 -08:00
Brannon King
9ae7b95c85 [lbry] rpc, mining: calculate claimtrie root hash for generate RPC 2021-12-14 14:00:59 -08:00
Brannon King
3fde64cd63 [lbry] rpc: added getchaintips RPC
remove btcjson dep in chainquery
2021-12-14 14:00:59 -08:00
Brannon King
a76bc2b828 [lbry] rpc: import invalidate/reconsiderblock from bchd 2021-12-14 14:00:59 -08:00
Brannon King
4b47722136 [lbry] rpc: import getnetworkinfo from bchd 2021-12-14 14:00:59 -08:00
Brannon King
8f3de76e19 [lbry] rpc: fix getblock reponse 2021-12-14 14:00:59 -08:00
Brannon King
9f88501d07 [lbry] rpc: update defaultMaxFeeRate from 0.1 LBC to 0.5 LBC 2021-12-14 14:00:59 -08:00
Brannon King
207fadab42 [lbry] rpc: output segwit rule 2021-12-14 14:00:59 -08:00
Brannon King
8205e467af [lbry] rpc: add ClaimTrie root hash to GetBlockTemplate() 2021-12-14 14:00:59 -08:00
Brannon King
7f3d51f8c3 [lbry] rpc: support claim related methods 2021-12-14 14:00:59 -08:00
Brannon King
470a71fbe1 [lbry] print out memory usage periodically 2021-12-14 14:00:59 -08:00
Roy Lee
753f413c13 [lbry] claimtrie: import current snapshot
Sync to tip

Co-authored-by: Brannon King <countprimes@gmail.com>
2021-12-14 14:00:59 -08:00
Roy Lee
28a5e6fc65 [lbry] rename btcd to lbcd
Co-authored-by: Brannon King <countprimes@gmail.com>
2021-12-14 14:00:59 -08:00
Roy Lee
dadad3859a [lbry] blockchain: connect to ClaimTrie
Co-authored-by: Brannon King <countprimes@gmail.com>
2021-12-14 14:00:59 -08:00
Brannon King
3f0ec0f28a [lbry] log: support claimtrie entries 2021-12-14 13:31:27 -08:00
Brannon King
62f2be3284 [lbry] txscript: remove claim prefix for addr calculation 2021-12-14 13:31:27 -08:00
Roy Lee
2765ac7215 [lbry] txscript: recognize LBRY claim script OPCODES 2021-12-14 13:31:27 -08:00
Roy Lee
6d80d906a8 [lbry] txscript: introduce claim script
Co-authored-by: Brannon King <countprimes@gmail.com>
2021-12-14 13:31:27 -08:00
Roy Lee
185cb711b5 [lbry] txscript: change MaxScriptSize from 10,000 to 20,005 2021-12-14 13:31:27 -08:00
Brannon King
dfc7a4423c [lbry] server: don't ban peers on tx-not-in-block behavior 2021-12-14 13:31:24 -08:00
Roy Lee
57bca30a00 [lbry] server: update client version to /btcwire:0.5.0/LBRY.GO:0.12.2/
TODO: double check if lbryd bumps the version.
2021-12-04 22:50:29 -08:00
Brannon King
4ecd4385f5 [lbry] blockchain: Consider a block with timestamp less 6 hours 'current' 2021-12-04 22:50:29 -08:00
Brannon King
f8a5df1b87 [lbry] blockchain: support force active fork deployment 2021-12-04 22:50:29 -08:00
Roy Lee
a7b3ed5c29 [lbry] blockchain, mempool: validate txscripts
Co-authored-by: Brannon King <countprimes@gmail.com>
2021-12-04 22:50:29 -08:00
Roy Lee
25c026e060 [lbry] blockchain: change Block Subsidy algorithm 2021-12-04 22:41:00 -08:00
Roy Lee
8591f960e2 [lbry] blockchain: change the difficulty adjustment algorithm.
adjusted := target + (actual - target) / 8

  max := target + (target / 2)
  min := target - (target / 8)

  if adjusted > max {
    adjusted = max
  } else if adj < min {
    adjusted = min
  }

  diffculty := lastDifficulty * adjusted / target
2021-12-04 22:41:00 -08:00
Roy Lee
c8abd8fe93 [lbry] blockchain: make UTXO in Genesis block spendable 2021-12-04 22:41:00 -08:00
Roy Lee
53553df4a8 [lbry] blockchain, txscript: change maxScriptElementSize from 520 t0 20,000 bytes 2021-12-04 22:41:00 -08:00
Roy Lee
b179b1d52d [lbry] blockchain, wire: verify blockheaders using LBRY PoW 2021-12-04 22:41:00 -08:00
Roy Lee
ace9c12860 [lbry] blockchain: change max block size to 2,000,000 2021-12-04 22:41:00 -08:00
Roy Lee
8420857491 [lbry] blockchain, wire: add ClaimTrie to Block Header 2021-12-04 22:41:00 -08:00
Roy Lee
261f9be12e [lbry] chaincfg: update chainparams for LBRY chain
Co-authored-by: Brannon King <countprimes@gmail.com>
Co-authored-by: Alex Grintsvayg <grin@lbry.com>
2021-12-04 22:41:00 -08:00
Roy Lee
a821057784 [lbry] chaincfg: setup genisis blocks 2021-12-04 22:41:00 -08:00
Roy Lee
d7bfc9c077 [lbry] chaincfg: implement LBRY PoW Hash 2021-12-04 22:41:00 -08:00
Brannon King
a5050cf2de [lbry] profile: support fgprof (flame graph) 2021-12-04 22:41:00 -08:00
Roy Lee
40606d22fd [lbry] wire: update protocol NetIDs 2021-12-04 22:41:00 -08:00
Brannon King
264075b311 [lbry] wire: optimize binaryFreeList handling 2021-12-04 22:41:00 -08:00
Tomasz Ziolkowski
780cc0889f reduce redundant memory allocatio - resolves btcsuite/btcd#1699
Signed-off-by: Tomasz Ziolkowski <tomasz.ziolkowski@allegro.pl>
2021-11-30 09:39:38 -05:00
Calvin Kim
3be166e3ae go.mod, go.sum: Update goleveldb
Goleveldb recently had a PR in where memory allocation was reduced
drastically (github.com/syndtr/goleveldb/pull/367).  Update goleveldb
to use that PR.
2021-11-30 09:35:11 -05:00
Olaoluwa Osuntokun
7070d53e09
Merge pull request #1769 from Roasbeef/txscript_zero_alloc_optimization_refactor
txscript: backport tokenizer from dcrd
2021-11-16 19:14:28 -08:00
Dave Collins
b95ba0ac95
txscript: Make op callbacks take opcode and data.
This converts the callback function defined on the internal opcode
struct to accept the opcode and data slice instead of a parsed opcode as
the final step towards removing the parsed opcode struct and associated
supporting code altogether.

It also updates all of the callbacks and tests accordingly and finally
removes the now unused parsedOpcode struct.

The final results for the raw script analysis and tokenizer
optimizations are as follows:

benchmark                                       old ns/op     new ns/op     delta
BenchmarkIsPayToScriptHash-8                    62393         0.51          -100.00%
BenchmarkIsPubKeyHashScript-8                   62228         0.56          -100.00%
BenchmarkGetSigOpCount-8                        61051         658           -98.92%
BenchmarkExtractPkScriptAddrsLarge-8            60713         17.2          -99.97%
BenchmarkExtractPkScriptAddrs-8                 289           17.9          -93.81%
BenchmarkIsWitnessPubKeyHash-8                  61688         0.42          -100.00%
BenchmarkIsUnspendable-8                        656           520           -20.73%
BenchmarkExtractAtomicSwapDataPushesLarge-8     61332         44.0          -99.93%
BenchmarkExtractAtomicSwapDataPushes-8          990           260           -73.74%
BenchmarkDisasmString-8                         102902        39754         -61.37%
BenchmarkGetPreciseSigOpCount-8                 130223        715           -99.45%
BenchmarkScriptParsing-8                        63464         681           -98.93%
BenchmarkIsMultisigScriptLarge-8                64166         5.83          -99.99%
BenchmarkIsMultisigScript-8                     630           58.5          -90.71%
BenchmarkPushedData-8                           64837         1779          -97.26%
BenchmarkCalcSigHash-8                          3627895       3605459       -0.62%
BenchmarkIsPubKeyScript-8                       62323         2.83          -100.00%
BenchmarkIsPushOnlyScript-8                     62412         569           -99.09%
BenchmarkIsWitnessScriptHash-8                  61243         0.56          -100.00%
BenchmarkGetScriptClass-8                       61515         16.4          -99.97%
BenchmarkIsNullDataScript-8                     62495         2.53          -100.00%
BenchmarkIsMultisigSigScriptLarge-8             69328         2.52          -100.00%
BenchmarkIsMultisigSigScript-8                  2375          141           -94.06%
BenchmarkGetWitnessSigOpCountP2WKH-8            504           72.0          -85.71%
BenchmarkGetWitnessSigOpCountNested-8           1158          136           -88.26%
BenchmarkIsWitnessPubKeyHash-8                  68927         0.53          -100.00%
BenchmarkIsWitnessScriptHash-8                  62774         0.63          -100.00%

benchmark                                       old allocs     new allocs     delta
BenchmarkIsPayToScriptHash-8                    1              0              -100.00%
BenchmarkIsPubKeyHashScript-8                   1              0              -100.00%
BenchmarkGetSigOpCount-8                        1              0              -100.00%
BenchmarkExtractPkScriptAddrsLarge-8            1              0              -100.00%
BenchmarkExtractPkScriptAddrs-8                 1              0              -100.00%
BenchmarkIsWitnessPubKeyHash-8                  1              0              -100.00%
BenchmarkIsUnspendable-8                        1              0              -100.00%
BenchmarkExtractAtomicSwapDataPushesLarge-8     1              0              -100.00%
BenchmarkExtractAtomicSwapDataPushes-8          2              1              -50.00%
BenchmarkDisasmString-8                         46             51             +10.87%
BenchmarkGetPreciseSigOpCount-8                 3              0              -100.00%
BenchmarkScriptParsing-8                        1              0              -100.00%
BenchmarkIsMultisigScriptLarge-8                1              0              -100.00%
BenchmarkIsMultisigScript-8                     1              0              -100.00%
BenchmarkPushedData-8                           7              6              -14.29%
BenchmarkCalcSigHash-8                          1335           712            -46.67%
BenchmarkIsPubKeyScript-8                       1              0              -100.00%
BenchmarkIsPushOnlyScript-8                     1              0              -100.00%
BenchmarkIsWitnessScriptHash-8                  1              0              -100.00%
BenchmarkGetScriptClass-8                       1              0              -100.00%
BenchmarkIsNullDataScript-8                     1              0              -100.00%
BenchmarkIsMultisigSigScriptLarge-8             5              0              -100.00%
BenchmarkIsMultisigSigScript-8                  3              0              -100.00%
BenchmarkGetWitnessSigOpCountP2WKH-8            2              0              -100.00%
BenchmarkGetWitnessSigOpCountNested-8           4              0              -100.00%
BenchmarkIsWitnessPubKeyHash-8                  1              0              -100.00%
BenchmarkIsWitnessScriptHash-8                  1              0              -100.00%

benchmark                                       old bytes     new bytes     delta
BenchmarkIsPayToScriptHash-8                    311299        0             -100.00%
BenchmarkIsPubKeyHashScript-8                   311299        0             -100.00%
BenchmarkGetSigOpCount-8                        311299        0             -100.00%
BenchmarkExtractPkScriptAddrsLarge-8            311299        0             -100.00%
BenchmarkExtractPkScriptAddrs-8                 768           0             -100.00%
BenchmarkIsWitnessPubKeyHash-8                  311299        0             -100.00%
BenchmarkIsUnspendable-8                        1             0             -100.00%
BenchmarkExtractAtomicSwapDataPushesLarge-8     311299        0             -100.00%
BenchmarkExtractAtomicSwapDataPushes-8          3168          96            -96.97%
BenchmarkDisasmString-8                         389324        130552        -66.47%
BenchmarkGetPreciseSigOpCount-8                 623367        0             -100.00%
BenchmarkScriptParsing-8                        311299        0             -100.00%
BenchmarkIsMultisigScriptLarge-8                311299        0             -100.00%
BenchmarkIsMultisigScript-8                     2304          0             -100.00%
BenchmarkPushedData-8                           312816        1520          -99.51%
BenchmarkCalcSigHash-8                          1373812       1290507       -6.06%
BenchmarkIsPubKeyScript-8                       311299        0             -100.00%
BenchmarkIsPushOnlyScript-8                     311299        0             -100.00%
BenchmarkIsWitnessScriptHash-8                  311299        0             -100.00%
BenchmarkGetScriptClass-8                       311299        0             -100.00%
BenchmarkIsNullDataScript-8                     311299        0             -100.00%
BenchmarkIsMultisigSigScriptLarge-8             330035        0             -100.00%
BenchmarkIsMultisigSigScript-8                  9472          0             -100.00%
BenchmarkGetWitnessSigOpCountP2WKH-8            1408          0             -100.00%
BenchmarkGetWitnessSigOpCountNested-8           3200          0             -100.00%
BenchmarkIsWitnessPubKeyHash-8                  311299        0             -100.00%
BenchmarkIsWitnessScriptHash-8                  311299        0             -100.00%
2021-11-16 18:49:46 -08:00
Dave Collins
ef3d06e62b
txscript: Make executeOpcode take opcode and data.
This converts the executeOpcode function defined on the engine to accept
an opcode and data slice instead of a parsed opcode as a step towards
removing the parsed opcode struct and associated supporting code altogether.

It also updates all callers accordingly.
2021-11-16 18:49:41 -08:00