|
1 | 1 | # CHANGELOG
|
| 2 | +## v0.2.0 | 2022-02-23 |
| 3 | +The second minor release focuses on the stability and robustness of existing features via refactorings, mainly for |
| 4 | +headers synchronization and storing, while fixing the DA network segregation by providing bootstrap peers, allowing you to |
| 5 | +run a Light Node with zero effort. The release also includes a few breaking changes. |
| 6 | + |
| 7 | +### Highlights |
| 8 | +#### Hardcoded bootstrap peers |
| 9 | +Bootstrappers are necessary for peers to connect to when they come online in order to be part of the DA p2p network. |
| 10 | +Additionally, they serve block headers and shares for everyone, so any other node joining the network can use them to |
| 11 | +synchronize headers and perform Data Availability Sampling. Now it's unnecessary to maintain your own Bridge(previously |
| 12 | +Full) Node to run a Light Node, as now it will rely on bootstrappers by default. |
| 13 | + |
| 14 | +#### Zero effort Light Node |
| 15 | +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 |
| 16 | +light start`, and you are good to go. |
| 17 | + |
| 18 | +#### Test Swamp |
| 19 | +The release comes with a new internal testing library for Celestia Node called Test Swamp, aimed to provide an |
| 20 | +ergonomic framework for integration tests for `celestia-node`. It allows simulating a network on which we can test various |
| 21 | +high-level scenarios. |
| 22 | + |
| 23 | +#### Header Synchronization |
| 24 | +It was almost rewritten from scratch with a better design which: |
| 25 | +* Tolerates network disconnections |
| 26 | +* Tolerates primary network interface changes |
| 27 | + * both above are useful for Light Node running on laptops or mobile phones |
| 28 | +* Optimizes bandwidth and IO usage, subsequently speeding up the synchronization time for ~20% |
| 29 | +* Eliminates long-standing issue with header duplicates flooding the network |
| 30 | +* Fixes the most common issue community has faced - constant logging of __invalid headers__ error. |
| 31 | + |
| 32 | +#### Renamed Full Node |
| 33 | +Full Node is now called Bridge Node to emphasize its purpose of bridging the core consensus and the halo DA networks, both |
| 34 | +powering the Celestia project. |
| 35 | + |
| 36 | +> Spoiler: Next release will come with a reincarnation of the Full Node type, which operates only over the DA `celestia-node` network |
| 37 | +
|
| 38 | +Full node operators after the update should now migrate to Bridge Node. This migration is trivial: |
| 39 | +* Rename `.celestia-full` to `.celestia-bridge` |
| 40 | +* Change scripts from `celestia full` to `celestia bridge` |
| 41 | + |
| 42 | +#### Trusted Peers |
| 43 | +* `trusted-peer` is now `trusted-peers` as the flag now allows passing multiple trusted peers. |
| 44 | +* `Config.Services.TrustedPeer` is now `Config.Services.TrustedPeers` |
| 45 | + |
| 46 | +### BREAKING CHANGES |
| 47 | + |
| 48 | +- [node: Light node can be initialised with multiple trusted peers #455](https://github.com/celestiaorg/celestia-node/pull/455) [@vgonkivs](https://github.com/vgonkivs) |
| 49 | +- [chore: rename Repository to Store #296](https://github.com/celestiaorg/celestia-node/pull/296) [@Wondertan](https://github.com/Wondertan) |
| 50 | +- [chore: rename Full node to Bridge node #294](https://github.com/celestiaorg/celestia-node/pull/294) [@Wondertan](https://github.com/Wondertan) |
| 51 | +- [node: remove InitWith #291](https://github.com/celestiaorg/celestia-node/pull/291) [@Wondertan](https://github.com/Wondertan) |
| 52 | + |
| 53 | +### FEATURES |
| 54 | + |
| 55 | +- [feat(cmd/cel-shed): new header category and store-init cmd #462](https://github.com/celestiaorg/celestia-node/pull/462) [@Wondertan](https://github.com/Wondertan) |
| 56 | +- [feat(cmd): cli flag to enable http/pprof handler to capture profiles #463](https://github.com/celestiaorg/celestia-node/pull/463) [@Wondertan](https://github.com/Wondertan) |
| 57 | +- [service/header: SyncState #397](https://github.com/celestiaorg/celestia-node/pull/397) [@Wondertan](https://github.com/Wondertan) |
| 58 | +- [feat(service/header): HeightSub #428](https://github.com/celestiaorg/celestia-node/pull/428) [@Wondertan](https://github.com/Wondertan) |
| 59 | +- [params: Define Network Types #346](https://github.com/celestiaorg/celestia-node/pull/346) [@Wondertan](https://github.com/Wondertan) |
| 60 | +- [feat(cmd): give a birth to cel-shed and p2p key utilities #281](https://github.com/celestiaorg/celestia-node/pull/281) [@Wondertan](https://github.com/Wondertan) |
| 61 | +- [feat(cmd|node): MutualPeers Node option and CLI flag #280](https://github.com/celestiaorg/celestia-node/pull/280) [@Wondertan](https://github.com/Wondertan) |
| 62 | +- [node: enhance DI allowing overriding of dependencies](https://github.com/celestiaorg/celestia-node/pull/290) [@Wondertan](https://github.com/Wondertan) |
| 63 | +- [ci: create docker build GH action](https://github.com/celestiaorg/celestia-node/pull/338) [@jbowen93](https://github.com/jbowen93) |
| 64 | +- [swamp: initial structure of the tool](https://github.com/celestiaorg/celestia-node/pull/315) [@Bidon15](https://github.com/Bidon15) |
| 65 | + |
| 66 | +### IMPROVEMENTS |
| 67 | +- [feat(node): add go-watchdog to curb OOMs #466](https://github.com/celestiaorg/celestia-node/pull/466) [@Wondertan](https://github.com/Wondertan) |
| 68 | +- [perf(node/store): fine-tune Badgerdb params #465](https://github.com/celestiaorg/celestia-node/pull/465) [@Wondertan](https://github.com/Wondertan) |
| 69 | +- [feat(service/header): update Store.Append to return amount of applied/valid headers #434](https://github.com/celestiaorg/celestia-node/pull/434) [@Wondertan](https://github.com/Wondertan) |
| 70 | +- [refactor(service/header): rework on disk writing strategy of the Store #431](https://github.com/celestiaorg/celestia-node/pull/431) [@Wondertan](https://github.com/Wondertan) |
| 71 | +- [refactor(service/header): extract store initialization from Syncer #430](https://github.com/celestiaorg/celestia-node/pull/430) [@Wondertan](https://github.com/Wondertan) |
| 72 | +- [header: hardening syncing logic #334](https://github.com/celestiaorg/celestia-node/pull/334) [@Wondertan](https://github.com/Wondertan) |
| 73 | +- [feat(params): add bootstrappers #399](https://github.com/celestiaorg/celestia-node/pull/399) [@Wondertan](https://github.com/Wondertan) |
| 74 | +- [service/header: remove start/stop from P2PExchange](https://github.com/celestiaorg/celestia-node/pull/367) [@Bidon15](https://github.com/Bidon15) |
| 75 | +- [service/share: Implement `FullAvailability`](https://github.com/celestiaorg/celestia-node/pull/333) [@renaynay](https://github.com/renaynay) |
| 76 | +- [services/header: Refactor `HeaderService` to be responsible for broadcasting new `ExtendedHeader`s to the gossipsub network](https://github.com/celestiaorg/celestia-node/pull/327) [@renaynay](https://github.com/renaynay) |
| 77 | +- [cmd: introduce Env - an Environment for CLI commands #313](https://github.com/celestiaorg/celestia-node/pull/313) [@Wondertan](https://github.com/Wondertan) |
| 78 | +- [node: Adding WithHost options to settings section #301](https://github.com/celestiaorg/celestia-node/pull/301) [@Bidon15](https://github.com/Bidon15) |
| 79 | +- [node: Adding WithCoreClient option #305](https://github.com/celestiaorg/celestia-node/pull/305) [@Bidon15](https://github.com/Bidon15) |
| 80 | +- [service/header: Refactor `HeaderService` to only manage its sub-services' lifecycles #317](https://github.com/celestiaorg/celestia-node/pull/317) [@renaynay](https://github.com/renaynay) |
| 81 | +- [docker: Created `docker/` dir with `Dockerfile` and `entrypoint.sh` script](https://github.com/celestiaorg/celestia-node/pull/295) [@jbowen93](https://github.com/jbowen93) |
| 82 | +- [chore(share): handle rows concurrently in GetSharesByNamespace #241](https://github.com/celestiaorg/celestia-node/pull/241) [@vgonkivs](https://github.com/vgonkivs) |
| 83 | +- [ci: adding data race detector action](https://github.com/celestiaorg/celestia-node/pull/289) [@Bidon15](https://github.com/Bidon15) |
| 84 | +- [node: add the cmdnode.HeadersFlags() to the Bridge Node's init and start commands #390](https://github.com/celestiaorg/celestia-node/pull/390) [@jbowen93](https://github.com/jbowen93) |
| 85 | + |
| 86 | +### BUG FIXES |
| 87 | + |
| 88 | +- [fix(service/header): lazily load Store head #458](https://github.com/celestiaorg/celestia-node/pull/458) [@Wondertan](https://github.com/Wondertan) |
| 89 | +- [fix(service/header): allow some clock drift during verification #435](https://github.com/celestiaorg/celestia-node/pull/435) [@Wondertan](https://github.com/Wondertan) |
| 90 | +- [service/header: fix ExtendedHeader message duplicates on the network #409](https://github.com/celestiaorg/celestia-node/pull/409) [@Wondertan](https://github.com/Wondertan) |
| 91 | +- [fix(header/service): #339 race](https://github.com/celestiaorg/celestia-node/pull/343) [@Wondertan](https://github.com/Wondertan) |
| 92 | +- [core: Properly fetch Validators from Core and two more fixes #328](https://github.com/celestiaorg/celestia-node/pull/328) [@Wondertan](https://github.com/Wondertan) |
| 93 | +- [header: Added missing `err` value in ErrorW logging calls](https://github.com/celestiaorg/celestia-node/pull/282) [@jbowen93](https://github.com/jbowen93) |
| 94 | +- [service/block, node/p2p: Fix race conditions in TestExtendedHeaderBroadcast and TestFull_P2P_Streams.](https://github.com/celestiaorg/celestia-node/pull/288) [@jenyasd209](https://github.com/jenyasd209) |
| 95 | +- [ci: increase tokens ratio for dupl to fix false positive scenarios](https://github.com/celestiaorg/celestia-node/pull/314) [@Bidon15](https://github.com/Bidon15) |
| 96 | +- [node: Wrap datastore with mutex to prevent data race](https://github.com/celestiaorg/celestia-node/pull/325) [@Bidon15](https://github.com/Bidon15) |
| 97 | +- [ci: update Docker entrypoint.sh to use new `store.path` flag name](https://github.com/celestiaorg/celestia-node/pull/337) [@jbowen93](https://github.com/jbowen93) |
| 98 | +- [docker: update docker/entrypoint.sh to use new `node.store` flag replacing `store.path` #390](https://github.com/celestiaorg/celestia-node/pull/390) [@jbowen93 ](https://github.com/jbowen93) |
| 99 | + |
| 100 | +### MISCELLANEOUS |
| 101 | + |
| 102 | +- [chore: bump deps #297](https://github.com/celestiaorg/celestia-node/pull/297) [@Wondertan](https://github.com/Wondertan) |
| 103 | +- [workflows/lint: update golangci-lint to v1.43 #308](https://github.com/celestiaorg/celestia-node/pull/308) [@Wondertan](https://github.com/Wondertan) |
| 104 | +- [feat(node): extract overrides from Config into Settings #292](https://github.com/celestiaorg/celestia-node/pull/292) [@Wondertan](https://github.com/Wondertan) |
| 105 | +- [node: fix naming of the test from full to bridge](https://github.com/celestiaorg/celestia-node/pull/341) [@Bidon15](https://github.com/Bidon15) |
2 | 106 |
|
3 | 107 | ## v0.1.1 | 2022-01-07
|
4 | 108 | A quick hot-fix release to enable Full Node sync reliably with validator set bigger than 30.
|
|
0 commit comments