Releases: amygdala-labs/horcrux
Release list
v3.3.2
Highlights
Urgent upgrade to patch rare double-sign possibility. See security disclosure.
Updating
If coming from v3.3.0, or v3.3.1, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with horcrux elect N
- Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.2.3:
- Shut down all cosigners and delete ~/.horcrux/raft directory
- Update binary or docker image
- Start cosigner nodes back up
What's Changed
Full Changelog: v3.3.1...v3.3.2
v3.3.1
Highlights
- Allow larger sign payloads with larger default socket read size of 1MB and
maxReadSizeconfig parameter - Fix debug server when using grpc connection, e.g. with horcrux-proxy
Updating
If coming from v3.3.0-rc1 or v3.3.0, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with horcrux elect N
- Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.2.3:
- Shut down all cosigners and delete ~/.horcrux/raft directory
- Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Make max read size configurable by @agouin in #273
- fix(runtime): debug server not starting due to blocking grpc serve by @agouin in #275
Full Changelog: v3.3.0...v3.3.1
v3.3.0
Highlights
- Support for CometBFT Vote Extensions which allows for signing an additional payload (vote extension) for precommits. Consumes an extra nonce when signing in threshold mode. This is factored into the nonce production rate.
Updating
If coming from v3.3.0-rc1, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with horcrux elect N
- Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.2.3:
- Shut down all cosigners and delete ~/.horcrux/raft directory
- Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Update Horcrux go.mod module path by @jakubbujny in #240
- vote extensions by @agouin in #242
- Bump github.com/opencontainers/runc from 1.1.10 to 1.1.12 in /test by @dependabot in #246
- Fix typos by @shapeshed in #251
New Contributors
- @jakubbujny made their first contribution in #240
- @shapeshed made their first contribution in #251
Full Changelog: v3.2.3...v3.3.0
v3.3.0-rc1
Highlights
- Support CometBFT Vote Extensions
What's Changed
- Update Horcrux go.mod module path by @jakubbujny in #240
- vote extensions by @agouin in #242
Updating
- Shut down all cosigners and delete ~/.horcrux/raft directory
- Update binary or docker image
- Start cosigner nodes back up
New Contributors
- @jakubbujny made their first contribution in #240
Full Changelog: v3.2.3...v3.3.0-rc1
v3.2.3
This patches an edge case bug introduced in v3.2.0 which could be encountered when a cosigner has downtime. The leader could get stuck, causing signing to stop even with threshold cosigners online.
Updating
If coming from v3.2.0-v3.2.2, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with
horcrux elect N - Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.1.0:
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Fix stuck leader when cosigner goes down by @agouin in #232
- Reverse where we start checking for a non-expired nonce, oldest -> newest by @misko9 in #234
- add unit tests for prune by @agouin in #235
- mitigate unexpected state by @agouin in #233
New Contributors
Full Changelog: v3.2.2...v3.2.3
v3.2.2
This patches an bug introduced in v3.2.0 which could be encountered when using horcrux with only one chain where the block times are 5+ seconds
Updating
If coming from v3.2.0 or v3.2.1, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with
horcrux elect N - Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.1.0:
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
Full Changelog: v3.2.1...v3.2.2
v3.2.1
This patches an edge case bug introduced in v3.2.0 which could be encountered with an unreachable cosigner #226
Updating
If coming from v3.2.0, this can be applied as a rolling upgrade, which prevents missed blocks:
- Shut down a non-leader cosigner, upgrade version, and restart
- Repeat for remaining non-leader cosigners
- elect one of the upgraded cosigners as the leader with
horcrux elect N - Shut down the initial leader cosigner, upgrade version, and restart
- elect initial leader as leader again if desired
If coming from ≤v3.1.0:
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
Full Changelog: v3.2.0...v3.2.1
v3.2.0
Highlights
- Much faster signing with nonce pre-sharing and GRPC multiplexing. Before: ~5ms + network latency of 4 round trips, After: ~2ms + network latency of single round trip #218
- Per-chain-id prometheus metrics #198
- Cosigner GRPC Server for integration with horcrux-proxy to multiplex block sign requests, also in preparation for Gordian.
Updating
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Bump github.com/libp2p/go-libp2p from 0.22.0 to 0.27.8 in /test by @dependabot in #189
- Fix race in leader election test by @agouin in #216
- chore: contributing + code of conduct by @reecepbcups in #208
- remote signer grpc server by @agouin in #215
- Update migrating.md by @akc2267 in #213
- Pre-share nonces by @agouin in #218
- Prom vecs by @agouin in #219
- Bump golang.org/x/net from 0.9.0 to 0.17.0 by @dependabot in #207
- Bump google.golang.org/grpc from 1.55.0 to 1.56.3 by @dependabot in #209
- Bump golang.org/x/net from 0.11.0 to 0.17.0 in /test by @dependabot in #206
- Bump github.com/ethereum/go-ethereum from 1.12.0 to 1.13.5 by @dependabot in #220
- Fix lint by @agouin in #222
- fix error checking over rpc by @agouin in #223
- Fix - running out of nonces under load by @agouin in #224
New Contributors
- @Gustavobelfort made their first contribution in #198 #219
- @reecepbcups made their first contribution in #208
- @akc2267 made their first contribution in #213
Full Changelog: v3.1.0...v3.2.0
v3.2.0-rc2
Highlights
- Much faster signing (~2ms + network latency of single round trip) with nonce pre-sharing and GRPC multiplexing #218
- Per-chain-id prometheus metrics #198
- Cosigner GRPC Server for integration with horcrux-proxy to multiplex block sign requests, also in preparation for Gordian.
Updating
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Bump github.com/libp2p/go-libp2p from 0.22.0 to 0.27.8 in /test by @dependabot in #189
- Fix race in leader election test by @agouin in #216
- chore: contributing + code of conduct by @reecepbcups in #208
- remote signer grpc server by @agouin in #215
- Update migrating.md by @akc2267 in #213
- Pre-share nonces by @agouin in #218
- Prom vecs by @agouin in #219
- Bump golang.org/x/net from 0.9.0 to 0.17.0 by @dependabot in #207
- Bump google.golang.org/grpc from 1.55.0 to 1.56.3 by @dependabot in #209
- Bump golang.org/x/net from 0.11.0 to 0.17.0 in /test by @dependabot in #206
- Bump github.com/ethereum/go-ethereum from 1.12.0 to 1.13.5 by @dependabot in #220
- Fix lint by @agouin in #222
- fix error checking over rpc by @agouin in #223
New Contributors
- @reecepbcups made their first contribution in #208
- @akc2267 made their first contribution in #213
Full Changelog: v3.1.0...v3.2.0-rc2
v3.2.0-rc1
Highlights
- Much faster signing (~2ms + network latency of single round trip) with nonce pre-sharing and GRPC multiplexing #218
- Per-chain-id prometheus metrics #198
- Cosigner GRPC Server for integration with horcrux-proxy to multiplex block sign requests, also in preparation for Gordian.
Updating
- Shut down all cosigners and delete
~/.horcrux/raftdirectory - Update binary or docker image
- Start cosigner nodes back up
What's Changed
- Bump github.com/libp2p/go-libp2p from 0.22.0 to 0.27.8 in /test by @dependabot in #189
- Fix race in leader election test by @agouin in #216
- chore: contributing + code of conduct by @reecepbcups in #208
- remote signer grpc server by @agouin in #215
- Update migrating.md by @akc2267 in #213
- Pre-share nonces by @agouin in #218
- Prom vecs by @agouin in #219
- Bump golang.org/x/net from 0.9.0 to 0.17.0 by @dependabot in #207
- Bump google.golang.org/grpc from 1.55.0 to 1.56.3 by @dependabot in #209
- Bump golang.org/x/net from 0.11.0 to 0.17.0 in /test by @dependabot in #206
- Bump github.com/ethereum/go-ethereum from 1.12.0 to 1.13.5 by @dependabot in #220
- Fix lint by @agouin in #222
New Contributors
- @reecepbcups made their first contribution in #208
- @akc2267 made their first contribution in #213
Full Changelog: v3.1.0...v3.2.0-rc1