summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomZ2022-11-24 18:30:53 +0100
committerTomZ2022-11-24 18:31:26 +0100
commit5022e0a3b00ae7fe9ba215736a2b8b6358fc2835 (patch)
tree8074d32f1bd4c0408f879c639a61fb851042fbbc
parent1772f61426b513f51f9693e09fda800a0eb455f5 (diff)
downloadaur-5022e0a3b00ae7fe9ba215736a2b8b6358fc2835.tar.gz
Update config and fix url
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD5
-rw-r--r--fulcrum.conf170
3 files changed, 148 insertions, 31 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4b5f268d1fd2..feec9d19f41f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -2,7 +2,7 @@ pkgbase = fulcrum
pkgdesc = A fast & nimble SPV server for Bitcoin Cash
pkgver = 1.8.1
pkgrel = 1
- url = https://codeberg.com/Flowee/fulcrum
+ url = https://codeberg.org/Flowee/fulcrum
install = fulcrum.install
arch = x86_64
license = GPL3
@@ -15,6 +15,6 @@ pkgbase = fulcrum
source = https://codeberg.org/Flowee/fulcrum/archive/v1.8.1.tar.gz
source = fulcrum.conf
sha256sums = 6215bc8b7c3f45e8da345e03bc62569c1fd4a8c9622dbe29ca7309af8bae004a
- sha256sums = 8a559a825d0b7bcd1231669e387183f05794ae919bb1b7ef84a9d74e407ff598
+ sha256sums = 7af8de6df023a2c06575e675de72af71abc1bdc74be6629c08aded63bf55ac1a
pkgname = fulcrum
diff --git a/PKGBUILD b/PKGBUILD
index ece0026b0afc..961739ae7e4b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@ pkgname=fulcrum
pkgdesc='A fast & nimble SPV server for Bitcoin Cash'
pkgver=1.8.1
pkgrel=1
-url='https://codeberg.com/Flowee/fulcrum'
+url='https://codeberg.org/Flowee/fulcrum'
arch=('x86_64')
license=('GPL3')
depends=(
@@ -17,12 +17,11 @@ backup=('etc/fulcrum.conf')
install=fulcrum.install
provides=("$pkgname")
source=(
-
"https://codeberg.org/Flowee/fulcrum/archive/v$pkgver.tar.gz"
"fulcrum.conf"
)
sha256sums=('6215bc8b7c3f45e8da345e03bc62569c1fd4a8c9622dbe29ca7309af8bae004a'
- '8a559a825d0b7bcd1231669e387183f05794ae919bb1b7ef84a9d74e407ff598'
+ '7af8de6df023a2c06575e675de72af71abc1bdc74be6629c08aded63bf55ac1a'
)
prepare() {
diff --git a/fulcrum.conf b/fulcrum.conf
index c1e22a50d4d1..f99b30370c56 100644
--- a/fulcrum.conf
+++ b/fulcrum.conf
@@ -58,7 +58,7 @@ datadir = /var/lib/fulcrum
bitcoind = 127.0.0.1:8332
-# Bitcoin daemon RPC username - 'rpcuser' - REQUIRED
+# Bitcoin daemon RPC username - 'rpcuser' - REQUIRED (unless rpccookie is specified)
#
# Specifies the username to use for authenticating to bitcoind. This is a
# required option, along with 'bitcoind' and 'rpcpassword'. This option should
@@ -72,7 +72,7 @@ bitcoind = 127.0.0.1:8332
rpcuser = Bob_The_Banker
-# Bitcoin daemon RPC password - 'rpcpassword' - REQUIRED
+# Bitcoin daemon RPC password - 'rpcpassword' - REQUIRED (unless rpccookie is specified)
#
# Specifies the password to use for authenticating to bitcoind. This is a
# required option, along with 'bitcoind' and 'rpcuser'. This option should be
@@ -86,6 +86,16 @@ rpcuser = Bob_The_Banker
rpcpassword = hunter1
+# Bitcoin daemon RPC cookie file location - 'rpccookie' - DEFAULT: Not used
+#
+# An alternative to using rpcuser= and rpcpassword= is to use .cookie file
+# authentication. This should the full path to your .cookie file in your
+# bitcoind datadir. Do not specify this at the same time as "rpcuser" and
+# "rpcpassword"
+#
+#rpccookie = /path/to/bitcoind/datadir/.cookie
+
+
# Bitcoin daemon poll interval - 'polltime' - DEFAULT: 2.0 seconds
#
# The number of seconds for the bitcoind poll interval. Bitcoind is polled once
@@ -160,7 +170,7 @@ rpcpassword = hunter1
# SSL certificate - 'cert' - DEFAULT: None (required for SSL)
#
-# Specifes the SSL certificate to use for all SSL ports. The certificate must be
+# Specifies the SSL certificate to use for all SSL ports. The certificate must be
# in PEM format. If using self-signed certs, the .pem file should contain a
# single certificate. If using CA-signed certs, the .pem file should contain the
# full certificate chain (e.g. fullchain.pem).
@@ -210,8 +220,8 @@ rpcpassword = hunter1
# be given to the fulcrum_admin script via the -p arg. This option may be
# specified more than once to bind to multiple ports and/or interfaces.
#
-#admin = 9000 # <-- a port number by itself implies 127.0.0.1
-#admin = 127.0.0.1:9000
+#admin = 8000 # <-- a port number by itself implies 127.0.0.1
+#admin = 127.0.0.1:8000
# HTTP stats bind - 'stats' - DEFAULT: None
@@ -293,7 +303,7 @@ rpcpassword = hunter1
#
# The "banner" text file to send to clients when they request the server banner.
# Specify a file path to a server-readable UTF-8 encoded text file (maximum file
-# lemgth: 16384 bytes). Typically Electron Cash clients ask for the server
+# length: 16384 bytes). Typically Electron Cash clients ask for the server
# banner (via the "server.banner" RPC method) when they first connect to your
# server. They then display this text in the "Console" tab of the Electron Cash
# GUI. Some server admins get creative with this file and include ASCII or emoji
@@ -322,7 +332,7 @@ rpcpassword = hunter1
#-------------------------------------------------------------------------------
-# PEER DISCOCERY AND PUBLIC SERVER OPTIONS
+# PEER DISCOVERY AND PUBLIC SERVER OPTIONS
#-------------------------------------------------------------------------------
# Public hostname - 'hostname' - DEFAULT: Local IP address on server
@@ -376,7 +386,7 @@ rpcpassword = hunter1
# Public WS port - 'public_ws_port' - DEFAULT: The first 'ws' port configured
#
# The server's public WS (Web Socket) port. This, along with 'hostname' and the
-# varous 'public_*_port' variables are announced to clients and to other servers
+# various 'public_*_port' variables are announced to clients and to other servers
# engaged in peer discovery. The default for this variable is to simply use the
# first WS port specified in the server configuration (if any). If you are
# behind a firewall and doing some port remapping, then you definitely want to
@@ -391,7 +401,7 @@ rpcpassword = hunter1
# Public WSS port - 'public_wss_port' - DEFAULT: The first 'wss' port configured
#
# The server's public WSS (Web Socket Secure) port. This, along with 'hostname'
-# and the varous 'public_*_port' variables are announced to clients and to other
+# and the various 'public_*_port' variables are announced to clients and to other
# servers engaged in peer discovery. The default for this variable is to simply
# use the first WSS port specified in the server configuration (if any). If you
# are behind a firewall and doing some port remapping, then you definitely want
@@ -439,7 +449,7 @@ rpcpassword = hunter1
# Tor hostname - 'tor_hostname' - DEFAULT: Nothing
#
-# If specifeid, and if you have a Tor proxy configured, and if you have at least
+# If specified, and if you have a Tor proxy configured, and if you have at least
# one of tor_tcp_port and/or tor_ssl_port specified, then we will anounce this
# host via Tor as a .onion host. Note that this hostname must end in .onion.
#
@@ -513,7 +523,7 @@ rpcpassword = hunter1
# default in your torrc, then specify the settings used here so that Fulcrum
# may use the Tor proxy to discover .onion peers.
#
-#tor_proxy = 9050 # e.g. localhost 9050. Interface ok too e.g. 10.0.0.1:9150.
+#tor_proxy = 9050 # e.g. localhost 9050. IP addr or hostname ok too: 10.0.0.1:9150, fooproxy.com:9050, etc.
#tor_user = # leave this out unless you specified a username in your torrc
#tor_pass = # leave this out unless you specified a password in your torrc
@@ -523,6 +533,28 @@ rpcpassword = hunter1
# ADVANCED OPTIONS
#-------------------------------------------------------------------------------
+# BitcoinD number of clients - 'bitcoind_clients' - DEFAULT: 3
+#
+# The number of simultaneous bitcoin RPC clients that we spawn to connect to
+# bitcoind's RPC port. If you raise this value from the default, be sure to also
+# specify the option `rpcthreads=` in bitcoind's conf file (or `-rpcthreads=` on
+# the CLI) in order to raise the number of concurrent RPC threads that bitcoind
+# uses from the default of 4. You may also want to raise the bitcoind
+# `-rpcworkqueue=` parameter above the default of 16 as well.
+#
+# In general, if you are using a recent version of BCHN with its improved
+# JSON-RPC performance, increasing this number (and the corresponding
+# -rpcthreads option in bitcoind) may yield better parallelism during initial DB
+# synch as well as better performance for your clients. This number should not
+# exceed the number of cores in your system, however, as performance may suffer
+# in that case. Note that Bitcoin Core doesn't parallelize very well on its
+# `getblocks` call due to the way it holds a global lock throughout the entire
+# call, so if you are on BTC, your mileage may vary with how much extra
+# performance you can get from more simultaneous clients specified here.
+#
+#bitcoind_clients = 3
+
+
# BitcoinD request throttling - 'bitcoind_throttle - DEFAULT: 50 20 5
#
# This is an advanced parameter added to Fulcrum v1.0.4 to control and rate-
@@ -542,7 +574,7 @@ rpcpassword = hunter1
# requests that have not yet returned results, and the number of such requests
# hits this limit, then the client will be throttled for at least 200
# milliseconds, or until the "low water mark" of extant request is reached
-# (whichever is longer). In other words, the throttling is acheived by pausing
+# (whichever is longer). In other words, the throttling is achieved by pausing
# all further processing of requests for that client, until either 200 ms
# has elapsed or the "low-water mark" for outstanding requests (default 20) is
# hit. The default value (50) for this burst parameter is a decent value that is
@@ -561,7 +593,7 @@ rpcpassword = hunter1
#bitcoind_throttle = 50 20 5
-# BitcoinD RPC Timeout - 'bitcoind_timeout' - DEFAULT: 20.0
+# BitcoinD RPC Timeout - 'bitcoind_timeout' - DEFAULT: 30.0
#
# The number of seconds to wait for unanswered bitcoind requests before we
# consider them as having timed-out. If the bitcoind we are connected to is in
@@ -573,7 +605,7 @@ rpcpassword = hunter1
# If you see the error message "bitcoind request timed out" in the log, you may
# wish to set this value higher than the default.
#
-#bitcoind_timeout = 20.0
+#bitcoind_timeout = 30.0
# Bitcoin daemon RPC uses TLS (HTTPS) - 'bitcoind-tls' - DEFAULT: false
@@ -595,7 +627,7 @@ rpcpassword = hunter1
# db_keep_log_file_num = 5
-# Max RocksDB Open Files - 'db_max_open_files' - DEFAULT: 100
+# Max RocksDB Open Files - 'db_max_open_files' - DEFAULT: 40
#
# The maximum number of database .sst files (table files) to keep open, per
# database (there are 6 databases altogether used in Fulcrum). This limit can be
@@ -612,10 +644,10 @@ rpcpassword = hunter1
#
# Specify -1 for unlimited, or a value in the range 20, 2147483648.
#
-# db_max_open_files = 100
+# db_max_open_files = 40
-# Max RocksDB Memory in MiB - 'db_mem' - DEFAULT: 768.0
+# Max RocksDB Memory in MiB - 'db_mem' - DEFAULT: 512.0
#
# Specifies roughly the maximum amount of memory to give to rocksdb. Larger
# values offer better performance, at the expense of memory consumption. Note
@@ -628,7 +660,7 @@ rpcpassword = hunter1
# works well on an SSD. If using an HDD for the datadir, you may want to set
# this value higher than the default.
#
-# db_mem = 768.0
+# db_mem = 512.0
# RocksDB use "fsync" - 'db_use_fsync' - DEFAULT: false
@@ -650,7 +682,44 @@ rpcpassword = hunter1
# db_use_fsync = false
-# Maximum transmission backlog size - 'max_buffer' - DEFAULT: 4000000
+# Fast sync = 'fast-sync' - DEFAULT: 0
+#
+# If specified, Fulcrum will use a UTXO Cache that consumes extra memory but
+# syncs up to to 2X faster. To use this feature, you must specify a memory value
+# in MB to allocate to the cache. It is recommended that you give this facility
+# at least 2000 MB for it to really pay off, although any amount of memory given
+# (minimum 200 MB) should be beneficial. Note that this feature is currently
+# experimental and the tradeoffs are: it is faster because it avoids redundant
+# disk I/O, however, this comes at the price of considerable memory consumption
+# as well as a sync that is less resilient to crashes mid-sync. If the process
+# is killed mid-sync, the database may become corrupt and lose UTXO data. Use
+# this feature only if you are 100% sure that won't happen during a sync.
+# Specify as much memory as you can, in MB, here, e.g.: 3000 to allocate 3000 MB
+# (3 GB). The default is off (0). This option only takes effect on initial sync,
+# otherwise this option has no effect.
+#
+#fast-sync = 0
+
+
+# Maximum batch size (per IP) - 'max_batch' - DEFAULT: 345
+#
+# The maximum size of JSON-RPC batch requests to the server. Set this to 0
+# to unconditionally disable JSON-RPC batch requests server-wide.
+#
+# This configurable limit is in place as a DoS-prevention measure. If nonzero,
+# this limit is applied to non-whitelisted clients (clients whose IP is not
+# in `subnets_to_exclude_from_per_ip_limits`).
+#
+# The limit is a total limit for all batch requests active from a particular
+# IP address. For example, if max_batch = 99, and there are 4 connections from
+# a single IP address, with each client from that IP simultaneously sending a
+# batch request of size 25, then it's possible for 1 or more of the requests
+# to be rejected (100 > 99).
+#
+#max_batch = 345
+
+
+# Maximum transmission backlog size - 'max_buffer' - DEFAULT: 8000000
#
# The maximum size in bytes of the transmission buffer "backlog" (send and
# receive) per client. This limit is a simple sanity check against DoS and/or
@@ -676,7 +745,7 @@ rpcpassword = hunter1
# connected clients using the 'maxbuffer' FulcrumAdmin command, and it will be
# applied immediately to all connected clients.
#
-#max_buffer = 4000000
+#max_buffer = 8000000
# Max client connections per IP - 'max_clients_per_ip' - DEFAULT: 12
@@ -712,7 +781,7 @@ rpcpassword = hunter1
# address histories from impacting the performance of the server and using up
# resources. Moreover, it can be argued that such users with such
# computationally expensive histories are better served running a full node
-# themesleves, rather than relying on a public SPV server and/or light wallet
+# themseleves, rather than relying on a public SPV server and/or light wallet
# system.
#
# Note that there are some addresses on the chain whose histories exceed 7.5
@@ -722,7 +791,7 @@ rpcpassword = hunter1
# excessive requests are made for such large histories (if this limit were not
# in place).
#
-# This value may be set to any positive integer in the range: [1000, 100000000].
+# This value may be set to any positive integer in the range: [1000, 25000000].
#
#max_history = 125000
@@ -740,6 +809,36 @@ rpcpassword = hunter1
#max_pending_connections = 60
+# Maximum reorg depth - 'max_reorg' - DEFAULT: 100
+#
+# The maximum number of blocks we can rewind back on chain reorg. This setting
+# defines how many block undo entries we store in the database. Setting this
+# above value beyond the default allows for Fulcrum to support >100-block deep-
+# reorgs without requiring a resynch, at the expense of some disk space.
+#
+# Older Fulcrum versions had this value hard-coded to 100, which is now the
+# minimum value for this setting. The maximum value you can specify here is
+# 500,000 which is an obscenely high value, since one normally doesn't
+# anticipate switching to another chain whose most recent common ancestor block
+# is >500,000 blocks deep. Note that large values here simply use up more disk
+# space and may affect block synch time, but otherwise have no other negative
+# effect. If you are on a test chain or are on a network where you anticipate
+# reorgs larger than 100 blocks, you may wish to set this value higher than the
+# default.
+#
+# Note: If you do set this number higher than the default, then using the same
+# datadir with an older Fulcrum version may lead to wasted disk space, since
+# versions of Fulcrum prior to 1.3.2 used a hard-coded value of 100 for
+# max_reorg. As such, running a version of Fulcrum prior to 1.3.2 on a datadir
+# set up with max_reorg > 100 may mean that the old Fulcrum version will not
+# properly clean up old undo entries, thus wasting a little bit of disk space.
+# (If you then run a newer Fulcrum version again, however, the situation will
+# resolve itself at that time -- so it's not a huge deal; it just is worth
+# mentioning here).
+#
+#max_reorg = 100
+
+
# Maximum subscriptions (global limit) - 'max_subs' - DEFAULT: 10000000
#
# The maximum number of simultaneous script hash subscription that the server
@@ -754,7 +853,7 @@ rpcpassword = hunter1
#max_subs = 10000000
-# Maximum subscriptions (per-IP address) - 'max_subs_per_ip' - DEFAULT: 50000
+# Maximum subscriptions (per-IP address) - 'max_subs_per_ip' - DEFAULT: 75000
#
# The maximum number of script hash subscriptions per IP address. Note that IP
# addresses matching 'subnets_to_exclude_from_per_ip_limits' will not be
@@ -764,7 +863,7 @@ rpcpassword = hunter1
# If a client attempts to subscribe beyond this limit for all the connections
# coming from their IP address, it will receive an error message.
#
-#max_subs_per_ip = 50000
+#max_subs_per_ip = 75000
# Peer IP uniqueness enforcement - 'peering_enforce_unique_ip' - DEFAULT: true
@@ -823,7 +922,26 @@ rpcpassword = hunter1
#
-# Work queue size - 'workqueue' - DEFAULT: 10000
+# Tx hash cache size MB - 'txhash_cache' - DEFAULT: 128
+#
+# Specifies the amount of memory in MB to use for the txhash cache. The txhash
+# cache is used to speed up processing for get_merkle, get_history, listunspent,
+# and subscribe requests.
+#
+# On a memory-constrained system you may wish to lower this value, at the
+# expense of server responsiveness (lower limit: 20 MB). On a large memory
+# system, you may wish to raise this value, to increase server responsiveness
+# (upper limit: 2000 MB).
+#
+# To view the current state of the txhash cache (which is actually divided up
+# into 2 separate caches), use the FulcrumAdmin `getinfo` command. The caches
+# appear under "storage_stats" -> "caches" and are labelled with the string
+# "TxHash" appearing somewhere in their names.
+#
+#txhash_cache = 128
+
+
+# Work queue size - 'workqueue' - DEFAULT: 15000
#
# The maximum size of the work queue. Requests from clients that require further
# processing (such as get_merkle, get_history, listunspent, etc) all end up
@@ -835,7 +953,7 @@ rpcpassword = hunter1
#
# It is an error to set this parameter to less than 10.
#
-#workqueue = 10000
+#workqueue = 15000
# Work queue threads - 'worker_threads' - DEFAULT: 0 (= autodetect # of CPUs)