This release introduces two notable features:
- Bridge node <> core endpoint sync over gRPC
- Archival trimming of historic block files
Bridge node sync over gRPC
⚠️ ⚠️ ⚠️
In this release, bridge nodes (BNs) will no longer use RPC for syncing against the given core endpoint. It will now use gRPC via #3998. Please make sure to pass a gRPC compatible (v3.3.0-arabica) core endpoint, passing the port via the --core.grpc.port
flag.
This also means there is no longer a RPCPort
field in the core
config. Instead, it is just Port
which refers to the gRPC
port of the core node.
⚠️ ⚠️ ⚠️
Additionally, it's possible to configure TLS for the gRPC connection via the following new flags:
--core.tls Specifies whether TLS is enabled or not. Default: false
--core.xtoken.path string specifies the file path to the JSON file containing the X-Token for gRPC authentication. The JSON file should have a key-value pair where the key is 'x-token' and the value is the authentication token. NOTE: the path is parsed only if coreTLS enabled.If left empty, the client will not include the X-Token in its requests.
Archival trimming of historic block files
For archival node runners (both full node and bridge node), archival trimming will now be enabled by default, cutting archival node disk use for historic blocks in roughly half via #4028.
Note that the previous shwap release contains a condition to prevent nodes freshly syncing from storing the fourth quadrant files (.q4
files) for historic blocks that are outside the sampling window, but did not contain the functionality to clean up .q4
files once a block becomes freshly outdated, so disk use reductions are noticed only for the period between the completed full sync --> now.
What's Changed
- feat!(core): remove dependency of RPC in favour of gRPC by @vgonkivs in #3998
- deps(go.mod): bump app by @renaynay in #4056
- fix(share/shwap/p2p/bitswap): set archivalPool ctx by @renaynay in #4052
- fix(goreleaser): tag_sort by @cristaloleg in #3972
- nodebuilder/pruner: Enforce light pruning by @renaynay in #3912
- feat(availability): env var to disable pruning by @Wondertan in #3949
- fix(ci): add param to specify tag by @cristaloleg in #3979
- fix(share/availability): add missing protection for autobatch by @walldiss in #3988
- refactor(share/availability/light | share/availability/full): Availability implementations are aware of sampling window, removed from DASer by @renaynay in #3957
- fix(api): add time.Duration and rsmt2d.Axis types by @cristaloleg in #3994
- fix(cmd/blob): fix namespace parsing in cli by @vgonkivs in #4003
- chore/make: add celestia-node make file for arabica testnet by @Bidon15 in #3992
- fix(sync/test): fix TestSyncStartStopLightWithBridge by @vgonkivs in #3990
- perf(shwap): cache Both Row sides by @Wondertan in #4005
- refactor(docgen): simplify init by @cristaloleg in #3997
- fix(nodebuilder/da): remove random print by @renaynay in #4029
- feat(modshare): implement GetRow by @vgonkivs in #4002
- Revert "fix(p2p): disable quic (#3937)" by @Wondertan in #4039
- chore(pruner): remove SpacedHeaderGenerator by @ronething-bot in #4032
- feat(modp2p): Ping and ConnectionState APIs by @Wondertan in #3989
- feat(share/availability/full): Introduce Q4 trimming for archival nodes by @renaynay in #4028
- chore(deps): upgrade celestia-app by @rootulp in #4024
- feat: lunar use dnsaddr by @smuu in #3741
Full Changelog: v0.21.1-arabica...v0.21.2-arabica