Releases: celestiaorg/celestia-node
v0.8.0-rc1
What's Changed
- feat(core/exchange): parallelise GetRangeByHeight request by @walldiss in #1962
- fix(nodebuilder/share): Invoke pubsub for shrex by @renaynay in #1976
Full Changelog: v0.8.0-rc0...v0.8.0-rc1
v0.8.0-rc0 - Phase 2 release candidate
Release candidate for Phase 2
What's Changed
BREAKING
- fix(shrex/peer-manager)!: hash validation on subjective node start by @walldiss in #1945
- refactoring(share/ipld)!: rework getLeavesByNamespace by @vgonkivs in #1870
FEATURE
- feat(nodebuilder/header): Add
Subscribe
method implementation by @renaynay in #1943 - feat(nodebuilder/node | api): Version the API by @renaynay in #1901
- feat: copy container security improvements from celestia-app by @smuu in #1913
- feat(core/listener): add resubscribe to core listener by @walldiss in #1972
- feat(nodebuilder/share): enable shrex for light nodes by @walldiss in #1856
REFACTOR
- refactor/fix(core/fetcher): cleanup core fetcher new block subscriber lifecycle by @walldiss in #1955
- perf(header): make HeaderSub msgid to be header hash by @Wondertan in #1964
BUG FIXES
- fix(nodebuilder/p2p): all full and bridge nodes use
dht.ModeServer
by @distractedm1nd in #1954
MISCELLANEOUS
- deps: bump libp2p by @Wondertan in #1956
- chore: extract libs/header into go-header by @Wondertan in #1947
- chore(.github/workflows): Bump lint version by @renaynay in #1966
- chore(header): get back the important notice about msg id by @Wondertan in #1967
- perf(modshare): increase the PeersLimit default by @Wondertan in #1968
- chore(core): Add logging by @renaynay in #1961
Full Changelog: v0.7.2...v0.8.0-rc0
v0.7.2 - Blockspace Race Patch
Please update your nodes!
This patch release includes several bug fixes found during the first phase of incentivised testnet, including one that is critical for network functionality.
Node runners on blockspacerace
- please update and re-sync the chain. You can do this by removing the block store and running init
and start
again.
For bridge
and full
, you can remove the block store by doing:
rm -r ~/<nodestore_path>/data ~/<nodestore_path>/transients ~/<nodestore_path>/index ~/<nodestore_path>/blocks
For light
, you can remove the block store by doing:
rm -r ~/<nodestore_path>/data
Please note that the phase for blockspacerace
for full and light nodes has not yet started.
This patch also includes a small breaking change: the config parameter for bootstraper
mode has been removed from the config and an environment variable has been introduced in its place. For details, check the description here.
What's Changed
BUG FIXES
- fix(nodebuilder): fsStore check for nil Datastore by @Wondertan in #1920
- fix(header/sync): add drift to recency detection by @Wondertan in #1922
- fix(core): Fix log that panics if !ok by @renaynay in #1927
- bugfix(libs/header/p2p): fix data race in test by @vgonkivs in #1928
- fix: only use gateway flag value when the value is changed by @distractedm1nd in #1936
- fix(libs/header/p2p): shuffle trusted peers before sending a request by @vgonkivs in #1903
- fix(rpc): allow methods with same names in different namespaces by @distractedm1nd in #1944
- fix(share): enabling discovery on light nodes by @distractedm1nd in #1950
- fix(core): Only assume empty square if reported square size is 1 and there are no txs by @renaynay in #1952
BREAKING
FEATURE
REFACTOR
- refactor(nodebuilder/das): update default DASer setting by @walldiss in #1912
- refactor(header/sync): cleanup sync head detection logic by @Wondertan in #1889
- refactor(fraud): extract fraud package to libs by @vgonkivs in #1916
- refactor(libs/header/p2p): extend logging in session by @vgonkivs in #1923
MISCELLANEOUS
- test(nodebuilder): Add test that also checks that empty block is stored by @renaynay in #1895
- chore(nodebuilder): tiny log fix by @renaynay in #1929
- chore(libs/header/p2p): change log level in case of ErrNotFound by @vgonkivs in #1937
New Contributors
Full Changelog: v0.7.1...v0.7.2
v0.7.1 - Patch Race
A patch release targeting various findings for the Blockspace Race ITN.
It mainly fixes the issue where the required metric for uptime observability wasn't emitted and ensured the recoverability of accounts via mnemonic.
Fixes
- fix(nodebuilder): Also invoke header store head metrics by @renaynay in #1906
- fix: Go ldflags inside Dockerfile by @jrmanes in #1900
- fix(nodebuilder): Ensure new generated account is recoverable via mnemonic by @renaynay in #1908
- fix(cmd): repo should be closed on defer by @Wondertan in #1911
Miscellaneous
- misc(core): Add debug log to
CoreListener
by @renaynay in #1909 - deps: update libp2p pubsub by @Wondertan in #1910
Full Changelog: v0.7.0...v0.7.1
v0.7.0 - Blockspace Race
This release is the culmination of a quarter of work from the celestia-node team. It contains a massive, breaking re-architecture of blocksync, among many other improvements and breaking changes.
This release also introduces the blockspacerace
testnet. It is only compatible with arabica
and blockspacerace
at the moment.
Please refer to the changelog for a comprehensive list of new features and refactorings.
What's Changed
BREAKING
- feat(header)!: introduce
header.Header
interface by @tzdybal in #1304 - refactor!: naming PFD/PayForData to PayForBlob by @distractedm1nd in #1582
- chore!: bump celestia app v0.12.0-rc2 by @evan-forbes in #1617
- feat!: add versioning for pubsub topics in fraud, header packages by @vgonkivs in #1620
- chore(nodebuilder/p2p)!: Upgrade arabica chain ID to
arabica-4
by @renaynay in #1696 - feat!: Move Dockerfile to the root of the project by @jrmanes in #1693
- chore!: bump arabica-4 genesis hash by @Bidon15 in #1701
- chore(nodebuidler/p2p)!: Upgrade arabica to
arabica-5
by @renaynay in #1725 - chore!: bump arabica-5 genesis-hash by @Bidon15 in #1735
- chore(nodebuilder/p2p)!: Upgrade arabica chainID for shrex upgrade by @renaynay in #1760
- feat(share)!: blocksync re-architecture by @distractedm1nd in #1730
- chore(nodebuilder/p2p)!: Update genesis hash by @renaynay in #1772
- feat(nodebuilder/header)!: Implement remainder of
header.Module
by @renaynay in #1748 - feat!(p2p): put networkID as the first sub-string in protocolID by @vgonkivs in #1808
- refactoring!(libs/header): simplify return params in store.Append by @vgonkivs in #1831
- feat(share/shrex)!: cleanup shrex server side timeouts by @walldiss in #1885
FEATURE
- feat(share/discovery): Add callback on peers set updates. by @walldiss in #1609
- feat(share/eds): adding traces to edsstore, write/read eds, and getters by @distractedm1nd in #1594
- feat: implement broadcasting a data hash through eds-sub by @vgonkivs in #1473
- feat(share): implements sync CascadeGetter by @Wondertan in #1628
- feat: using tmjson encoding on
core.Header
by @distractedm1nd in #1641 - feat(node | das | libs/header/sync): add total uptime node metrics + totalSampled das metrics + totalSynced sync metrics by @derrandz in #1638
- Add cel-key utility to Docker images by @jcstein in #1672
- feat(share/shrex): add Rate limit middleware for shrex servers by @walldiss in #1745
- feat(share): allow LNs to GetSharesByNamespace and GetEDS over shrex by @distractedm1nd in #1751
- feat(libhead): introduce peer scoring params for HeaderSub topic by @Wondertan in #1766
- feat(libfraud): introduce peer scoring params for FraudSub topic by @Wondertan in #1767
- feat(fraud): String for FraudType by @Wondertan in #1805
- feat(modp2p): add whitelist for ResourceManager, as eclipse protection by @Wondertan in #1809
- feat(modp2p): tune GossipSub by @Wondertan in #1756
- misc(libs/header): verify chainID in incoming headers by @vgonkivs in #1746
- feat: add libheader exchange metrics by @derrandz in #1794
- feat(modp2p): Make IP Colocation configurable for pubsub parameters by @derrandz in #1849
- feat(share/shrex): collect errors from shrex getter by @walldiss in #1884
- feat(libs/header/p2p): allow server to return all stored headers that correspond to the requested range by @vgonkivs in #1807
- feat(nodebuilder/p2p): Add
blockspacerace
by @renaynay in #1904
REFACTOR
- refactor(share/p2p): ironing out differences between shrex protocols by @distractedm1nd in #1611
- refactor(header): Extract
CoreExchange
andCoreListener
out of the header root package by @renaynay in #1627 - refactor(ipld): removing nmt hasher by @distractedm1nd in #1651
- improvement(libs/header): Check for requested height before fetching it from the store by @vgonkivs in #1706
- refactor(share): use Relay instead of Subscription for shrexsub and reduce lightavail log verbosity by @distractedm1nd in #1774
- refactor(nodebuilder): Allow setting keyring backend
file
with--keyring.backend
flag by @renaynay in #1565 - refactor(share/p2p): Discovery controls
ensurePeers
lifecycle by @renaynay in #1789 - improvement(das): use header from header.sub instead of store for recent jobs by @walldiss in #1802
- refactor(das|share): Cleanup timeouts through sampling stack by @walldiss in #1791
- perf(share): don't broadcast datahash of empty EDS by @Wondertan in #1814
- perf(share/full): avoid loading EDS for subsequent availability checks by @Wondertan in #1819
- improvement(cmd): Auth cmd generates new priv key for jwt if not yet found in node store by @renaynay in #1823
- refactor(share/p2p/shrexeds): Increase ODS write deadline to block time and add hash to log by @renaynay in #1816
- refactor(libhead): unify VerifyAdjacent and VerifyNonAdjacent into Verify by @Wondertan in #1777
- refactoring(header/syncer): request verified range of headers by @vgonkivs in #1749
BUG FIXES
- fix(header/p2p): fix error string by @vgonkivs in #1618
- fix(daser) replace catchUpDoneCh channel gracefuly by @walldiss in #1631
- fix(p2p/pubsub): extend pubsub options by @vgonkivs in #1634
- fix(core/listener): Only broadcast datahash if core node is not syncing by @renaynay in #1652
- fix(share/discovery): decouple peer discovery from event processing by @vgonkivs in #1639
- fix(libs/header/sync): Make ranges.Add thread-safe by @tzdybal in #1649
- fix:
namespaced_data
endpoint by @rootulp in #1526 - fix(header/p2p): add trivial retrying for trustedPeer requested by @Wondertan in #1647
- fix(share/discovery): add loop to read events from the channel multiple times by @vgonkivs in #1684
- bugfix(libs/header): fix data race in syncer by @vgonkivs in #1682
- bugfix(libs/header): store incoming head in syncer by @vgonkivs in #1724
- fix(das | share): handle
ErrByzantine
frommultierr
s when found withcontext.Canceled
by @renaynay in #1762 - fix(nodebuilder/share): Revert providing
shrex.Getter
and its associated components to light node by @renaynay in #1770 - fix(eds): don't commit reconstructed EDS in Retriever by @Wondertan in #1788
- fix(header): add timeout for the head retrieval by @Wondertan in #1793
- fix(nodebuilder/share): Only provide necessary components to Bridge by @renaynay in #1778
- fix(core): Don't store eds if its hash already exists in eds.Store by @renaynay in #1786
- fix: fix protocolID representation by @vgonkivs in #1810
- fix(modp2p): pass only resolved addresses to resource manager by @Wondertan in https://github.com/celestiaorg/celestia-nod...
v0.7.0-rc10
More bug fixes and improvements to ShrEx.
What's Changed
BREAKING
- refactor(libhead): unify VerifyAdjacent and VerifyNonAdjacent into Verify by @Wondertan in #1777
FEATURE
IMPROVEMENTS
- feat(das): Don't sample recent jobs twice by @walldiss in #1815
- perf(share): don't broadcast datahash of empty EDS by @Wondertan in #1814
- misc(libs/header): verify chainID in incoming headers by @vgonkivs in #1746
- perf(share/full): avoid loading EDS for subsequent availability checks by @Wondertan in #1819
- improvement(cmd): Auth cmd generates new priv key for jwt if not yet found in node store by @renaynay in #1823
- feat(modp2p): Make IP Colocation configurable for pubsub parameters by @derrandz in #1849
BUG FIXES
- test(share/getters): Fix cascade test by @renaynay in #1820
- bugfix(libs/header/exchange): do not request an empty range by @vgonkivs in #1818
- fix(libs/header/syncer): fix bounds during syncing by @vgonkivs in #1850
MISC
- refactor(share/p2p/shrexeds): Increase ODS write deadline to block time and add hash to log by @renaynay in #1816
- chore(deps): bump go.opentelemetry.io/otel from 1.11.2 to 1.13.0 by @dependabot in #1709
- chore(deps): bump go.opentelemetry.io/otel/trace from 1.11.2 to 1.13.0 by @dependabot in #1710
- chore: bump app to official v0.12.0 by @evan-forbes in #1843
- chore(deps): bump golang.org/x/crypto from 0.5.0 to 0.6.0 by @dependabot in #1826
- chore(deps): bump github.com/hashicorp/go-retryablehttp from 0.7.1-0.20211018174820-ff6d014e72d9 to 0.7.2 by @dependabot in #1827
Full Changelog: v0.7.0-rc9...v0.7.0-rc10
v0.7.0-rc9
What's Changed
BREAKING
BUG FIXES
- fix(modp2p): pass only resolved addresses to resource manager by @Wondertan in #1811
MISC
- chore(deps): bump github.com/ipld/go-car from 0.5.0 to 0.6.0 by @dependabot in #1691
- refactor: Keep only the common CI by @jrmanes in #1750
Full Changelog: v0.7.0-rc8...v0.7.0-rc9
v0.7.0-rc8 - ShrEx stability
This RC contains several bug fixes / hardenings for the new blocksync architecture (ShrEx
) and also the extension of the header module.
What's Changed
BREAKING
- feat(nodebuilder/header)!: Implement remainder of
header.Module
by @renaynay in #1748 - feat!(p2p): put networkID as the first sub-string in protocolID by @vgonkivs in #1808
FEATURES
- refactor(nodebuilder): Allow setting keyring backend
file
with--keyring.backend
flag by @renaynay in #1565 - feat(libhead): introduce peer scoring params for HeaderSub topic by @Wondertan in #1766
- feat(libfraud): introduce peer scoring params for FraudSub topic by @Wondertan in #1767
- feat(modp2p): add whitelist for ResourceManager, as eclipse protection by @Wondertan in #1809
IMPROVEMENTS
- refactor(share): use Relay instead of Subscription for shrexsub and reduce lightavail log verbosity by @distractedm1nd in #1774
- refactor(share/p2p): Discovery controls
ensurePeers
lifecycle by @renaynay in #1789 - improvement(das): use header from header.sub instead of store for recent jobs by @walldiss in #1802
- feat(modp2p): tune GossipSub by @Wondertan in #1756
BUG FIXES
- fix(eds): don't commit reconstructed EDS in Retriever by @Wondertan in #1788
- fix(header): add timeout for the head retrieval by @Wondertan in #1793
- deps: bump libp2p and all supporting libs by @Wondertan in #1800
- fix(nodebuilder/share): Only provide necessary components to Bridge by @renaynay in #1778
- fix(core): Don't store eds if its hash already exists in eds.Store by @renaynay in #1786
- refactor(das|share): Cleanup timeouts through sampling stack by @walldiss in #1791
MISCELLANEOUS
- refactor: Cleanup old Pipeline by @jrmanes in #1764
- das: Add timeout log for how long failed sampling routine took by @renaynay in #1783
- swamp: rename Components to Config by @richardgreg in #1787
- chore(.github): Add @walldiss to codeowners by @renaynay in #1769
- refactor(modp2p): Introduce String method for Network and use it everywhere by @Wondertan in #1765
- feat(fraud): String for FraudType by @Wondertan in #1805
- chore(modp2p): update blocktime to match core by @distractedm1nd in #1773
New Contributors
- @richardgreg made their first contribution in #1787
Full Changelog: v0.7.0-rc7...v0.7.0-rc8
v0.7.0-rc7
v0.7.0-rc6 - ShrEx!
(For real this time).
This RC fixes an issue found with light nodes' use of shrex.Getter. This issue will be resolved in later iterations.
What's Changed
- fix(nodebuilder/share): Revert providing
shrex.Getter
and its associated components to light node by @renaynay in #1770
Full Changelog: v0.7.0-rc5...v0.7.0-rc6