Skip to content

Releases: celestiaorg/celestia-node

v0.4.0

17 Oct 11:17
d239616
Compare
Choose a tag to compare

v0.4.0 | 2022-10-17

This release includes large refactorings, breaking changes and improvements related to four primary work-streams: building out the public API, hardening HeaderExchange, refactoring blocksync architecture and increasing metrics coverage.

Most notably, this release contains:

  • 2 breaking changes, in addition to other improvements, to HeaderExchange as part of our work to harden and optimise it
  • A large-scale refactoring to the structure of the new nodebuilder package (formerly node) as well as the way components are constructed/managed, in an effort to clarify the boundaries between components and create a cleaner foundation for building out the node's API
  • Upgrade to the latest breakingcelestia-app dependency, including using instance of app instead of kvstore in our integration tests (located in nodebuilder/tests)
  • Metrics coverage for das and fraud packages, in addition to increased coverage for other key celestia-node behaviours
  • Consolidation of ipld and share packages into a cleaner, better defined structure, as well as general improvements to ipld to remove redundant/unnecessary behaviours

What's Changed

BREAKING

  • feat!(header/p2p): add deadlines on stream and rework proto by @vgonkivs in #1038
  • feat!(header/p2p): extend header response with status code by @vgonkivs in #1135
  • chore!: upgrade to celestia-app v0.7.0 by @rootulp in #1147

FEATURES

IMPROVEMENTS

BUG FIXES

  • bugfix(fraud): close stream properly by @vgonkivs in #1152
  • bugfix(nodebuilder/fraud): remove fraud.Subscriber from module by @vgonkivs in #1169
  • bugfix: fix flakiness in TestFullReconstructFromLights by @vgonkivs in #1171
  • fix(ipld/plugin): don't truncate a type byte when it's not in the data by @Wondertan in #1196
  • fix(nodebuider/header): initialize Store during start lifecycle instead of fx.Invoke by @Wondertan in #1218
  • fix(nodebuilder): fix broken shutdown for services on fraud proofs receival by @distractedm1nd in #1220

MISC

  • log(header): Add detailed error for non-adjacent header attempt by @renaynay in #1123
  • log(das): add extra debug logs for sampled headers by @walldiss in #1157
  • chore(deps): bump go.opentelemetry.io/otel/metric from 0.32.0 to 0.32.1 by @dependabot in #1167
  • chore(deps): bump codecov/codecov-action from 3.1.0 to 3.1.1 by @dependabot in #1164
  • chore(deps): bump go.uber.org/fx from 1.18.1 to 1.18.2 by @dependabot in #1179
  • Disable verbose log on Debug Level for badger, watchdog, and basichost. by @HoytRen in #1180
  • Fix markdown lint workflow to run on directories by @adlerjohn in #1170
  • fix (.github/workflows): Skip over integration tests in unit test action by @renaynay in #1193
  • fix: README link for header doc by @rootulp in #1192
  • nodebuilder: Remove current borked RPC tests in favour of implementing better ones with #962 by @renaynay in #1190
  • docs/adr: add daser parallelization adr by @walldiss in #1096
  • chore: disable debug log in Makefile by @Wondertan in #1210
  • fix(nodebuilder/header): Only provide p2p.Subscriber as p2p.Broadcaster for bridge node by @renaynay in #1203
  • chore(nodebuilder/header): remove dead metrics code by @Wondertan in #1217
  • Remove watchdog since go 1.19 don't need it anymore. by @HoytRen in #1212
  • chore(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0 by @dependabot in #1222
  • .github: add new ci_release workflow to unify CI by @MSevey in #1191

New Contributors

Full Changelog: v0.3.1...v0.4.0

v0.3.1

22 Sep 14:23
8bce8d0
Compare
Choose a tag to compare

v0.3.1 - DASer parallelisation and quick fix to cel-key

This patch release notably includes an optimisation to the DASer in order to provide faster sampling over past headers and a fix to the cel-key utility to read from the correct node directory (which was broken in v0.3.0).

What's Changed

FEATURES

IMPROVEMENTS

  • refactor(service/state): CoreAccessor relies on header.Head instead of header.Getter by @renaynay in #1088
  • das: Parallelise DASer by @walldiss in #988
  • header/store: use an atomic.Pointer instead of Lock by @Martichou in #1079

BUG FIXES

  • fix(cel-key): reading from correct directory by @distractedm1nd in #1087
  • refactor(service/state): Fix log to return correct height of balance request by @renaynay in #1089

DEPENDENCIES

  • chore(deps): bump github.com/multiformats/go-multiaddr from 0.6.0 to 0.7.0 by @dependabot in #1071
  • chore(deps): bump go.opentelemetry.io/otel/sdk from 1.9.0 to 1.10.0 by @dependabot in #1094
  • chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.9.0 to 1.10.0 by @dependabot in #1098
  • chore(deps): Upgrading to go 1.19 by @distractedm1nd in #1067
  • chore(deps): bump go.opentelemetry.io/otel/metric from 0.31.0 to 0.32.0 by @dependabot in #1136
  • refactor(service/state): Use DefaultProofRuntime instead of ibc-go VerifyMembership endpoint by @renaynay in #1131
  • chore: remove deprecated linters by @rootulp in #1150
  • chore(deps): bump github.com/ipfs/go-cid from 0.3.0 to 0.3.2 by @dependabot in #1053

MISC

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

13 Sep 11:33
00d80c4
Compare
Choose a tag to compare

v0.3.0 | 2022-09-06

Arabica Testnet Release

It has been half a year since our last minor release, and, as a result, our third minor release of celestia-node introduces a large range of new and hardened functionality. Some key highlights can be found below:

Highlights

  • Re-introduction of full node type
    • Operates solely on the p2p network and independently from the Core network
    • Able to sync and reconstruct block data from light nodes only
    • Secures light node by generating and broadcasting fraud proofs
    • Light nodes discover Full Nodes over p2p network via DHT
  • Implementation of state interaction via a celestia-core connection (ability to read and verify balances, as well as submit transactions to the celestia network), specifically the ability to submit a PayForData transaction
  • Data availability sampling (DASing) over headers in the past and local caching of successful sampling results
  • Introduction of FraudService
  • Alpha node API
  • Key management utility via cel-key
  • Introduction of telemetry via opentelemetry
  • Parallelized GetSharesByNamespace resulting in faster application data retrieval
  • Removes Core Node embedding for Bridge Node

Migration

The Node's Store default directory path has changed, and If you have been running any of the past two release candidates against mamaki and want to retain your data, please run the Node with --node.store ~/.celestia-<node_type> flag or migrate your store from $HOME/.celestia-<node_type> to $HOME/.celestia-<node_type>-mamaki.

BREAKING CHANGES

FEATURES

IMPROVEMENTS

BUG FIXES

MISCELLANEOUS

New Contributors

Full Changelog: https://github.com/celestiaorg/celestia-node/compare/v0.2.0...v0.3.0## v0.3.0 | 2022-09-06

v0.3.0-rc2

01 Jul 14:51
89892d8
Compare
Choose a tag to compare
v0.3.0-rc2 Pre-release
Pre-release

Another release candidate for the almost complete Full Node feature.

v0.3.0-rc1

25 May 12:10
Compare
Choose a tag to compare
v0.3.0-rc1 Pre-release
Pre-release

This is a pre-release for the Mamaki testnet. The full changelog will be available on the release.

v0.2.0

28 Feb 16:15
1fcf0c0
Compare
Choose a tag to compare

v0.2.0 | 2022-02-23

The second minor release focuses on the stability and robustness of existing features via refactorings, mainly for
headers synchronization and storing, while fixing the DA network segregation by providing bootstrap peers, allowing you to
run a Light Node with zero effort. The release also includes a few breaking changes.

Highlights

Hardcoded bootstrap peers

Bootstrappers are necessary for peers to connect to when they come online in order to be part of the DA p2p network.
Additionally, they serve block headers and shares for everyone, so any other node joining the network can use them to
synchronize headers and perform Data Availability Sampling. Now it's unnecessary to maintain your own Bridge(previously
Full) Node to run a Light Node, as now it will rely on bootstrappers by default.

