Commit graph

3572 commits

Author SHA1 Message Date
Jonathan Moody 787098e2a2 Integrate "reuse claim memory" with node cache. Return claims to claimPool when Node refcnt drops to zero. 2022-06-06 17:56:45 -04:00
Brannon King 8482890759 reuse claim memory 2022-06-06 17:56:45 -04:00
Jonathan Moody 4df58bb2d6 Use map[ClaimID] instead of map[string] since conversion ClaimID -> string entails lots of temporary allocations. 2022-06-06 17:56:45 -04:00
Jonathan Moody 4159712b92 Add Pool for []Change returned by LoadChanges(name []byte).
Return []Changes and a "closer" func to return them to Pool.
Update tests for LoadChanges new return values.
2022-06-06 17:56:45 -04:00
Jonathan Moody 5f7b1f1b4f Copy value received by MergeOlder/MergeNewer so caller can't trash the merge result by modifying the contents. 2022-06-06 14:12:30 -07:00
Jonathan Moody 0241e18f42 Harden Marshal/Unmarshal logic for Change.SpentChildren. 2022-06-06 14:12:30 -07:00
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