Releases: celestiaorg/celestia-node
v0.3.0-rc1
This is a pre-release for the Mamaki testnet. The full changelog will be available on the release.
v0.2.0
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
tocelestia bridge
Trusted Peers
trusted-peer
is nowtrusted-peers
as the flag now allows passing multiple trusted peers.Config.Services.TrustedPeer
is nowConfig.Services.TrustedPeers
BREAKING CHANGES
- node: Light node can be initialised with multiple trusted peers #455 @vgonkivs
- chore: rename Repository to Store #296 @Wondertan
- chore: rename Full node to Bridge node #294 @Wondertan
- node: remove InitWith #291 @Wondertan
FEATURES
- feat(cmd/cel-shed): new header category and store-init cmd #462 @Wondertan
- feat(cmd): cli flag to enable http/pprof handler to capture profiles #463 @Wondertan
- service/header: SyncState #397 @Wondertan
- feat(service/header): HeightSub #428 @Wondertan
- params: Define Network Types #346 @Wondertan
- feat(cmd): give a birth to cel-shed and p2p key utilities #281 @Wondertan
- feat(cmd|node): MutualPeers Node option and CLI flag #280 @Wondertan
- node: enhance DI allowing overriding of dependencies @Wondertan
- ci: create docker build GH action @jbowen93
- swamp: initial structure of the tool @Bidon15
IMPROVEMENTS
- feat(node): add go-watchdog to curb OOMs #466 @Wondertan
- perf(node/store): fine-tune Badgerdb params #465 @Wondertan
- feat(service/header): update Store.Append to return amount of applied/valid headers #434 @Wondertan
- refactor(service/header): rework on disk writing strategy of the Store #431 @Wondertan
- refactor(service/header): extract store initialization from Syncer #430 @Wondertan
- header: hardening syncing logic #334 @Wondertan
- feat(params): add bootstrappers #399 @Wondertan
- service/header: remove start/stop from P2PExchange @Bidon15
- service/share: Implement
FullAvailability
@renaynay - services/header: Refactor
HeaderService
to be responsible for broadcasting newExtendedHeader
s to the gossipsub network @renaynay - cmd: introduce Env - an Environment for CLI commands #313 @Wondertan
- node: Adding WithHost options to settings section #301 @Bidon15
- node: Adding WithCoreClient option #305 @Bidon15
- service/header: Refactor
HeaderService
to only manage its sub-services' lifecycles #317 @renaynay - docker: Created
docker/
dir withDockerfile
andentrypoint.sh
script @jbowen93 - chore(share): handle rows concurrently in GetSharesByNamespace #241 @vgonkivs
- ci: adding data race detector action @Bidon15
- node: add the cmdnode.HeadersFlags() to the Bridge Node's init and start commands #390 @jbowen93
BUG FIXES
- fix(service/header): lazily load Store head #458 @Wondertan
- fix(service/header): allow some clock drift during verification #435 @Wondertan
- service/header: fix ExtendedHeader message duplicates on the network #409 @Wondertan
- fix(header/service): #339 race @Wondertan
- core: Properly fetch Validators from Core and two more fixes #328 @Wondertan
- header: Added missing
err
value in ErrorW logging calls @jbowen93 - service/block, node/p2p: Fix race conditions in TestExtendedHeaderBroadcast and TestFull_P2P_Streams. @jenyasd209
- ci: increase tokens ratio for dupl to fix false positive scenarios @Bidon15
- node: Wrap datastore with mutex to prevent data race @Bidon15
- ci: update Docker entrypoint.sh to use new
store.path
flag name @jbowen93 - docker: update docker/entrypoint.sh to use new
node.store
flag replacingstore.path
#390 @jbowen93
MISCELLANEOUS
- chore: bump deps #297 @Wondertan
- workflows/lint: update golangci-lint to v1.43 #308 @Wondertan
- [feat(node): extrac...
v0.2.0-rc1
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
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
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 requestingShares
(chunks of erasure-coded block data) from the networknode
- 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
- das: Log out square width after sampling #254 @Wondertan
- das: log time it takes to complete as sampling routine for a header #238 @renaynay
- node/p2p: Deduplicate PubSub msgs #239 @Wondertan
- service/header: more descriptive err log for append in store.go #231 @renaynay
- cmd, service/header: rename genesis to trustedHash to avoid confusion, extract flags to common var for re-use #229 @renaynay
- service/header: Verify hash matches header retrieved in RequestByHash() #224 @renaynay
- Genesis: The PR to make testnet happen! #221 @Wondertan
- feat(cmd): allow setting log level for start comamnd #217 @Wondertan
- service/header: Header Exchange implemented over Core Node #216 @renaynay
- Persist generated key to keystore and reuse existing key if present #213 @jbowen93
- service/header: implement basic syncer #212 @Wondertan
- node: add p2p multiaddr log #204 @bidon15
- service/block, service/header: BlockService broadcasts generated ExtendedHeaders to network #203 @renaynay
- cmd: add flag to start node on remote core #196 @vgonkivs
- service/header: Store implementation #195 @Wondertan
- service/header: Implement HeaderExchange #188 @renaynay
- das: implement DASer #177 @Wondertan
- share: Availability interface and implementation #171 @Wondertan
- service/share, ipld: adds ability to retrieve shares by namespace ID #170 @renaynay
- service/share: Service interface and basic implementation for GetShare #167 @Wondertan
- service/block: add Commit from current block in ExtendedHeader #165 @renaynay
- service/share, ipld: adds ability to retrieve shares by namespace ID #160 @renaynay
- Add version command #159 @orlandorode97
- node: start and stop block service by notification from lifecycle#158 @vgonkivs
- service/header: extension of ExtendedHeader and protobuf serialization #153 @Wondertan
- service/header: Implement basic header Service structure and interfaces #148 @renaynay
- node: add cache for blockstore #136 @vgonkivs
- MAKEFILE: make build #133 @renaynay
- ipld: adding IPLD package to provide helpers for dealing with IPLD-based data storage #110 @renaynay
- feat(node): unified node constructor #104 @Wondertan
- cmd: main function, full and light commands with subcommands #97 @Wondertan
- service/block: add basic encoding validation in BlockService #96 @renaynay
- node: provide DAGService #95 @Wondertan
- node: use Repository on the Node and slightly improve testing utilites #94 @Wondertan
- service/header, service/block: Implements spec'd out types for block and header #93 @renaynay
- node: initialization and Repository #86 @Wondertan
- core: initialization and Repository #81 @Wondertan
- service/block: new block listener + erasure coding #77 @renaynay
- node: updates for node.Config #74 @Wondertan
- libs/fslock: a simple utility to lock directories #71 @Wondertan
- libs/keystore: introduce Keystore a crypto key manager #66 @Wondertan
- block: create Fetcher interface #59 @renaynay
- node: add more p2p services and protocols #57 @Wondertan
- core: package managing Core Node #51 @Wondertan
- rpc: implement simple RPC client to dial Celestia Core endpoints #48 @renaynay
- node: Implement basic Node #29 @Wondertan