Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1088 commits
Select commit Hold shift + click to select a range
99846b0
blockchain: remove unused fetchUtxosMain()
kcalvinalvin Mar 5, 2024
a4f4470
Merge pull request #2131 from kcalvinalvin/2024-03-05-fix-intermitten…
Roasbeef Mar 5, 2024
8d1aa01
blockchain: add another mapslice duplicate entry case
kcalvinalvin Mar 7, 2024
059a668
blockchain: check all the maps first before adding an entry
kcalvinalvin Mar 7, 2024
078815b
blockchain: remove utxoview from the argument in connectBlock
kcalvinalvin Mar 7, 2024
9d2184e
Add check for maximum signature length in ecdsa.ParseDERSignature
SulaimanAminuBarkindo Mar 7, 2024
447c95c
Merge pull request #2122 from kcalvinalvin/2024-02-15-dont-rely-on-he…
Roasbeef Mar 9, 2024
b66f5b8
multi: fix ioutil deprecated function
theedtron Mar 9, 2024
e63bf03
Merge pull request #2123 from kcalvinalvin/2024-02-15-no-utxocache-lo…
Roasbeef Mar 9, 2024
8ed234b
Merge pull request #2134 from kcalvinalvin/2024-03-07-make-duplicate-…
Roasbeef Mar 9, 2024
f0ec9fb
Merge pull request #2128 from kcalvinalvin/2024-02-27-no-panic-for-su…
Roasbeef Mar 9, 2024
aee2705
build: bump version to v0.24.2-beta.rc1
Roasbeef Mar 9, 2024
36683e0
rpcclient: define specific errors for chain backends
yyforyongyu Mar 14, 2024
8abf969
rpcserver: return the plain reject reason from `btcd`
yyforyongyu Mar 14, 2024
2fc99e0
Merge pull request #2138 from yyforyongyu/error-matching
guggero Mar 18, 2024
a90d3d9
Merge pull request #2135 from SulaimanAminuBarkindo/improved-der-sign…
Roasbeef Mar 18, 2024
8b2f43e
Merge pull request #2136 from Roasbeef/btcd-24-0-2-rc1
Roasbeef Mar 18, 2024
2a225e9
wire: add method TxID to MsgTx
ffranr Nov 6, 2023
e39d2eb
Merge pull request #2055 from ffranr/add-msgtx-txid
guggero Mar 25, 2024
75fe7e4
wire: make witnessToHex a TxWitness method called ToHexStrings
ffranr Jun 9, 2023
3cb9f60
fix typos (#2100)
mattn Mar 25, 2024
6ae24a0
mining: remove trailing continue
zhiqiangxu Jan 4, 2024
429d00f
Merge pull request #2091 from zhiqiangxu/rm_trailing_continue
guggero Mar 26, 2024
a03259b
Merge pull request #1991 from ffranr/add-json-support
guggero Mar 26, 2024
bbb6967
btcclient+btcjson: feeRate to BTC/kvB
YusukeShimizu Mar 21, 2024
80b27f5
btcclient+btcjson: add type alias for BTC/kvB
YusukeShimizu Mar 23, 2024
95330bc
chore: fix some comments (#2146)
xiaoxiangxianzi Mar 27, 2024
9851d96
chore: fix typos
xiaoxianBoy Mar 29, 2024
31647e4
btcec: add missing doc comments
ffranr Apr 2, 2024
665eeb5
btcec: add new type `SerializedKey`
ffranr Apr 2, 2024
ae55336
Merge pull request #2142 from YusukeShimizu/feeRate-BTCkvB
Roasbeef Apr 3, 2024
c9c8795
blockchain: add Equals method to blockNode
kcalvinalvin Apr 8, 2024
bc6396d
blockchain: Add IsAncestor method to blockNode
kcalvinalvin Dec 19, 2022
92b24d2
Merge pull request #2150 from xiaoxianBoy/fix-typos
Roasbeef Apr 10, 2024
e4b32e0
Merge pull request #2156 from ffranr/add-pubkey-serialized-type
Roasbeef Apr 10, 2024
5d50f7c
Merge pull request #2153 from kcalvinalvin/2024-04-02-add-is-ancestor
Roasbeef Apr 10, 2024
2f4ff84
fix some typos and make OP_DATA_20 explicit in comment (#2080)
zhiqiangxu Apr 10, 2024
9f93dc1
chore: fix function names in comment (#2163)
goodfirm Apr 10, 2024
64c9011
Update developer_resources.md (#2158)
youngxhui Apr 10, 2024
569155b
doc: fix config documentation for `AgentWhitelist` (#2140)
youngjoon-lee Apr 10, 2024
597b68c
blockchain, workmath: refactor functions to workmath package
kcalvinalvin Apr 2, 2024
337d7f6
fullblocktests, testhelper: refactor out spendableOut
kcalvinalvin Apr 2, 2024
d4644df
fullblocktests, testhelper: move solveBlock to testhelper
kcalvinalvin Apr 2, 2024
62790ac
fullblocktests, testhelper: move opTrueScript and lowFee to testhelper
kcalvinalvin Apr 2, 2024
9093243
fullblocktests, testhelper: move uniqueOpReturnScript to testhelper
kcalvinalvin Apr 2, 2024
59c7d10
fullblocktests, testhelper: move standardCoinbaseScript to testhelper
kcalvinalvin Apr 2, 2024
8ab27b9
fullblocktests, testhelper: move createCoinbaseTx to testhelper
kcalvinalvin Apr 2, 2024
5df1437
fullblocktests, testhelper: move createSpendTx to testhelper
kcalvinalvin Apr 2, 2024
ea39fe0
blockchain: add block generating functions in test code
kcalvinalvin Apr 2, 2024
f93f850
release: add darwin-arm64 to target binaries (#2173)
kcalvinalvin Apr 22, 2024
f1bded4
chaincfg: update dnsseeds (#2174)
kcalvinalvin Apr 23, 2024
126b0ec
chore: fix some typos in comments (#2164)
oftenoccur Apr 26, 2024
6b197d3
chore: fix some function names (#2180)
MarkDaveny Apr 29, 2024
635ae68
blockchain: Add InvalidateBlock() method to BlockChain
kcalvinalvin Apr 2, 2024
689ac6b
blockchain: remove trailing ":" and space on utxocache log
kcalvinalvin May 1, 2024
d65999e
main: add logging if the node is pruned
kcalvinalvin May 1, 2024
2492b01
btcutil/bech32: Added DecodeNoLimitWithVersion
MarcoEzekiel May 9, 2024
04469e6
txscript: make OP_CODESEPARATOR non-standard in non-segwit scripts
ProofOfKeags Apr 10, 2024
da2f3b1
mempool: make txn's below 65 non-witness bytes non-standard
ProofOfKeags Apr 10, 2024
c4ed92f
Merge pull request #2178 from ProofOfKeags/standardness-cleanup
Roasbeef May 21, 2024
b039ee6
Merge pull request #2182 from kcalvinalvin/2024-05-01-fix-logs
Roasbeef May 22, 2024
c467725
Merge pull request #2155 from kcalvinalvin/2024-04-02-invalidate-block
Roasbeef May 22, 2024
d2d286f
Merge pull request #2186 from MarcoEzekiel/DecodeNoLimitVersioned
guggero May 24, 2024
cccaa5f
refactor: specify strconv.ParseFloat bitsize to 64
lilasxie Jun 3, 2024
de41825
Merge pull request #2062 from lilasxie/refactor/parsefloat
guggero Jun 3, 2024
eabc9bf
blockchain: Refactor reorganizeChain to exclude verification
kcalvinalvin Apr 30, 2024
52a8a2a
blockchain: Add ReconsiderBlock to BlockChain
kcalvinalvin Apr 30, 2024
588b2e5
fix: typo (#2184)
yosuzzy Jun 19, 2024
976cbeb
chore: fix some comments (#2191)
VitalikButerinEth Jun 19, 2024
11bd614
Fix struct names (#2169)
coderwander Jun 19, 2024
cd5e5ba
Merge pull request #2196 from Crypt-iQ/2181_eugene
Roasbeef Jun 19, 2024
1cb4d3a
rpcclient, integration: Add invalidateblock and reconsiderblock
kcalvinalvin Jan 9, 2023
0aa80ea
main: Add invalidateblock and reconsiderblock rpc commands
kcalvinalvin Jan 3, 2023
93e7291
Merge pull request #2197 from Crypt-iQ/2183_eugene
Roasbeef Jun 20, 2024
cc4b27c
build: bump version to v0.24.2-beta
Roasbeef Jun 20, 2024
f6db48a
Merge pull request #2201 from Roasbeef/v-0-24-2
guggero Jun 21, 2024
4bff778
psbt: decode keytype as compact size
guggero Jun 25, 2024
cc26860
rpcclient: update error str to match both versions (#2205)
yyforyongyu Jun 25, 2024
b2eec96
Merge pull request #2206 from guggero/psbt-serialization-fix
guggero Jun 26, 2024
1396690
Sending RPC requests through unix sockets (#2168)
robertmin1 Jun 26, 2024
d881c68
Fix the btcctl uptime command
cec489 Jun 27, 2024
4712e20
ffldb: throw error when attempting to delete an open file
kcalvinalvin Jul 1, 2024
8b5f2aa
ffldb: add check for deleting files that are open
kcalvinalvin Jul 1, 2024
8ed8ef1
ffldb: refactor out file close code into its own method
kcalvinalvin Jul 1, 2024
c9fae1a
ffldb: close block files before deleting them
kcalvinalvin Jul 1, 2024
e5d15fd
btcec/ecdsa: remove error return value for SignCompact (#2211)
zhiqiangxu Jul 10, 2024
2134387
Merge pull request #2208 from kcalvinalvin/2024-07-01-close-blockfiles
Roasbeef Jul 12, 2024
ff2e03e
chore: fix some comments for struct field (#2214)
linghuying Jul 16, 2024
cefeeaa
mod+rpcserver: bump to latest version of btcec
guggero Jul 23, 2024
b161cd6
Merge pull request #2218 from guggero/btcec-fix
Roasbeef Jul 23, 2024
3eda1a5
blockchain: copy utxo status bytes to avoid UB
Crypt-iQ Aug 6, 2024
97400aa
Merge pull request #2225 from Crypt-iQ/statusbytes_08062024
Roasbeef Aug 9, 2024
8791081
chore: fix some comments
lencap Aug 9, 2024
b00cec6
rpcclient: signet support
wydengyre Aug 13, 2024
ee7cf5e
wire: check TXID length before creating outpoint
jharveyb Aug 14, 2024
913f95b
Updated github.com/btcsuite/btcd to address CVE-2024-34478
AlexsandroRyan Aug 15, 2024
bda7977
Merge pull request #2235 from AlexsandroRyan/pkg-update-checkmarx-cve
Roasbeef Aug 15, 2024
029e5a3
Merge pull request #2233 from jharveyb/txid_string_check
Roasbeef Aug 15, 2024
1a1dd2a
btcjson: check if both begin and end are numbers in `UnmarshalJSON`
brunoerg Aug 23, 2024
2b53ed1
Merge pull request #2230 from wydengyre/rpcclient-signet
guggero Aug 26, 2024
ed879ea
btcjson: turn warnings into StringOrArray type
guggero Sep 2, 2024
67b8efd
Merge pull request #2245 from guggero/getnetworkinfo-warnings
Roasbeef Sep 21, 2024
35df801
Formatting code with gofmt
huochexizhan Sep 25, 2024
e9b505d
Merge pull request #2255 from huochexizhan/master
guggero Oct 8, 2024
b4afc08
Merge pull request #2228 from lencap/master
Roasbeef Oct 8, 2024
019988b
multi: fix typos
omahs Oct 8, 2024
433781a
multi: fix typos
threewebcode Oct 8, 2024
b513ac2
docs: correct link to redirect to btcutil docs
sanrinconr Oct 8, 2024
ee68dc6
btcec+mempool: delete minor unreachable code caused by t.Fatal
Abirdcfly Oct 8, 2024
44c874f
rpcclient: add http timeout
ziggie1984 Oct 10, 2024
24eb815
Merge pull request #2256 from ziggie1984/timeout-https-client
guggero Oct 11, 2024
684d64a
Add support for wtxidrelay message. (#2272)
marcopeereboom Nov 6, 2024
10ef9cc
main: add flag to write execution traces
kcalvinalvin Aug 6, 2024
e9d95ee
Merge pull request #2223 from kcalvinalvin/2024-08-06-execution-trace…
Roasbeef Nov 20, 2024
38af045
wire: add bitcoin network magic for default SigNet
starius Nov 21, 2024
48c0295
wire, peer: fix broken ibd
kcalvinalvin Nov 29, 2024
25c804f
Merge pull request #2281 from kcalvinalvin/2024-11-29-fix-ibd-not-wor…
Roasbeef Dec 3, 2024
814a1fc
rpctest: make sure to `WaitForShutdown`
yyforyongyu Nov 26, 2024
42d6eba
Fix non-root hosts failing on resolving DNS
same-id Oct 27, 2024
ec0b90d
Merge pull request #2269 from same-id/fix-non-root-hosts
Roasbeef Dec 5, 2024
e646d43
Merge pull request #2277 from yyforyongyu/fix-shutdown-itest
Roasbeef Dec 10, 2024
db5318b
rpcclient: safe read and write to batch
ynewmann Nov 28, 2024
b1b1e95
Merge pull request #2273 from ynewmann/fix/batch-data-race
guggero Dec 18, 2024
bdb0b3d
psbt: cleanup code
guggero Dec 26, 2024
c2b47e0
main: add prune documentation to sample-btcd.conf (#2299)
kcalvinalvin Jan 2, 2025
8211142
typo-Update register_test.go (#2291)
romashka-btc Jan 9, 2025
f3bd1f5
Merge pull request #2276 from starius/wire-signet
Roasbeef Jan 14, 2025
bda0481
psbt: add global XPubs to packet
guggero Dec 26, 2024
09ba026
Merge pull request #2296 from btcsuite/psbt-global-xpub
guggero Jan 14, 2025
75a1d41
Update license
davidcardenasus Jan 15, 2025
aace7a9
netsync: don't ask for blocks from peers on the same block height
kcalvinalvin Nov 7, 2024
ca8059b
bump go mod versions
gosunuts Feb 10, 2025
380c66b
Merge pull request #2316 from rabbitprincess/feature/bump-go-version
guggero Feb 11, 2025
c448768
refactor: using slices.Contains to simplify the code
finaltrip Feb 12, 2025
aa58ce2
Merge pull request #2317 from finaltrip/master
yyforyongyu Feb 13, 2025
bb52d7d
Merge pull request #2303 from davidcardenasus/master
yyforyongyu Feb 13, 2025
0c40dd0
rpcclient: clarify GetBlockCount description
starius Feb 17, 2025
d7aa8e5
workflows: rename `go.yml` to `main.yml`
yyforyongyu Mar 4, 2025
d9e3077
workflows: update versions of the actions
yyforyongyu Mar 4, 2025
b4a1215
github: add pull request template
yyforyongyu Mar 4, 2025
dc88df9
github: add issue template
yyforyongyu Mar 4, 2025
2a64716
Merge pull request #2331 from yyforyongyu/update-ci
Roasbeef Mar 5, 2025
857e8a4
gitignore: ignore `DS_Store`
yyforyongyu Mar 6, 2025
bf5e733
docs: update contribution guidelines and links
yyforyongyu Mar 6, 2025
6f09db1
multi:use t.TempDir replace os.MkdirTemp
petersssong Mar 7, 2025
c7191d2
Merge pull request #2334 from petersssong/master
guggero Mar 7, 2025
7af8852
multi: remove deprecated io/ioutil
argentpapa Mar 9, 2025
6afce8d
Merge pull request #2336 from argentpapa/master
guggero Mar 10, 2025
cba8822
Merge pull request #2333 from yyforyongyu/update-guides
Roasbeef Mar 11, 2025
8d27ef3
gitignore: ignore IDEA files
bullet-tooth Feb 10, 2025
b1ab1de
multi: fix typos
bullet-tooth Feb 10, 2025
2aa26d3
wire: add TestNet4
bullet-tooth Feb 10, 2025
65a2972
chaincfg: add TestNet4 params
bullet-tooth Feb 10, 2025
0ef589e
blockchain: add BIP94 support
bullet-tooth Feb 10, 2025
6896e50
cmd: add TestNet4 config param
bullet-tooth Feb 10, 2025
64fe10c
dbtool: add TestNet4 config param
bullet-tooth Feb 10, 2025
3e04a3e
rpcclient: add TestNet4 config param support
bullet-tooth Feb 10, 2025
078a698
btcd: add TestNet4 config param
bullet-tooth Feb 10, 2025
9c841ed
build: add rapid as a dep
Roasbeef Mar 6, 2025
591d7e1
blockchain: add property-based tests for assertNoTimeWarp
Roasbeef Mar 6, 2025
a4f82f2
blockchain: implement AlwaysActiveHeight for forced deployment activa…
Roasbeef Mar 10, 2025
4f4ea81
Merge pull request #2339 from Roasbeef/testnet4-bip9
Roasbeef Mar 18, 2025
5ace0a6
multi: deprecation gocov
petersssong Mar 14, 2025
43a870e
Merge pull request #2304 from kcalvinalvin/2025-01-16-dont-ask-for-bl…
Roasbeef Mar 21, 2025
06cf379
refactor: use maps.Copy for cleaner map handling
xinhangzhou Mar 24, 2025
679a31f
Merge pull request #2340 from petersssong/master
Roasbeef Mar 24, 2025
cae3fb6
docs: update contribution link
quantix9 Mar 25, 2025
7d6aef9
Merge pull request #2348 from quantix9/fix/link
guggero Mar 25, 2025
f6aa7a8
Merge pull request #2343 from xinhangzhou/master
yyforyongyu Mar 26, 2025
990d952
psbt: check path minimum length
guggero Apr 4, 2025
cd05d9a
Merge pull request #2352 from guggero/psbt-size-check
Roasbeef Apr 7, 2025
cabd365
database: shut the program down immediately if we run out of disk space
kcalvinalvin Apr 14, 2025
1eb974a
Merge pull request #2358 from kcalvinalvin/2025-02-17-exit-when-runni…
Roasbeef May 6, 2025
16c2b92
psbt: overflow checks when computing Taproot BIP32 derivation min size
ffranr May 18, 2025
565a7a8
psbt: limit value size in ReadTaprootBip32Derivation to prevent OOM
ffranr May 23, 2025
d79d37d
ellswift: introduce ElligatorSwift encoding and decoding funcs
Crypt-iQ Jul 18, 2024
c324e19
v2transport: introduce FSChaCha20, FSChaCha20Poly1305 handshake
Crypt-iQ Jul 19, 2024
f9c0058
wire: introduce encoding/decoding funcs for v2 messages
Crypt-iQ Jul 25, 2024
824e163
server.go+peer: enable v2 functionality in peer code
Crypt-iQ Jul 25, 2024
6588e2e
v2transport: Add detailed logging to transport implementation
Roasbeef Mar 28, 2025
b5f0ebb
v2transport+server+peer: add v2->v1 downgrade error if EOF during han…
Crypt-iQ Apr 21, 2025
675d300
peer+server.go: pendingReconnects map to reconnect to downgraded v2->…
Crypt-iQ May 3, 2025
2d2bf57
server.go+connmgr: changes to trigger a reconnect in connmgr
Crypt-iQ May 4, 2025
c6b2553
rpcserver: expose v2 connection status in getpeerinfo
Roasbeef Mar 29, 2025
1ffd7b4
v2transport: export maxGarbageLen
Roasbeef May 23, 2025
53afae4
peer: use random garbage length for v2 peers
Roasbeef May 23, 2025
be67c07
peer: log when we downgrade outbound peers from v2 to v1
Roasbeef May 23, 2025
ef0e43b
multi: refactor v2 -> v1 downgrade logic
Roasbeef May 24, 2025
5ab25f3
config: add new --v2transport option to gate BIP 324
Roasbeef May 26, 2025
253c36d
Merge pull request #2260 from Crypt-iQ/v2_transport
Roasbeef Jun 3, 2025
00db18b
v2transport: minor style fixes
Roasbeef Jun 3, 2025
f44d32b
v2transport: reduce size of module by shedding dep on wire package
Roasbeef Jun 4, 2025
48058b0
v2transport+btcd: update to btcec v2.3.5
Roasbeef Jun 4, 2025
0cba26d
Merge pull request #2374 from ffranr/2372-fix-bip32-derivation-overfl…
yyforyongyu Jun 6, 2025
089f012
Merge pull request #2381 from Roasbeef/v2-transport-module
Roasbeef Jun 6, 2025
56cb0bb
v2transport: fix module path
Roasbeef Jun 6, 2025
7716758
Merge pull request #2383 from Roasbeef/v2-module-fix
Roasbeef Jun 6, 2025
5f415da
build: remove replace directives left over after BIP 324 PRs
Roasbeef Jun 6, 2025
ac58f69
Merge pull request #2384 from Roasbeef/bip324-modules
Roasbeef Jun 6, 2025
e5d2ae4
txscript: add more detail to invalid tapscript merkle proof error
Roasbeef Dec 3, 2024
3afc25b
Merge pull request #2284 from Roasbeef/ctrl-block-error
Roasbeef Jun 19, 2025
3913a72
main+wire: fix line too long
yyforyongyu Jun 23, 2025
c96d061
wire: refactor `BtcDecode` and patch unit test
yyforyongyu Jun 23, 2025
796d0ef
main: add method `pushInventory` to be used in `OnGetData`
yyforyongyu Jun 23, 2025
9dc2503
main: refactor `OnGetData` to simplify the logic
yyforyongyu Jun 23, 2025
1827fcf
main: fix typo
yyforyongyu Jun 25, 2025
e4c44fe
Print a readable error before os.Exit(1) in btcctl
bshramin Jul 1, 2025
91daea9
Merge pull request #2389 from yyforyongyu/refactor
Roasbeef Jul 2, 2025
1d9a130
Merge pull request #2322 from starius/block-count
Roasbeef Jul 2, 2025
2c9907c
Merge pull request #2393 from bshramin/btcctl-config-error
guggero Jul 3, 2025
73344db
CI: add gemini assist for code reviews
mohamedawnallah Jul 9, 2025
fa8d919
Merge pull request #2395 from mohamedawnallah/addGeminiCodeAssist
guggero Jul 10, 2025
bc52e09
p2p: remove alert msg
brunoerg Jul 10, 2025
c9bd7b4
txscript: add new ScriptTemplate DSL for writing Scripts
Roasbeef Jul 18, 2024
c6b5b83
Merge pull request #2396 from brunoerg/2025-07-remove-alert
Roasbeef Jul 11, 2025
4530538
Merge pull request #2216 from Roasbeef/script-template
Roasbeef Jul 11, 2025
4727f32
Update Go module and dependencies
Aharonee May 19, 2025
9adca74
Merge pull request #2375 from Aharonee/chore/update_psbt_deps
yyforyongyu Jul 14, 2025
5e69e56
btcutil/bloom: align hash function count with filter capacity
gijswijs Jun 7, 2025
d5cd95b
wire: optimize parsing for CFCheckpkt message, reduce allocs by 96%
Roasbeef Jul 15, 2025
9181aa1
Merge pull request #2398 from Roasbeef/neutrino-opt
yyforyongyu Jul 16, 2025
e8ea247
.gemini: add `styleguide.md`
yyforyongyu Jul 16, 2025
ab068f4
Merge pull request #2399 from mohamedawnallah/add-gemini-style-guide
yyforyongyu Jul 16, 2025
7b7644c
Merge pull request #2397 from gijswijs/bloom-update
Roasbeef Jul 22, 2025
6b2a9a4
btcjson: add stubs for SubmitPackage
bhandras May 5, 2025
5e45197
btcjson: add json parsing unit tests for SubmitPackage stubs
bhandras Jul 23, 2025
baebb83
Merge pull request #2366 from bhandras/submitpackage
Roasbeef Jul 28, 2025
22b4663
Makefile: Update dependencies and improve installation commands
gosunuts Mar 10, 2025
f190651
multi: apply make fmt to all files
gosunuts Mar 10, 2025
106cde6
golangci: add configuration file for linting
gosunuts Jul 11, 2025
ffcda0f
rpcclient: add bitcoind version dependent error matching
guggero Aug 15, 2025
ce72d63
Merge pull request #2405 from guggero/bitcoind-v30-error
Roasbeef Aug 20, 2025
c002ea3
Merge pull request #2320 from gosunuts/feature/fix-ci
Roasbeef Aug 20, 2025
2577dd3
Dockerfile: update go base image
gosunuts Aug 20, 2025
a4ddae2
Merge pull request #2409 from gosunuts/fix/dockerfile-go-version
yyforyongyu Aug 20, 2025
29f4215
Makefile+workflows: fallback to `GOPATH/bin` on non-existent `GOBIN`
mohamedawnallah Aug 20, 2025
e8097a1
Merge pull request #2410 from mohamedawnallah/fallback-to-GOPATH-bin-dir
Roasbeef Aug 20, 2025
31a762b
build: bump version to v0.25.0-beta.rc1
Roasbeef Sep 25, 2025
b7d0706
Merge pull request #2430 from Roasbeef/v-0-25-0-rc1
Roasbeef Sep 25, 2025
8f54cc6
musig2: add Session.RegisterCombinedNonce
sputn1ck Oct 7, 2025
21eb99e
musig2: add combinedNonce getter
sputn1ck Oct 8, 2025
442ef28
Merge pull request #2443 from sputn1ck/musig2_sign_with_agg_nonce
Roasbeef Oct 27, 2025
798b4ed
build: bump version to v0.25
Roasbeef Oct 27, 2025
582b999
rpcclient: ensure http dial respects timeout
wydengyre Oct 29, 2025
e764c17
Merge pull request #2447 from Roasbeef/v-25-branch
Roasbeef Nov 4, 2025
9ff0780
Merge pull request #2450 from FiveBellsSettlement/btc-client-correct-…
Roasbeef Nov 6, 2025
d3615dc
fix spelling error
jlopp Dec 25, 2025
8431527
Merge pull request #2468 from jlopp/spellcheck
yyforyongyu Jan 12, 2026
7d4da22
build: bump version of Go container for release builds
Roasbeef Jan 13, 2026
3eacced
Merge pull request #2471 from Roasbeef/container-version-bump
Roasbeef Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
36 changes: 36 additions & 0 deletions .gemini/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Config for the Gemini Pull Request Review Bot.
# https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github

# Enables fun features such as a poem in the initial pull request summary.
# Type: boolean, default: false.
have_fun: false

code_review:
# Disables Gemini from acting on PRs.
# Type: boolean, default: false.
disable: false

# Minimum severity of comments to post (LOW, MEDIUM, HIGH, CRITICAL).
# Type: string, default: MEDIUM.
comment_severity_threshold: MEDIUM

# Max number of review comments (-1 for unlimited).
# Type: integer, default: -1.
max_review_comments: -1

pull_request_opened:
# Post helpful instructions when PR is opened.
# Type: boolean, default: false.
help: false

# Post PR summary when opened.
# Type boolean, default: true.
summary: true

# Post code review on PR open.
# Type boolean, default: true.
code_review: true

# List of glob patterns to ignore (files and directories).
# Type: array of string, default: [].
ignore_patterns: []
291 changes: 291 additions & 0 deletions .gemini/styleguide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
# LND Style Guide

## Code Documentation and Commenting

- Always use the Golang code style described below in this document.
- Readable code is the most important requirement for any commit created.
- Comments must not explain the code 1:1 but instead explain the _why_ behind a
certain block of code, in case it requires contextual knowledge.
- Unit tests must always use the `require` library. Either table driven unit
tests or tests using the `rapid` library are preferred.
- The line length MUST NOT exceed 80 characters, this is very important.
You must count the Golang indentation (tabulator character) as 8 spaces when
determining the line length. Use creative approaches or the wrapping rules
specified below to make sure the line length isn't exceeded.
- Every function must be commented with its purpose and assumptions.
- Function comments must begin with the function name.
- Function comments should be complete sentences.
- Exported functions require detailed comments for the caller.

**WRONG**
```go
// generates a revocation key
func DeriveRevocationPubkey(commitPubKey *btcec.PublicKey,
revokePreimage []byte) *btcec.PublicKey {
```
**RIGHT**
```go
// DeriveRevocationPubkey derives the revocation public key given the
// counterparty's commitment key, and revocation preimage derived via a
// pseudo-random-function. In the event that we (for some reason) broadcast a
// revoked commitment transaction, then if the other party knows the revocation
// preimage, then they'll be able to derive the corresponding private key to
// this private key by exploiting the homomorphism in the elliptic curve group.
//
// The derivation is performed as follows:
//
// revokeKey := commitKey + revokePoint
// := G*k + G*h
// := G * (k+h)
//
// Therefore, once we divulge the revocation preimage, the remote peer is able
// to compute the proper private key for the revokeKey by computing:
// revokePriv := commitPriv + revokePreimge mod N
//
// Where N is the order of the sub-group.
func DeriveRevocationPubkey(commitPubKey *btcec.PublicKey,
revokePreimage []byte) *btcec.PublicKey {
```
- In-body comments should explain the *intention* of the code.
**WRONG**
```go
// return err if amt is less than 546
if amt < 546 {
return err
}
```
**RIGHT**
```go
// Treat transactions with amounts less than the amount which is considered dust
// as non-standard.
if amt < 546 {
return err
}
```
## Code Spacing and formatting
- Segment code into logical stanzas separated by newlines.
**WRONG**
```go
witness := make([][]byte, 4)
witness[0] = nil
if bytes.Compare(pubA, pubB) == -1 {
witness[1] = sigB
witness[2] = sigA
} else {
witness[1] = sigA
witness[2] = sigB
}
witness[3] = witnessScript
return witness
```
**RIGHT**
```go
witness := make([][]byte, 4)

// When spending a p2wsh multi-sig script, rather than an OP_0, we add
// a nil stack element to eat the extra pop.
witness[0] = nil

// When initially generating the witnessScript, we sorted the serialized
// public keys in descending order. So we do a quick comparison in order
// to ensure the signatures appear on the Script Virtual Machine stack in
// the correct order.
if bytes.Compare(pubA, pubB) == -1 {
witness[1] = sigB
witness[2] = sigA
} else {
witness[1] = sigA
witness[2] = sigB
}

// Finally, add the preimage as the last witness element.
witness[3] = witnessScript

return witness
```
- Use spacing between `case` and `select` stanzas.
**WRONG**
```go
switch {
case a:
<code block>
case b:
<code block>
case c:
<code block>
case d:
<code block>
default:
<code block>
}
```
**RIGHT**
```go
switch {
// Brief comment detailing instances of this case (repeat below).
case a:
<code block>

case b:
<code block>

case c:
<code block>

case d:
<code block>

default:
<code block>
}
```
## Additional Style Constraints
### 80 character line length
- Wrap columns at 80 characters.
- Tabs are 8 spaces.
**WRONG**
```go
myKey := "0214cd678a565041d00e6cf8d62ef8add33b4af4786fb2beb87b366a2e151fcee7"
```
**RIGHT**
```go
myKey := "0214cd678a565041d00e6cf8d62ef8add33b4af4786fb2beb87b366a2e1" +
"51fcee7"
```
### Wrapping long function calls
- If a function call exceeds the column limit, place the closing parenthesis
on its own line and start all arguments on a new line after the opening
parenthesis.
**WRONG**
```go
value, err := bar(a,
a, b, c)
```
**RIGHT**
```go
value, err := bar(
a, a, b, c,
)
```
- Compact form is acceptable if visual symmetry of parentheses is preserved.
**ACCEPTABLE**
```go
response, err := node.AddInvoice(
ctx, &lnrpc.Invoice{
Memo: "invoice",
ValueMsat: int64(oneUnitMilliSat - 1),
},
)
```
**PREFERRED**
```go
response, err := node.AddInvoice(ctx, &lnrpc.Invoice{
Memo: "invoice",
ValueMsat: int64(oneUnitMilliSat - 1),
})
```
### Exception for log and error message formatting
- Minimize lines for log and error messages, while adhering to the
80-character limit.
**WRONG**
```go
return fmt.Errorf(
"this is a long error message with a couple (%d) place holders",
len(things),
)

log.Debugf(
"Something happened here that we need to log: %v",
longVariableNameHere,
)
```
**RIGHT**
```go
return fmt.Errorf("this is a long error message with a couple (%d) place "+
"holders", len(things))

log.Debugf("Something happened here that we need to log: %v",
longVariableNameHere)
```
### Exceptions and additional styling for structured logging
- **Static messages:** Use key-value pairs instead of formatted strings for the
`msg` parameter.
- **Key-value attributes:** Use `slog.Attr` helper functions.
- **Line wrapping:** Structured log lines are an exception to the 80-character
rule. Use one line per key-value pair for multiple attributes.
**WRONG**
```go
log.DebugS(ctx, fmt.Sprintf("User %d just spent %.8f to open a channel", userID, 0.0154))
```
**RIGHT**
```go
log.InfoS(ctx, "Channel open performed",
slog.Int("user_id", userID),
btclog.Fmt("amount", "%.8f", 0.00154))
```
### Wrapping long function definitions
- If function arguments exceed the 80-character limit, maintain indentation
on following lines.
- Do not end a line with an open parenthesis if the function definition is not
finished.
**WRONG**
```go
func foo(a, b, c,
) (d, error) {

func bar(a, b, c) (
d, error,
) {

func baz(a, b, c) (
d, error) {
```
**RIGHT**
```go
func foo(a, b,
c) (d, error) {

func baz(a, b, c) (d,
error) {

func longFunctionName(
a, b, c) (d, error) {
```
- If a function declaration spans multiple lines, the body should start with an
empty line.
**WRONG**
```go
func foo(a, b, c,
d, e) error {
var a int
}
```
**RIGHT**
```go
func foo(a, b, c,
d, e) error {

var a int
}
```
## Use of Log Levels
- Available levels: `trace`, `debug`, `info`, `warn`, `error`, `critical`.
- Only use `error` for internal errors not triggered by external sources.
## Testing
- To run all tests for a specific package:
`make unit pkg=$pkg`
- To run a specific test case within a package:
`make unit pkg=$pkg case=$case`
## Git Commit Messages
- **Subject Line:**
- Format: `subsystem: short description of changes`
- `subsystem` should be the package primarily affected (e.g., `peer`, `rpcclient`).
- For multiple packages, use `+` or `,` as a delimiter (e.g., `peer+rpcclient`).
- For widespread changes, use `multi:`.
- Keep it under 50 characters.
- Use the present tense (e.g., "Fix bug", not "Fixed bug").
- **Message Body:**
- Separate from the subject with a blank line.
- Explain the "what" and "why" of the change.
- Wrap text to 72 characters.
- Use bullet points for lists.
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Bug report
about: Create a bug report. Please use the discussions section for general or troubleshooting questions.
title: '[bug]: '
labels: ["bug", "needs triage"]
assignees: ''
---

### Background

Describe your issue here.

### Your environment

* version of `btcd`
* which operating system (`uname -a` on *Nix)
* any other relevant environment details

### Steps to reproduce

Tell us how to reproduce this issue. Please provide stacktraces and links to code in question.

### Expected behaviour

Tell us what should happen

### Actual behaviour

Tell us what happens instead
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Discussions
url: https://github.com/btcsuite/btcd/discussions
about: For general or troubleshooting questions or if you're not sure what issue type to pick.
- name: Community Slack
url: https://lightning.engineering/slack.html
about: Please ask and answer questions here.
- name: Security issue disclosure policy
url: https://github.com/lightningnetwork/lnd#security
about: Please refer to this document when reporting security related issues.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest a new feature for `btcd`.
title: '[feature]: '
labels: enhancement
assignees: ''
---

**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->

**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Loading