Commit graph

3566 commits

Author SHA1 Message Date
Brannon King
b06df3d750 added buffer pool for pebble merge string 2022-06-06 14:12:30 -07:00
Jonathan Moody
15191b7ede
[lbry] runtime: Add --memprofile option
* Add --memprofile option. Add memprofile to sample config.
* Add --memprofile to doc.go.
2022-06-03 12:08:09 -07:00
Jonathan Moody
92a7a2087a
[lbry] runtime: Allow environment var GOGC=<percent> to override hard-coded SetGCPercent(10). 2022-06-03 09:19:55 -07:00
Brannon King
8f95946b17 [lbry] claimtrie: created node cache 2022-05-26 22:04:33 -07:00
Roy Lee
5d5f53c8d8 [lbry] contrib: add a helper script for generating snapshots 2022-05-26 21:53:59 -07:00
Roy Lee
6e36118193
[lbry] claimtrie: update CLI to support other tools
- fix default app dir name
- enable debug level for cli
- block sub command to output hash, height, or both
2022-05-26 21:52:15 -07:00
Roy Lee
e48200f53a [lbry] wire: limit the blocks of getdata message
In the cuurent codebase, OnGetData() handler penalizes / ban peers
requesting large blocks.

  server.go:
  @@ -649,7 +649,7 @@ func (sp *serverPeer) OnGetData(_ *peer.Peer, msg *wire.MsgGetData) {
          // bursts of small requests are not penalized as that would potentially ban
          // peers performing IBD.
          // This incremental score decays each minute to half of its value.
          if sp.addBanScore(0, uint32(length)*99/wire.MaxInvPerMsg, "getdata") {
                  return
          }

This accidentally penalize nodes trying to catch up checkpoints whose
'getdata' requests would be as large as the wire.MaxInvPerMsg, and get
banned very soon.

This patch limit getdata request to wire.MaxInvPerMsg/99 blocks.
2022-05-25 22:00:38 -07:00
Roy Lee
4a8d390a06
[lbry] ci: GoReleaser zero out buildid for reproducible builds (#40) 2022-05-25 21:49:12 -07:00
Roy Lee
aef4e45bd7 [lbry] ci: add github workflows 2022-05-24 02:49:08 -07:00
Roy Lee
0375a6d38b [lbry] ci: support GoReleaser 2022-05-24 02:35:27 -07:00
Roy Lee
2cfa235a33 [lbry] ci: update Dockerfile
Use $ARCH/debian:bullseye-20220418-slim as base image
2022-05-24 00:47:34 -07:00
Roy Lee
7ee3d7d26b [lbry] ci: add .golangci-lint.yml 2022-05-24 00:47:34 -07:00
Roy Lee
d4cddda35c [lbry] ci: update gocelan.sh 2022-05-24 00:41:56 -07:00
Roy Lee
76e482bb73 [lbry] ci: remove release/release.sh 2022-05-24 00:39:44 -07:00
Roy Lee
badb894e3a [lbry] ci: update .gitignore 2022-05-24 00:39:44 -07:00
Roy Lee
3cb961257c [lbry] ci: fixed various lint errors 2022-05-24 00:39:44 -07:00
Roy Lee
bf7a513006 [lbry] go mod: update go modules 2022-05-24 00:04:19 -07:00
Roy Lee
7c5a2c6f58 [lbry] version: update codebase to use version package 2022-05-24 00:04:19 -07:00
Roy Lee
3662f316ab [lbry] version: add version package 2022-05-24 00:04:19 -07:00
Roy Lee
43d3086ce1 [lbry] mempool: update getrawmempool and implement getmempoolentry
TODO::
1. Populate Ancestor and decsendent related fields instead of mocking.
2. Move and refator the implementation of getmempoolentry to the mempool
   package.
2022-05-24 00:04:19 -07:00
Roy Lee
7513046f70 [lbry] fees: replace estimatefee with esimatesmartfee 2022-05-24 00:04:19 -07:00
Roy Lee
d126d0c10e [lbry] fees: port estimatesmartfee from DCRD
1. logger
2. blockheight: int64 -> int32
3. dcrutil -> lbcutl
4. MaxConfirimation: 42
5. MinBucketFee: mempool.MinRelayFee (default 1000)
6. BucketFee Spacing: 1.1 -> 1.05

Note:
  DCRD implementation of estimatesmartfee is based on bitcoin core 0.14
  Lbrycrd (0.17) includes the updates of bitcoin core 0.15.
  They are slightly different, but shouldn't matter much.
2022-05-24 00:04:19 -07:00
Roy Lee
324c443c64 [lbry] fees: initial import from DCRD
vendored https://github.com/decred/dcrd/tree/master/internal/fees

Commit of the last modification

    commit a6e205b88fbb44f7ee85be25a81f4dad155670d8
    Author: Dave Collins <davec@conformal.com>
    Date:   Sat Dec 26 12:17:48 2020 -0600

        fees: Remove deprecated DisableLog.
2022-05-24 00:04:19 -07:00
Roy Lee
d99883a620 [lbry] btcjson: take integers for boolean parameters.
This is for backward compatibility with lbrycrd/bitcoind where some clients
use intger values (0/1) for boolean.
2022-05-24 00:04:19 -07:00
Roy Lee
a7f971f404 [lbry] rpc: update getrawtransaction to take verbose as boolean 2022-05-24 00:04:19 -07:00
Jeffrey Picard
239d681f28 [lbry] contrib: add linode deployment using docker 2022-05-24 00:04:19 -07:00
Roy Lee
d35a82412f [lbry] align port settings between lbcd, lbcctl, and lbcwallet 2022-05-24 00:01:46 -07:00
Brannon King
2bd6e4c3a9 [lbry] ffldb: increase open file limit and flush more often 2022-05-24 00:01:46 -07:00
Brannon King
b4623ef2dd [lbry] increase open file limit to 2048 2022-05-24 00:01:46 -07:00
Brannon King
4dd4505706 [lbry] docs: update docs for LBRY
Co-authored-by: Roy Lee <roylee17@gmail.com>
2022-05-24 00:01:46 -07:00
Brannon King
1b823c055f [lbry] test: don't remove old regression DB 2022-05-24 00:01:46 -07:00
Brannon King
a07bb527df [lbry] test: fixed all current tests and delete three.
Co-authored-by: Roy Lee <roylee17@gmail.com>
2022-05-24 00:01:46 -07:00
Brannon King
d6a6b53551 [lbry] upnp: brought in upnp fix from dcrd 2022-05-24 00:01:46 -07:00
Jonathan Moody
fe1637c223 [lbry] config: Verify completeness of sample-lbcd.conf using reflection on config struct. 2022-05-24 00:01:46 -07:00
Jonathan Moody
6c2a3d8bcf [lbry] config: Embed sample-lbcd.conf contents at build time.
Use embedded config if the sample-lbcd.conf is not found at runtime.
2022-05-24 00:01:46 -07:00
Jonathan Moody
2add30af9a [lbry] config: Add a number of missing options to sample-lbcd.conf.
Correct "blacklist is applied before the blacklist" typo in help text.
2022-05-24 00:01:46 -07:00
Roy Lee
b8b2bd1584 [lbry] config: enable txindex by default 2022-05-24 00:01:46 -07:00
Brannon King
f3e1c96de9 [lbry] config: enable upnp by default 2022-05-24 00:01:46 -07:00
Brannon King
0a0e79bc41 [lbry] enable segwit 2022-05-24 00:01:45 -07:00
Brannon King
023aa5d6b0 [lbry] btcjson: added optional address type for getnewaddress 2022-05-24 00:01:45 -07:00
Brannon King
de2a548207 [lbry] btcjson: ladded claim related fields for wallet 2022-05-24 00:01:45 -07:00
Roy Lee
568544961f [lbry] rpcserver: log the reason of submitblock rejection 2022-05-24 00:01:45 -07:00
Brannon King
8c984993a8 [lbry] rpcserver: made invalidate/reconsiderBlock return RPC errors 2022-05-24 00:01:45 -07:00
Brannon King
6c0360fa42 [lbry] rpcserver: made estimatesmartfee call estimatefee (for now) 2022-05-24 00:01:45 -07:00
Roy Lee
d20a2e53b4 [lbry] mining: return witness_script instead of raw witness_commitment in GBT 2022-05-24 00:01:45 -07:00
Roy Lee
29f64f9dcf [lbry] mining: enlarge updateHash channel buffers 2022-05-24 00:01:45 -07:00
Brannon King
e0870db24e [lbry] mining: calculate claimtrie root hash for generate RPC 2022-05-24 00:01:45 -07:00
Brannon King
6784830246 [lbry] blockchain: clear statusValid upon statusValidateFailed is set
The status management of index does need some refactoring.
For now, we just manually clear the statusValid in every occurance
of statusValidateFailed being set.

Co-authored-by: Roy Lee <roylee17@gmail.com>
2022-05-24 00:01:45 -07:00
Brannon King
405897fa38 [lbry] blockchain: fix crash on unlock generate/invalidate loop 2022-05-24 00:01:45 -07:00
Roy Lee
64884458f9 [lbry] rpc, mining: fix generatetoaddress 2022-05-24 00:01:45 -07:00