Zero effort Light Node

Now becoming a valuable node that contributes to the security of the of Celestia network is only two commands away. Simply run celestia light init followed by celestia light start, and you are good to go. Still, you can keep running your own Bridge Node as the trusted peer.

Test Swamp

The release comes with a new internal testing library for Celestia Node called Test Swamp, aimed to provide an
ergonomic framework for integration tests for celestia-node. It allows simulating a network on which we can test various
high-level scenarios.

Header Synchronization

It was almost rewritten from scratch with a better design which:

  • Tolerates network disconnections
  • Tolerates primary network interface changes
    • both above are useful for Light Node running on laptops or mobile phones
  • Optimizes bandwidth and IO usage, subsequently speeding up the synchronization time for ~20%
  • Eliminates long-standing issue with header duplicates flooding the network
  • Fixes the most common issue community has faced - constant logging of invalid headers error.

Renamed Full Node

Full Node is now called Bridge Node to emphasize its purpose of bridging the core consensus and the halo DA networks, both
powering the Celestia project.

Spoiler: Next release will come with a reincarnation of the Full Node type, which operates only over the DA celestia-node network

Full node operators after the update should now migrate to Bridge Node. This migration is trivial:

  • Rename .celestia-full to .celestia-bridge
  • Change scripts from celestia full to celestia bridge

Trusted Peers

  • trusted-peer is now trusted-peers as the flag now allows passing multiple trusted peers.
  • Config.Services.TrustedPeer is now Config.Services.TrustedPeers

BREAKING CHANGES

FEATURES

IMPROVEMENTS

BUG FIXES

MISCELLANEOUS

Read more

v0.2.0-rc1

22 Feb 19:09
bf8c028
Compare
Choose a tag to compare
v0.2.0-rc1 Pre-release
Pre-release

This is a release candidate for the upcoming v0.2.0 release. Detailed info about the release will come together with it.

v0.1.1

07 Jan 14:42
Compare
Choose a tag to compare

v0.1.1 | 2022-01-07

A quick hot-fix release to enable Full Node sync reliably with validator set bigger than 30.

Bug Fixes

v0.1.0

06 Dec 22:24
bbcfc13
Compare
Choose a tag to compare

v0.1.0 | 2021-11-03

This is the first celestia-node release. The release constitutes the foundation for the data availability "halo" network that will complement the core consensus network.

Mainly, we introduce 3 packages:

  • service/header - defines everything related to syncing, exchanging, and storing chain headers.
  • service/share - defines everything related to sampling and requesting Shares (chunks of erasure-coded block data) from the network
  • node - defines the Node singleton with its assembly, essentially gluing all the bits together.

For further information regarding the architecture and features introduced in this release, refer to the devnet ADR.

FEATURES