diff --git a/Cargo.lock b/Cargo.lock index acea15be..31182a06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -842,7 +842,7 @@ dependencies = [ [[package]] name = "celestia-grpc" -version = "0.1.0" +version = "0.2.0" dependencies = [ "bytes", "celestia-grpc-macros", @@ -870,7 +870,7 @@ dependencies = [ [[package]] name = "celestia-grpc-macros" -version = "0.1.0" +version = "0.2.0" dependencies = [ "proc-macro2", "quote", @@ -879,7 +879,7 @@ dependencies = [ [[package]] name = "celestia-proto" -version = "0.6.0" +version = "0.7.0" dependencies = [ "bytes", "prost", @@ -897,7 +897,7 @@ dependencies = [ [[package]] name = "celestia-rpc" -version = "0.8.0" +version = "0.9.0" dependencies = [ "anyhow", "async-trait", @@ -920,7 +920,7 @@ dependencies = [ [[package]] name = "celestia-types" -version = "0.9.0" +version = "0.10.0" dependencies = [ "base64", "bech32", @@ -3493,7 +3493,7 @@ dependencies = [ [[package]] name = "lumina-cli" -version = "0.5.2" +version = "0.6.0" dependencies = [ "anyhow", "axum", @@ -3518,7 +3518,7 @@ dependencies = [ [[package]] name = "lumina-node" -version = "0.8.0" +version = "0.9.0" dependencies = [ "async-trait", "backoff", @@ -3585,7 +3585,7 @@ dependencies = [ [[package]] name = "lumina-node-wasm" -version = "0.7.0" +version = "0.8.0" dependencies = [ "anyhow", "blockstore", diff --git a/Cargo.toml b/Cargo.toml index 748fedf1..b715d21d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,12 +4,12 @@ members = ["cli", "grpc", "node", "node-wasm", "node-uniffi", "proto", "rpc", "t [workspace.dependencies] blockstore = "0.7.1" -lumina-node = { version = "0.8.0", path = "node" } -lumina-node-wasm = { version = "0.7.0", path = "node-wasm" } -celestia-proto = { version = "0.6.0", path = "proto" } -celestia-grpc = { version = "0.1.0", path = "grpc" } -celestia-rpc = { version = "0.8.0", path = "rpc", default-features = false } -celestia-types = { version = "0.9.0", path = "types", default-features = false } +lumina-node = { version = "0.9.0", path = "node" } +lumina-node-wasm = { version = "0.8.0", path = "node-wasm" } +celestia-proto = { version = "0.7.0", path = "proto" } +celestia-grpc = { version = "0.2.0", path = "grpc" } +celestia-rpc = { version = "0.9.0", path = "rpc", default-features = false } +celestia-types = { version = "0.10.0", path = "types", default-features = false } tendermint = { version = "0.40.0", default-features = false } tendermint-proto = "0.40.0" diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 4ae456ec..986ffb4a 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -6,6 +6,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.6.0](https://github.com/eigerco/lumina/compare/lumina-cli-v0.5.2...lumina-cli-v0.6.0) - 2025-01-14 + +### Added + +- Add remaining node types for wasm (#476) +- *(cli)* Add `in-memory-store` and `pruning-delay` parameters (#490) +- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472) + +### Fixed + +- *(cli)* align with dah javascript breaking changes (#501) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) +- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477) + ## [0.5.2](https://github.com/eigerco/lumina/compare/lumina-cli-v0.5.1...lumina-cli-v0.5.2) - 2024-12-02 ### Added diff --git a/cli/Cargo.toml b/cli/Cargo.toml index bebb050e..9dde4760 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lumina-cli" -version = "0.5.2" +version = "0.6.0" edition = "2021" license = "Apache-2.0" description = "Celestia data availability node implementation in Rust" diff --git a/grpc/CHANGELOG.md b/grpc/CHANGELOG.md index b1809e85..b70f6822 100644 --- a/grpc/CHANGELOG.md +++ b/grpc/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0](https://github.com/eigerco/lumina/compare/celestia-grpc-v0.1.0...celestia-grpc-v0.2.0) - 2025-01-14 + +### Added + +- *(grpc)* [**breaking**] add wasm support and transaction client (#474) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) +- *(grpc)* Increase sleep before blob submission validation to reduce test flakyness (#481) + ## [0.1.0](https://github.com/eigerco/lumina/releases/tag/celestia-grpc-v0.1.0) - 2024-12-02 ### Added diff --git a/grpc/Cargo.toml b/grpc/Cargo.toml index 622f802b..10622307 100644 --- a/grpc/Cargo.toml +++ b/grpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "celestia-grpc" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "Apache-2.0" description = "A client for interacting with Celestia validator nodes gRPC" @@ -19,7 +19,7 @@ categories = [ ] [dependencies] -celestia-grpc-macros = { version = "0.1.0", path = "grpc-macros" } +celestia-grpc-macros = { version = "0.2.0", path = "grpc-macros" } celestia-proto = { workspace = true, features = ["tonic"] } celestia-types.workspace = true prost.workspace = true diff --git a/grpc/grpc-macros/CHANGELOG.md b/grpc/grpc-macros/CHANGELOG.md index 3103d3e5..09e6a497 100644 --- a/grpc/grpc-macros/CHANGELOG.md +++ b/grpc/grpc-macros/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0](https://github.com/eigerco/lumina/compare/celestia-grpc-macros-v0.1.0...celestia-grpc-macros-v0.2.0) - 2025-01-14 + +### Added + +- *(grpc)* [**breaking**] add wasm support and transaction client (#474) + ## [0.1.0](https://github.com/eigerco/lumina/releases/tag/celestia-grpc-macros-v0.1.0) - 2024-12-02 ### Added diff --git a/grpc/grpc-macros/Cargo.toml b/grpc/grpc-macros/Cargo.toml index 2c94b255..38526be9 100644 --- a/grpc/grpc-macros/Cargo.toml +++ b/grpc/grpc-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "celestia-grpc-macros" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "Apache-2.0" description = "Helper crate for grpc_method macro for creating gRPC client, used by celestia-grpc" diff --git a/node-wasm/CHANGELOG.md b/node-wasm/CHANGELOG.md index 9795d898..7de82247 100644 --- a/node-wasm/CHANGELOG.md +++ b/node-wasm/CHANGELOG.md @@ -6,6 +6,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.0](https://github.com/eigerco/lumina/compare/lumina-node-wasm-v0.7.0...lumina-node-wasm-v0.8.0) - 2025-01-14 + +### Added + +- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468) +- Add remaining node types for wasm (#476) +- *(node-wasm)* Add more configuration options in `NodeConfig` (#487) +- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) +- *(node-wasm)* Update js build dependencies, commit package lock (#478) +- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477) + ## [0.7.0](https://github.com/eigerco/lumina/compare/lumina-node-wasm-v0.6.1...lumina-node-wasm-v0.7.0) - 2024-12-02 ### Added diff --git a/node-wasm/Cargo.toml b/node-wasm/Cargo.toml index 81698edc..fcb65935 100644 --- a/node-wasm/Cargo.toml +++ b/node-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lumina-node-wasm" -version = "0.7.0" +version = "0.8.0" edition = "2021" license = "Apache-2.0" description = "Browser compatibility layer for the Lumina node" diff --git a/node-wasm/js/README.md b/node-wasm/js/README.md index 87274c34..4a6046aa 100644 --- a/node-wasm/js/README.md +++ b/node-wasm/js/README.md @@ -1,7 +1,7 @@ -**lumina-node-wasm** • [**Docs**](#globalsmd) +**lumina-node-wasm** *** @@ -55,27 +55,247 @@ For comprehensive and fully typed interface documentation, see [lumina-node](htt # Classes - + -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** -[lumina-node-wasm](#globalsmd) / BlockRange +[lumina-node-wasm](#globalsmd) / AppVersion -## Class: BlockRange +## Class: AppVersion -A range of blocks between `start` and `end` height, inclusive +Version of the App + +### Properties + +#### V1 + +> `readonly` `static` **V1**: [`AppVersion`](#classesappversionmd) + +App v1 + +##### Defined in + +lumina\_node\_wasm.d.ts:58 + +*** + +#### V2 + +> `readonly` `static` **V2**: [`AppVersion`](#classesappversionmd) + +App v2 + +##### Defined in + +lumina\_node\_wasm.d.ts:62 + +*** + +#### V3 + +> `readonly` `static` **V3**: [`AppVersion`](#classesappversionmd) + +App v3 + +##### Defined in + +lumina\_node\_wasm.d.ts:66 + +### Methods + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:50 + +*** + +#### latest() + +> `static` **latest**(): [`AppVersion`](#classesappversionmd) + +Latest App version variant. + +##### Returns + +[`AppVersion`](#classesappversionmd) + +##### Defined in + +lumina\_node\_wasm.d.ts:54 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / Blob + +## Class: Blob + +Arbitrary data that can be stored in the network within certain [`Namespace`]. ### Constructors -#### new BlockRange() +#### new Blob() + +> **new Blob**(`namespace`, `data`, `app_version`): [`Blob`](#classesblobmd) + +Create a new blob with the given data within the [`Namespace`]. + +##### Parameters + +###### namespace + +[`Namespace`](#classesnamespacemd) + +###### data + +`Uint8Array`\<`ArrayBuffer`\> + +###### app\_version + +[`AppVersion`](#classesappversionmd) + +##### Returns + +[`Blob`](#classesblobmd) + +##### Defined in + +lumina\_node\_wasm.d.ts:84 + +### Properties + +#### commitment + +> **commitment**: [`Commitment`](#classescommitmentmd) + +A [`Commitment`] computed from the [`Blob`]s data. + +##### Defined in + +lumina\_node\_wasm.d.ts:102 + +*** + +#### data + +> **data**: `Uint8Array`\<`ArrayBuffer`\> + +Data stored within the [`Blob`]. + +##### Defined in + +lumina\_node\_wasm.d.ts:92 + +*** + +#### index? + +> `optional` **index**: `bigint` + +Index of the blob's first share in the EDS. Only set for blobs retrieved from chain. + +##### Defined in + +lumina\_node\_wasm.d.ts:106 + +*** + +#### namespace + +> **namespace**: [`Namespace`](#classesnamespacemd) + +A [`Namespace`] the [`Blob`] belongs to. + +##### Defined in + +lumina\_node\_wasm.d.ts:88 + +*** + +#### share\_version + +> **share\_version**: `number` + +Version indicating the format in which [`Share`]s should be created from this [`Blob`]. + +[`Share`]: crate::share::Share + +##### Defined in + +lumina\_node\_wasm.d.ts:98 + +### Methods + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:80 + +*** + +#### toJSON() + +> **toJSON**(): `Object` + +* Return copy of self without private attributes. + +##### Returns + +`Object` -> **new BlockRange**(): [`BlockRange`](#classesblockrangemd) +##### Defined in + +lumina\_node\_wasm.d.ts:75 + +*** + +#### toString() + +> **toString**(): `string` + +Return stringified version of self. ##### Returns -[`BlockRange`](#classesblockrangemd) +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:79 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / BlockRange + +## Class: BlockRange + +A range of blocks between `start` and `end` height, inclusive ### Properties @@ -87,7 +307,7 @@ Last block height in range ##### Defined in -lumina\_node\_wasm.d.ts:44 +lumina\_node\_wasm.d.ts:129 *** @@ -99,7 +319,7 @@ First block height in range ##### Defined in -lumina\_node\_wasm.d.ts:48 +lumina\_node\_wasm.d.ts:125 ### Methods @@ -113,7 +333,7 @@ lumina\_node\_wasm.d.ts:48 ##### Defined in -lumina\_node\_wasm.d.ts:40 +lumina\_node\_wasm.d.ts:121 *** @@ -129,7 +349,116 @@ lumina\_node\_wasm.d.ts:40 ##### Defined in -lumina\_node\_wasm.d.ts:35 +lumina\_node\_wasm.d.ts:116 + +*** + +#### toString() + +> **toString**(): `string` + +Return stringified version of self. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:120 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / Commitment + +## Class: Commitment + +A merkle hash used to identify the [`Blob`]s data. + +In Celestia network, the transaction which pays for the blob's inclusion +is separated from the data itself. The reason for that is to allow verifying +the blockchain's state without the need to pull the actual data which got stored. +To achieve that, the [`MsgPayForBlobs`] transaction only includes the [`Commitment`]s +of the blobs it is paying for, not the data itself. + +The algorithm of computing the [`Commitment`] of the [`Blob`]'s [`Share`]s is +designed in a way to allow easy and cheap proving of the [`Share`]s inclusion in the +block. It is computed as a [`merkle hash`] of all the [`Nmt`] subtree roots created from +the blob shares included in the [`ExtendedDataSquare`] rows. Assuming the `s1` and `s2` +are the only shares of some blob posted to the celestia, they'll result in a single subtree +root as shown below: + +```text +NMT: row root + / \ + o subtree root + / \ / \ + _________________ +EDS row: | s | s | s1 | s2 | +``` + +Using subtree roots as a base for [`Commitment`] computation allows for much smaller +inclusion proofs than when the [`Share`]s would be used directly, but it imposes some +constraints on how the [`Blob`]s can be placed in the [`ExtendedDataSquare`]. You can +read more about that in the [`share commitment rules`]. + +[`Blob`]: crate::Blob +[`Share`]: crate::share::Share +[`MsgPayForBlobs`]: celestia_proto::celestia::blob::v1::MsgPayForBlobs +[`merkle hash`]: tendermint::merkle::simple_hash_from_byte_vectors +[`Nmt`]: crate::nmt::Nmt +[`ExtendedDataSquare`]: crate::ExtendedDataSquare +[`share commitment rules`]: https://github.com/celestiaorg/celestia-app/blob/main/specs/src/specs/data_square_layout.md#blob-share-commitment-rules +### Methods + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:179 + +*** + +#### hash() + +> **hash**(): `Uint8Array`\<`ArrayBuffer`\> + +Hash of the commitment + +##### Returns + +`Uint8Array`\<`ArrayBuffer`\> + +##### Defined in + +lumina\_node\_wasm.d.ts:183 + +*** + +#### toJSON() + +> **toJSON**(): `Object` + +* Return copy of self without private attributes. + +##### Returns + +`Object` + +##### Defined in + +lumina\_node\_wasm.d.ts:174 *** @@ -141,119 +470,875 @@ Return stringified version of self. ##### Returns -`string` +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:178 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot + +## Class: ConnectionCountersSnapshot + +### Properties + +#### num\_connections + +> **num\_connections**: `number` + +The total number of connections, both pending and established. + +##### Defined in + +lumina\_node\_wasm.d.ts:199 + +*** + +#### num\_established + +> **num\_established**: `number` + +The number of outgoing connections being established. + +##### Defined in + +lumina\_node\_wasm.d.ts:215 + +*** + +#### num\_established\_incoming + +> **num\_established\_incoming**: `number` + +The number of established incoming connections. + +##### Defined in + +lumina\_node\_wasm.d.ts:219 + +*** + +#### num\_established\_outgoing + +> **num\_established\_outgoing**: `number` + +The number of established outgoing connections. + +##### Defined in + +lumina\_node\_wasm.d.ts:223 + +*** + +#### num\_pending + +> **num\_pending**: `number` + +The total number of pending connections, both incoming and outgoing. + +##### Defined in + +lumina\_node\_wasm.d.ts:203 + +*** + +#### num\_pending\_incoming + +> **num\_pending\_incoming**: `number` + +The total number of pending connections, both incoming and outgoing. + +##### Defined in + +lumina\_node\_wasm.d.ts:207 + +*** + +#### num\_pending\_outgoing + +> **num\_pending\_outgoing**: `number` + +The number of outgoing connections being established. + +##### Defined in + +lumina\_node\_wasm.d.ts:211 + +### Methods + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:195 + +*** + +#### toJSON() + +> **toJSON**(): `Object` + +* Return copy of self without private attributes. + +##### Returns + +`Object` + +##### Defined in + +lumina\_node\_wasm.d.ts:190 + +*** + +#### toString() + +> **toString**(): `string` + +Return stringified version of self. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:194 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / DataAvailabilityHeader + +## Class: DataAvailabilityHeader + +Header with commitments of the data availability. + +It consists of the root hashes of the merkle trees created from each +row and column of the [`ExtendedDataSquare`]. Those are used to prove +the inclusion of the data in a block. + +The hash of this header is a hash of all rows and columns and thus a +data commitment of the block. + +## Example + +```no_run +## use celestia_types::{ExtendedHeader, Height, Share}; +## use celestia_types::nmt::{Namespace, NamespaceProof}; +## fn extended_header() -> ExtendedHeader { +## unimplemented!(); +## } +## fn shares_with_proof(_: Height, _: &Namespace) -> (Vec, NamespaceProof) { +## unimplemented!(); +## } +// fetch the block header and data for your namespace +let namespace = Namespace::new_v0(&[1, 2, 3, 4]).unwrap(); +let eh = extended_header(); +let (shares, proof) = shares_with_proof(eh.height(), &namespace); + +// get the data commitment for a given row +let dah = eh.dah; +let root = dah.row_root(0).unwrap(); + +// verify a proof of the inclusion of the shares +assert!(proof.verify_complete_namespace(&root, &shares, *namespace).is_ok()); +``` + +[`ExtendedDataSquare`]: crate::eds::ExtendedDataSquare + +### Methods + +#### columnRoot() + +> **columnRoot**(`column`): `any` + +Get the a root of the column with the given index. + +##### Parameters + +###### column + +`number` + +##### Returns + +`any` + +##### Defined in + +lumina\_node\_wasm.d.ts:287 + +*** + +#### columnRoots() + +> **columnRoots**(): `any`[] + +Merkle roots of the [`ExtendedDataSquare`] columns. + +##### Returns + +`any`[] + +##### Defined in + +lumina\_node\_wasm.d.ts:279 + +*** + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:271 + +*** + +#### hash() + +> **hash**(): `any` + +Compute the combined hash of all rows and columns. + +This is the data commitment for the block. + +##### Returns + +`any` + +##### Defined in + +lumina\_node\_wasm.d.ts:293 + +*** + +#### rowRoot() + +> **rowRoot**(`row`): `any` + +Get a root of the row with the given index. + +##### Parameters + +###### row + +`number` + +##### Returns + +`any` + +##### Defined in + +lumina\_node\_wasm.d.ts:283 + +*** + +#### rowRoots() + +> **rowRoots**(): `any`[] + +Merkle roots of the [`ExtendedDataSquare`] rows. + +##### Returns + +`any`[] + +##### Defined in + +lumina\_node\_wasm.d.ts:275 + +*** + +#### squareWidth() + +> **squareWidth**(): `number` + +Get the size of the [`ExtendedDataSquare`] for which this header was built. + +##### Returns + +`number` + +##### Defined in + +lumina\_node\_wasm.d.ts:297 + +*** + +#### toJSON() + +> **toJSON**(): `Object` + +* Return copy of self without private attributes. + +##### Returns + +`Object` + +##### Defined in + +lumina\_node\_wasm.d.ts:266 + +*** + +#### toString() + +> **toString**(): `string` + +Return stringified version of self. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:270 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / ExtendedHeader + +## Class: ExtendedHeader + +Block header together with the relevant Data Availability metadata. + +[`ExtendedHeader`]s are used to announce and describe the blocks +in the Celestia network. + +Before being used, each header should be validated and verified with a header you trust. + +## Example + +``` +## use celestia_types::ExtendedHeader; +## fn trusted_genesis_header() -> ExtendedHeader { +## let s = include_str!("../test_data/chain1/extended_header_block_1.json"); +## serde_json::from_str(s).unwrap() +## } +## fn some_untrusted_header() -> ExtendedHeader { +## let s = include_str!("../test_data/chain1/extended_header_block_27.json"); +## serde_json::from_str(s).unwrap() +## } +let genesis_header = trusted_genesis_header(); + +// fetch new header +let fetched_header = some_untrusted_header(); + +fetched_header.validate().expect("Invalid block header"); +genesis_header.verify(&fetched_header).expect("Malicious header received"); +``` + +### Properties + +#### commit + +> `readonly` **commit**: `any` + +Commit metadata and signatures from validators committing the block. + +##### Defined in + +lumina\_node\_wasm.d.ts:428 + +*** + +#### dah + +> **dah**: [`DataAvailabilityHeader`](#classesdataavailabilityheadermd) + +Header of the block data availability. + +##### Defined in + +lumina\_node\_wasm.d.ts:420 + +*** + +#### header + +> `readonly` **header**: `any` + +Tendermint block header. + +##### Defined in + +lumina\_node\_wasm.d.ts:424 + +*** + +#### validatorSet + +> `readonly` **validatorSet**: `any` + +Information about the set of validators commiting the block. + +##### Defined in + +lumina\_node\_wasm.d.ts:432 + +### Methods + +#### clone() + +> **clone**(): [`ExtendedHeader`](#classesextendedheadermd) + +Clone a header producing a deep copy of it. + +##### Returns + +[`ExtendedHeader`](#classesextendedheadermd) + +##### Defined in + +lumina\_node\_wasm.d.ts:342 + +*** + +#### free() + +> **free**(): `void` + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:338 + +*** + +#### hash() + +> **hash**(): `string` + +Get the block hash. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:354 + +*** + +#### height() + +> **height**(): `bigint` + +Get the block height. + +##### Returns + +`bigint` + +##### Defined in + +lumina\_node\_wasm.d.ts:346 + +*** + +#### previousHeaderHash() + +> **previousHeaderHash**(): `string` + +Get the hash of the previous header. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:358 + +*** + +#### time() + +> **time**(): `number` + +Get the block time. + +##### Returns + +`number` + +##### Defined in + +lumina\_node\_wasm.d.ts:350 + +*** + +#### toJSON() + +> **toJSON**(): `Object` + +* Return copy of self without private attributes. + +##### Returns + +`Object` + +##### Defined in + +lumina\_node\_wasm.d.ts:333 + +*** + +#### toString() + +> **toString**(): `string` + +Return stringified version of self. + +##### Returns + +`string` + +##### Defined in + +lumina\_node\_wasm.d.ts:337 + +*** + +#### validate() + +> **validate**(): `void` + +Decode protobuf encoded header and then validate it. + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:362 + +*** + +#### verify() + +> **verify**(`untrusted`): `void` + +Verify a chain of adjacent untrusted headers and make sure +they are adjacent to `self`. + +## Errors + +If verification fails, this function will return an error with a reason of failure. +This function will also return an error if untrusted headers and `self` don't form contiguous range + +##### Parameters + +###### untrusted + +[`ExtendedHeader`](#classesextendedheadermd) + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:372 + +*** + +#### verifyAdjacentRange() + +> **verifyAdjacentRange**(`untrusted`): `void` + +Verify a chain of adjacent untrusted headers and make sure +they are adjacent to `self`. + +## Note + +Provided headers will be consumed by this method, meaning +they will no longer be accessible. If this behavior is not desired, +consider using `ExtendedHeader.clone()`. + +```js +const genesis = hdr0; +const headers = [hrd1, hdr2, hdr3]; +genesis.verifyAdjacentRange(headers.map(h => h.clone())); +``` + +## Errors + +If verification fails, this function will return an error with a reason of failure. +This function will also return an error if untrusted headers and `self` don't form contiguous range + +##### Parameters + +###### untrusted + +[`ExtendedHeader`](#classesextendedheadermd)[] + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:416 + +*** + +#### verifyRange() + +> **verifyRange**(`untrusted`): `void` + +Verify a chain of adjacent untrusted headers. + +## Note + +Provided headers will be consumed by this method, meaning +they will no longer be accessible. If this behavior is not desired, +consider using `ExtendedHeader.clone()`. + +```js +const genesis = hdr0; +const headers = [hrd1, hdr2, hdr3]; +genesis.verifyRange(headers.map(h => h.clone())); +``` + +## Errors + +If verification fails, this function will return an error with a reason of failure. +This function will also return an error if untrusted headers are not adjacent +to each other. + +##### Parameters + +###### untrusted + +[`ExtendedHeader`](#classesextendedheadermd)[] + +##### Returns + +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:394 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / Namespace + +## Class: Namespace + +Namespace of the data published to the celestia network. + +The [`Namespace`] is a single byte defining the version +followed by 28 bytes specifying concrete ID of the namespace. + +Currently there are two versions of namespaces: + + - version `0` - the one allowing for the custom namespace ids. It requires an id to start + with 18 `0x00` bytes followed by a user specified suffix (except reserved ones, see below). + - version `255` - for secondary reserved namespaces. It requires an id to start with 27 + `0xff` bytes followed by a single byte indicating the id. + +Some namespaces are reserved for the block creation purposes and cannot be used +when submitting the blobs to celestia. Those fall into one of the two categories: + + - primary reserved namespaces - those use version `0` and have id lower or equal to `0xff` + so they are always placed in blocks before user-submitted data. + - secondary reserved namespaces - those use version `0xff` so they are always placed after + user-submitted data. + +### Properties + +#### id + +> `readonly` **id**: `Uint8Array`\<`ArrayBuffer`\> + +Returns the trailing 28 bytes indicating the id of the [`Namespace`]. ##### Defined in -lumina\_node\_wasm.d.ts:39 +lumina\_node\_wasm.d.ts:541 +*** - +#### version + +> `readonly` **version**: `number` + +Returns the first byte indicating the version of the [`Namespace`]. + +##### Defined in -[**lumina-node-wasm**](#readmemd) • **Docs** +lumina\_node\_wasm.d.ts:537 *** -[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot +#### MAX\_PRIMARY\_RESERVED -## Class: ConnectionCountersSnapshot +> `readonly` `static` **MAX\_PRIMARY\_RESERVED**: [`Namespace`](#classesnamespacemd) -### Constructors +Maximal primary reserved [`Namespace`]. -#### new ConnectionCountersSnapshot() +Used to indicate the end of the primary reserved group. -> **new ConnectionCountersSnapshot**(): [`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd) +##### Defined in -##### Returns +lumina\_node\_wasm.d.ts:512 -[`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd) +*** -### Properties +#### MIN\_SECONDARY\_RESERVED -#### num\_connections +> `readonly` `static` **MIN\_SECONDARY\_RESERVED**: [`Namespace`](#classesnamespacemd) -> **num\_connections**: `number` +Minimal secondary reserved [`Namespace`]. -The total number of connections, both pending and established. +Used to indicate the beginning of the secondary reserved group. ##### Defined in -lumina\_node\_wasm.d.ts:65 +lumina\_node\_wasm.d.ts:518 *** -#### num\_established +#### NS\_SIZE -> **num\_established**: `number` +> `readonly` `static` **NS\_SIZE**: `number` -The number of outgoing connections being established. +Namespace size in bytes. ##### Defined in -lumina\_node\_wasm.d.ts:69 +lumina\_node\_wasm.d.ts:491 *** -#### num\_established\_incoming +#### PARITY\_SHARE -> **num\_established\_incoming**: `number` +> `readonly` `static` **PARITY\_SHARE**: [`Namespace`](#classesnamespacemd) -The number of established incoming connections. +The [`Namespace`] for `parity shares`. + +It is the namespace with which all the `parity shares` from +`ExtendedDataSquare` are inserted to the `Nmt` when computing +merkle roots. ##### Defined in -lumina\_node\_wasm.d.ts:73 +lumina\_node\_wasm.d.ts:533 *** -#### num\_established\_outgoing +#### PAY\_FOR\_BLOB -> **num\_established\_outgoing**: `number` +> `readonly` `static` **PAY\_FOR\_BLOB**: [`Namespace`](#classesnamespacemd) -The number of established outgoing connections. +Primary reserved [`Namespace`] for the compact Shares with MsgPayForBlobs transactions. ##### Defined in -lumina\_node\_wasm.d.ts:77 +lumina\_node\_wasm.d.ts:499 *** -#### num\_pending +#### PRIMARY\_RESERVED\_PADDING -> **num\_pending**: `number` +> `readonly` `static` **PRIMARY\_RESERVED\_PADDING**: [`Namespace`](#classesnamespacemd) -The total number of pending connections, both incoming and outgoing. +Primary reserved [`Namespace`] for the `Share`s used for padding. + +`Share`s with this namespace are inserted after other shares from primary reserved namespace +so that user-defined namespaces are correctly aligned in `ExtendedDataSquare` ##### Defined in -lumina\_node\_wasm.d.ts:81 +lumina\_node\_wasm.d.ts:506 *** -#### num\_pending\_incoming +#### TAIL\_PADDING -> **num\_pending\_incoming**: `number` +> `readonly` `static` **TAIL\_PADDING**: [`Namespace`](#classesnamespacemd) -The total number of pending connections, both incoming and outgoing. +Secondary reserved [`Namespace`] used for padding after the blobs. + +It is used to fill up the `original data square` after all user-submitted +blobs before the parity data is generated for the `ExtendedDataSquare`. ##### Defined in -lumina\_node\_wasm.d.ts:85 +lumina\_node\_wasm.d.ts:525 *** -#### num\_pending\_outgoing +#### TRANSACTION -> **num\_pending\_outgoing**: `number` +> `readonly` `static` **TRANSACTION**: [`Namespace`](#classesnamespacemd) -The number of outgoing connections being established. +Primary reserved [`Namespace`] for the compact `Share`s with `cosmos SDK` transactions. ##### Defined in -lumina\_node\_wasm.d.ts:89 +lumina\_node\_wasm.d.ts:495 ### Methods +#### asBytes() + +> **asBytes**(): `Uint8Array`\<`ArrayBuffer`\> + +Converts the [`Namespace`] to a byte slice. + +##### Returns + +`Uint8Array`\<`ArrayBuffer`\> + +##### Defined in + +lumina\_node\_wasm.d.ts:487 + +*** + #### free() > **free**(): `void` @@ -264,7 +1349,7 @@ lumina\_node\_wasm.d.ts:89 ##### Defined in -lumina\_node\_wasm.d.ts:61 +lumina\_node\_wasm.d.ts:465 *** @@ -280,7 +1365,7 @@ lumina\_node\_wasm.d.ts:61 ##### Defined in -lumina\_node\_wasm.d.ts:56 +lumina\_node\_wasm.d.ts:460 *** @@ -296,30 +1381,73 @@ Return stringified version of self. ##### Defined in -lumina\_node\_wasm.d.ts:60 +lumina\_node\_wasm.d.ts:464 +*** - +#### fromRaw() + +> `static` **fromRaw**(`raw`): [`Namespace`](#classesnamespacemd) + +Create a new [`Namespace`] from the raw bytes. + +## Errors + +This function will return an error if the slice length is different than +[`NS_SIZE`] or if the namespace is invalid. If you are constructing the +version `0` namespace, check [`newV0`]. + +##### Parameters + +###### raw + +`Uint8Array`\<`ArrayBuffer`\> + +##### Returns + +[`Namespace`](#classesnamespacemd) -[**lumina-node-wasm**](#readmemd) • **Docs** +##### Defined in + +lumina\_node\_wasm.d.ts:483 *** -[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot +#### newV0() -## Class: NetworkInfoSnapshot +> `static` **newV0**(`id`): [`Namespace`](#classesnamespacemd) -Information about the connections +Create a new [`Namespace`] version `0` with given id. -### Constructors +Check [`Namespace::new_v0`] for more details. + +[`Namespace::new_v0`]: https://docs.rs/celestia-types/latest/celestia_types/nmt/struct.Namespace.html#method.new_v0 +##### Parameters -#### new NetworkInfoSnapshot() +###### id -> **new NetworkInfoSnapshot**(): [`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd) +`Uint8Array`\<`ArrayBuffer`\> ##### Returns -[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd) +[`Namespace`](#classesnamespacemd) + +##### Defined in + +lumina\_node\_wasm.d.ts:473 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot + +## Class: NetworkInfoSnapshot + +Information about the connections ### Properties @@ -331,7 +1459,7 @@ Gets counters for ongoing network connections. ##### Defined in -lumina\_node\_wasm.d.ts:107 +lumina\_node\_wasm.d.ts:564 *** @@ -343,7 +1471,7 @@ The number of connected peers, i.e. peers with whom at least one established con ##### Defined in -lumina\_node\_wasm.d.ts:111 +lumina\_node\_wasm.d.ts:560 ### Methods @@ -357,7 +1485,7 @@ lumina\_node\_wasm.d.ts:111 ##### Defined in -lumina\_node\_wasm.d.ts:103 +lumina\_node\_wasm.d.ts:556 *** @@ -373,7 +1501,7 @@ lumina\_node\_wasm.d.ts:103 ##### Defined in -lumina\_node\_wasm.d.ts:98 +lumina\_node\_wasm.d.ts:551 *** @@ -389,12 +1517,12 @@ Return stringified version of self. ##### Defined in -lumina\_node\_wasm.d.ts:102 +lumina\_node\_wasm.d.ts:555 -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -418,7 +1546,9 @@ expected to have `MessagePort`-like interface for sending and receiving messages ##### Parameters -• **port**: `any` +###### port + +`any` ##### Returns @@ -426,7 +1556,7 @@ expected to have `MessagePort`-like interface for sending and receiving messages ##### Defined in -lumina\_node\_wasm.d.ts:126 +lumina\_node\_wasm.d.ts:578 ### Methods @@ -438,7 +1568,9 @@ Establish a new connection to the existing worker over provided port ##### Parameters -• **port**: `any` +###### port + +`any` ##### Returns @@ -446,7 +1578,7 @@ Establish a new connection to the existing worker over provided port ##### Defined in -lumina\_node\_wasm.d.ts:132 +lumina\_node\_wasm.d.ts:582 *** @@ -462,7 +1594,7 @@ Get all the peers that node is connected to. ##### Defined in -lumina\_node\_wasm.d.ts:182 +lumina\_node\_wasm.d.ts:619 *** @@ -478,7 +1610,7 @@ Returns a [`BroadcastChannel`] for events generated by [`Node`]. ##### Defined in -lumina\_node\_wasm.d.ts:298 +lumina\_node\_wasm.d.ts:686 *** @@ -492,59 +1624,57 @@ lumina\_node\_wasm.d.ts:298 ##### Defined in -lumina\_node\_wasm.d.ts:120 +lumina\_node\_wasm.d.ts:573 *** #### getHeaderByHash() -> **getHeaderByHash**(`hash`): `Promise`\<`any`\> +> **getHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Get a synced header for the block with a given hash. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **hash**: `string` +###### hash + +`string` ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:257 +lumina\_node\_wasm.d.ts:662 *** #### getHeaderByHeight() -> **getHeaderByHeight**(`height`): `Promise`\<`any`\> +> **getHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Get a synced header for the block with a given height. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **height**: `bigint` +###### height + +`bigint` ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:266 +lumina\_node\_wasm.d.ts:666 *** #### getHeaders() -> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<`any`[]\> +> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\> Get synced headers from the given heights range. @@ -556,83 +1686,77 @@ store. If range contains a height of a header that is not found in the store. -Returns an array of javascript objects with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **start\_height?**: `bigint` +###### start\_height? + +`bigint` -• **end\_height?**: `bigint` +###### end\_height? + +`bigint` ##### Returns -`Promise`\<`any`[]\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\> ##### Defined in -lumina\_node\_wasm.d.ts:284 +lumina\_node\_wasm.d.ts:678 *** #### getLocalHeadHeader() -> **getLocalHeadHeader**(): `Promise`\<`any`\> +> **getLocalHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Get the latest locally synced header. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:248 +lumina\_node\_wasm.d.ts:658 *** #### getNetworkHeadHeader() -> **getNetworkHeadHeader**(): `Promise`\<`any`\> +> **getNetworkHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Get the latest header announced in the network. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:240 +lumina\_node\_wasm.d.ts:654 *** #### getSamplingMetadata() -> **getSamplingMetadata**(`height`): `Promise`\<`any`\> +> **getSamplingMetadata**(`height`): `Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\> Get data sampling metadata of an already sampled height. -Returns a javascript object with given structure: -https://docs.rs/lumina-node/latest/lumina_node/store/struct.SamplingMetadata.html - ##### Parameters -• **height**: `bigint` +###### height + +`bigint` ##### Returns -`Promise`\<`any`\> +`Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\> ##### Defined in -lumina\_node\_wasm.d.ts:293 +lumina\_node\_wasm.d.ts:682 *** @@ -648,7 +1772,7 @@ Check whether Lumina is currently running ##### Defined in -lumina\_node\_wasm.d.ts:137 +lumina\_node\_wasm.d.ts:586 *** @@ -664,7 +1788,7 @@ Get all the multiaddresses on which the node listens. ##### Defined in -lumina\_node\_wasm.d.ts:177 +lumina\_node\_wasm.d.ts:615 *** @@ -680,7 +1804,7 @@ Get node's local peer ID. ##### Defined in -lumina\_node\_wasm.d.ts:152 +lumina\_node\_wasm.d.ts:595 *** @@ -696,7 +1820,7 @@ Get current network info. ##### Defined in -lumina\_node\_wasm.d.ts:172 +lumina\_node\_wasm.d.ts:611 *** @@ -712,99 +1836,126 @@ Get current [`PeerTracker`] info. ##### Defined in -lumina\_node\_wasm.d.ts:157 +lumina\_node\_wasm.d.ts:599 + +*** + +#### requestAllBlobs() + +> **requestAllBlobs**(`header`, `namespace`, `timeout_secs`?): `Promise`\<[`Blob`](#classesblobmd)[]\> + +Request all blobs with provided namespace in the block corresponding to this header +using bitswap protocol. + +##### Parameters + +###### header + +[`ExtendedHeader`](#classesextendedheadermd) + +###### namespace + +[`Namespace`](#classesnamespacemd) + +###### timeout\_secs? + +`number` + +##### Returns + +`Promise`\<[`Blob`](#classesblobmd)[]\> + +##### Defined in + +lumina\_node\_wasm.d.ts:646 *** #### requestHeaderByHash() -> **requestHeaderByHash**(`hash`): `Promise`\<`any`\> +> **requestHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Request a header for the block with a given hash from the network. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **hash**: `string` +###### hash + +`string` ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:206 +lumina\_node\_wasm.d.ts:631 *** #### requestHeaderByHeight() -> **requestHeaderByHeight**(`height`): `Promise`\<`any`\> +> **requestHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Request a header for the block with a given height from the network. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **height**: `bigint` +###### height + +`bigint` ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:215 +lumina\_node\_wasm.d.ts:635 *** #### requestHeadHeader() -> **requestHeadHeader**(): `Promise`\<`any`\> +> **requestHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> Request the head header from the network. -Returns a javascript object with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Returns -`Promise`\<`any`\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\> ##### Defined in -lumina\_node\_wasm.d.ts:197 +lumina\_node\_wasm.d.ts:627 *** #### requestVerifiedHeaders() -> **requestVerifiedHeaders**(`from_header`, `amount`): `Promise`\<`any`[]\> +> **requestVerifiedHeaders**(`from`, `amount`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\> Request headers in range (from, from + amount] from the network. The headers will be verified with the `from` header. -Returns an array of javascript objects with given structure: -https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html - ##### Parameters -• **from\_header**: `any` +###### from + +[`ExtendedHeader`](#classesextendedheadermd) + +###### amount -• **amount**: `bigint` +`bigint` ##### Returns -`Promise`\<`any`[]\> +`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\> ##### Defined in -lumina\_node\_wasm.d.ts:227 +lumina\_node\_wasm.d.ts:641 *** @@ -816,9 +1967,13 @@ Trust or untrust the peer with a given ID. ##### Parameters -• **peer\_id**: `string` +###### peer\_id + +`string` + +###### is\_trusted -• **is\_trusted**: `boolean` +`boolean` ##### Returns @@ -826,7 +1981,7 @@ Trust or untrust the peer with a given ID. ##### Defined in -lumina\_node\_wasm.d.ts:189 +lumina\_node\_wasm.d.ts:623 *** @@ -838,7 +1993,9 @@ Start a node with the provided config, if it's not running ##### Parameters -• **config**: [`NodeConfig`](#classesnodeconfigmd) +###### config + +[`NodeConfig`](#classesnodeconfigmd) ##### Returns @@ -846,7 +2003,7 @@ Start a node with the provided config, if it's not running ##### Defined in -lumina\_node\_wasm.d.ts:143 +lumina\_node\_wasm.d.ts:590 *** @@ -860,7 +2017,7 @@ lumina\_node\_wasm.d.ts:143 ##### Defined in -lumina\_node\_wasm.d.ts:147 +lumina\_node\_wasm.d.ts:591 *** @@ -876,7 +2033,7 @@ Get current header syncing info. ##### Defined in -lumina\_node\_wasm.d.ts:232 +lumina\_node\_wasm.d.ts:650 *** @@ -892,7 +2049,7 @@ Wait until the node is connected to at least 1 peer. ##### Defined in -lumina\_node\_wasm.d.ts:162 +lumina\_node\_wasm.d.ts:603 *** @@ -908,12 +2065,12 @@ Wait until the node is connected to at least 1 trusted peer. ##### Defined in -lumina\_node\_wasm.d.ts:167 +lumina\_node\_wasm.d.ts:607 -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -923,40 +2080,56 @@ lumina\_node\_wasm.d.ts:167 Config for the lumina wasm node. -### Constructors +### Properties -#### new NodeConfig() +#### bootnodes -> **new NodeConfig**(): [`NodeConfig`](#classesnodeconfigmd) +> **bootnodes**: `string`[] -##### Returns +A list of bootstrap peers to connect to. -[`NodeConfig`](#classesnodeconfigmd) +##### Defined in -### Properties +lumina\_node\_wasm.d.ts:713 -#### bootnodes +*** -> **bootnodes**: `string`[] +#### custom\_pruning\_delay\_secs? -A list of bootstrap peers to connect to. +> `optional` **custom\_pruning\_delay\_secs**: `number` + +Pruning delay defines how much time the pruner should wait after sampling window in +order to prune the block. + +If this is not set, then default value will apply: + +* If `use_persistent_memory == true`, default value is 1 hour. +* If `use_persistent_memory == false`, default value is 60 seconds. + +The minimum value that can be set is 60 seconds. ##### Defined in -lumina\_node\_wasm.d.ts:322 +lumina\_node\_wasm.d.ts:742 *** -#### custom\_syncing\_window\_secs? +#### custom\_sampling\_window\_secs? + +> `optional` **custom\_sampling\_window\_secs**: `number` -> `optional` **custom\_syncing\_window\_secs**: `number` +Sampling window defines maximum age of a block considered for syncing and sampling. -Syncing window size, defines maximum age of headers considered for syncing and sampling. -Headers older than syncing window by more than an hour are eligible for pruning. +If this is not set, then default value will apply: + +* If `use_persistent_memory == true`, default value is 30 days. +* If `use_persistent_memory == false`, default value is 60 seconds. + +The minimum value that can be set is 60 seconds. ##### Defined in -lumina\_node\_wasm.d.ts:327 +lumina\_node\_wasm.d.ts:730 *** @@ -968,7 +2141,21 @@ A network to connect to. ##### Defined in -lumina\_node\_wasm.d.ts:331 +lumina\_node\_wasm.d.ts:709 + +*** + +#### use\_persistent\_memory + +> **use\_persistent\_memory**: `boolean` + +Whether to store data in persistent memory or not. + +**Default value:** true + +##### Defined in + +lumina\_node\_wasm.d.ts:719 ### Methods @@ -982,7 +2169,7 @@ lumina\_node\_wasm.d.ts:331 ##### Defined in -lumina\_node\_wasm.d.ts:312 +lumina\_node\_wasm.d.ts:701 *** @@ -998,7 +2185,7 @@ lumina\_node\_wasm.d.ts:312 ##### Defined in -lumina\_node\_wasm.d.ts:307 +lumina\_node\_wasm.d.ts:696 *** @@ -1014,7 +2201,7 @@ Return stringified version of self. ##### Defined in -lumina\_node\_wasm.d.ts:311 +lumina\_node\_wasm.d.ts:700 *** @@ -1026,7 +2213,9 @@ Get the configuration with default bootnodes for provided network ##### Parameters -• **network**: [`Network`](#enumerationsnetworkmd) +###### network + +[`Network`](#enumerationsnetworkmd) ##### Returns @@ -1034,12 +2223,12 @@ Get the configuration with default bootnodes for provided network ##### Defined in -lumina\_node\_wasm.d.ts:318 +lumina\_node\_wasm.d.ts:705 -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -1060,7 +2249,9 @@ them and sending a response back, as well as accepting new `NodeClient` connecti ##### Parameters -• **port\_like\_object**: `any` +###### port\_like\_object + +`any` ##### Returns @@ -1068,7 +2259,7 @@ them and sending a response back, as well as accepting new `NodeClient` connecti ##### Defined in -lumina\_node\_wasm.d.ts:344 +lumina\_node\_wasm.d.ts:752 ### Methods @@ -1082,7 +2273,7 @@ lumina\_node\_wasm.d.ts:344 ##### Defined in -lumina\_node\_wasm.d.ts:340 +lumina\_node\_wasm.d.ts:751 *** @@ -1096,12 +2287,12 @@ lumina\_node\_wasm.d.ts:340 ##### Defined in -lumina\_node\_wasm.d.ts:348 +lumina\_node\_wasm.d.ts:753 -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -1111,16 +2302,6 @@ lumina\_node\_wasm.d.ts:348 Statistics of the connected peers -### Constructors - -#### new PeerTrackerInfoSnapshot() - -> **new PeerTrackerInfoSnapshot**(): [`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd) - -##### Returns - -[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd) - ### Properties #### num\_connected\_peers @@ -1131,7 +2312,7 @@ Number of the connected peers. ##### Defined in -lumina\_node\_wasm.d.ts:366 +lumina\_node\_wasm.d.ts:772 *** @@ -1143,7 +2324,7 @@ Number of the connected trusted peers. ##### Defined in -lumina\_node\_wasm.d.ts:370 +lumina\_node\_wasm.d.ts:776 ### Methods @@ -1157,7 +2338,7 @@ lumina\_node\_wasm.d.ts:370 ##### Defined in -lumina\_node\_wasm.d.ts:362 +lumina\_node\_wasm.d.ts:768 *** @@ -1173,7 +2354,7 @@ lumina\_node\_wasm.d.ts:362 ##### Defined in -lumina\_node\_wasm.d.ts:357 +lumina\_node\_wasm.d.ts:763 *** @@ -1189,30 +2370,73 @@ Return stringified version of self. ##### Defined in -lumina\_node\_wasm.d.ts:361 +lumina\_node\_wasm.d.ts:767 - + -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** -[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot +[lumina-node-wasm](#globalsmd) / SamplingMetadata -## Class: SyncingInfoSnapshot +## Class: SamplingMetadata -Status of the synchronization. +Sampling metadata for a block. -### Constructors +This struct persists DAS-ing information in a header store for future reference. + +### Properties + +#### cids + +> `readonly` **cids**: `Uint8Array`\<`ArrayBuffer`\>[] + +Return Array of cids + +##### Defined in + +lumina\_node\_wasm.d.ts:793 + +*** + +#### status + +> **status**: [`SamplingStatus`](#enumerationssamplingstatusmd) + +Indicates whether this node was able to successfuly sample the block + +##### Defined in + +lumina\_node\_wasm.d.ts:789 + +### Methods -#### new SyncingInfoSnapshot() +#### free() -> **new SyncingInfoSnapshot**(): [`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd) +> **free**(): `void` ##### Returns -[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd) +`void` + +##### Defined in + +lumina\_node\_wasm.d.ts:785 + + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot + +## Class: SyncingInfoSnapshot + +Status of the synchronization. ### Properties @@ -1224,7 +2448,7 @@ Ranges of headers that are already synchronised ##### Defined in -lumina\_node\_wasm.d.ts:388 +lumina\_node\_wasm.d.ts:812 *** @@ -1236,7 +2460,7 @@ Syncing target. The latest height seen in the network that was successfully veri ##### Defined in -lumina\_node\_wasm.d.ts:392 +lumina\_node\_wasm.d.ts:816 ### Methods @@ -1250,7 +2474,7 @@ lumina\_node\_wasm.d.ts:392 ##### Defined in -lumina\_node\_wasm.d.ts:384 +lumina\_node\_wasm.d.ts:808 *** @@ -1266,7 +2490,7 @@ lumina\_node\_wasm.d.ts:384 ##### Defined in -lumina\_node\_wasm.d.ts:379 +lumina\_node\_wasm.d.ts:803 *** @@ -1282,14 +2506,14 @@ Return stringified version of self. ##### Defined in -lumina\_node\_wasm.d.ts:383 +lumina\_node\_wasm.d.ts:807 # Enumerations -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -1347,12 +2571,61 @@ Private local network. lumina\_node\_wasm.d.ts:26 + + + +[**lumina-node-wasm**](#readmemd) + +*** + +[lumina-node-wasm](#globalsmd) / SamplingStatus + +## Enumeration: SamplingStatus + +Sampling status for a block. + +### Enumeration Members + +#### Accepted + +> **Accepted**: `1` + +Sampling is done and block is accepted. + +##### Defined in + +lumina\_node\_wasm.d.ts:39 + +*** + +#### Rejected + +> **Rejected**: `2` + +Sampling is done and block is rejected. + +##### Defined in + +lumina\_node\_wasm.d.ts:43 + +*** + +#### Unknown + +> **Unknown**: `0` + +Sampling is not done. + +##### Defined in + +lumina\_node\_wasm.d.ts:35 + # Functions -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -1375,7 +2648,7 @@ lumina\_node\_wasm.d.ts:6 -[**lumina-node-wasm**](#readmemd) • **Docs** +[**lumina-node-wasm**](#readmemd) *** @@ -1384,16 +2657,24 @@ lumina\_node\_wasm.d.ts:6 ## Enumerations - [Network](#enumerationsnetworkmd) +- [SamplingStatus](#enumerationssamplingstatusmd) ## Classes +- [AppVersion](#classesappversionmd) +- [Blob](#classesblobmd) - [BlockRange](#classesblockrangemd) +- [Commitment](#classescommitmentmd) - [ConnectionCountersSnapshot](#classesconnectioncounterssnapshotmd) +- [DataAvailabilityHeader](#classesdataavailabilityheadermd) +- [ExtendedHeader](#classesextendedheadermd) +- [Namespace](#classesnamespacemd) - [NetworkInfoSnapshot](#classesnetworkinfosnapshotmd) - [NodeClient](#classesnodeclientmd) - [NodeConfig](#classesnodeconfigmd) - [NodeWorker](#classesnodeworkermd) - [PeerTrackerInfoSnapshot](#classespeertrackerinfosnapshotmd) +- [SamplingMetadata](#classessamplingmetadatamd) - [SyncingInfoSnapshot](#classessyncinginfosnapshotmd) ## Functions diff --git a/node-wasm/js/package.json b/node-wasm/js/package.json index 06b00155..123aff11 100644 --- a/node-wasm/js/package.json +++ b/node-wasm/js/package.json @@ -5,7 +5,7 @@ "Eiger " ], "description": "Lumina node for Celestia, running in browser", - "version": "0.7.0", + "version": "0.8.0", "license": "Apache-2.0", "repository": { "type": "git", @@ -19,7 +19,7 @@ "main": "index.js", "homepage": "https://www.eiger.co", "dependencies": { - "lumina-node-wasm": "0.7.0" + "lumina-node-wasm": "0.8.0" }, "keywords": [ "blockchain", diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md index b5a159b3..a4b1f4bb 100644 --- a/node/CHANGELOG.md +++ b/node/CHANGELOG.md @@ -6,6 +6,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.9.0](https://github.com/eigerco/lumina/compare/lumina-node-v0.8.0...lumina-node-v0.9.0) - 2025-01-14 + +### Added + +- adding uniffi bindings to support android and ios (#473) +- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468) +- Add remaining node types for wasm (#476) +- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485) +- *(node)* Implement `EitherStore` combinator struct (#484) +- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) +- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477) + ## [0.8.0](https://github.com/eigerco/lumina/compare/lumina-node-v0.7.0...lumina-node-v0.8.0) - 2024-12-02 ### Added diff --git a/node/Cargo.toml b/node/Cargo.toml index 2235740d..e7aa0188 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lumina-node" -version = "0.8.0" +version = "0.9.0" edition = "2021" license = "Apache-2.0" description = "Celestia data availability node implementation in Rust" diff --git a/proto/CHANGELOG.md b/proto/CHANGELOG.md index bbcbad77..038894aa 100644 --- a/proto/CHANGELOG.md +++ b/proto/CHANGELOG.md @@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.7.0](https://github.com/eigerco/lumina/compare/celestia-proto-v0.6.0...celestia-proto-v0.7.0) - 2025-01-14 + +### Added + +- *(grpc)* [**breaking**] add wasm support and transaction client (#474) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) +- [**breaking**] Add notes about Celestia's Tendermint modifications (#471) + ## [0.6.0](https://github.com/eigerco/lumina/compare/celestia-proto-v0.5.0...celestia-proto-v0.6.0) - 2024-12-02 ### Added diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 01222b8c..9c4f535a 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "celestia-proto" -version = "0.6.0" +version = "0.7.0" edition = "2021" license = "Apache-2.0" description = "Rust implementation of proto structs used in celestia ecosystem" diff --git a/rpc/CHANGELOG.md b/rpc/CHANGELOG.md index 42198d0c..bd1c441b 100644 --- a/rpc/CHANGELOG.md +++ b/rpc/CHANGELOG.md @@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.9.0](https://github.com/eigerco/lumina/compare/celestia-rpc-v0.8.0...celestia-rpc-v0.9.0) - 2025-01-14 + +### Added + +- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468) +- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) + ## [0.8.0](https://github.com/eigerco/lumina/compare/celestia-rpc-v0.7.1...celestia-rpc-v0.8.0) - 2024-12-02 ### Added diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 334a73df..9d5bd466 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "celestia-rpc" -version = "0.8.0" +version = "0.9.0" edition = "2021" license = "Apache-2.0" description = "A collection of traits for interacting with Celestia data availability nodes RPC" diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index 05ea888e..45874912 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.10.0](https://github.com/eigerco/lumina/compare/celestia-types-v0.9.0...celestia-types-v0.10.0) - 2025-01-14 + +### Added + +- *(grpc)* [**breaking**] add wasm support and transaction client (#474) +- *(types)* add serde feature for nmt-rs (#480) +- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468) +- Add remaining node types for wasm (#476) +- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485) + +### Fixed + +- *(types)* RowNamespaceData binary deserialization (#493) + +### Other + +- *(ci)* migrate toolchain action, parallelize (#503) + ## [0.9.0](https://github.com/eigerco/lumina/compare/celestia-types-v0.8.0...celestia-types-v0.9.0) - 2024-12-02 ### Added diff --git a/types/Cargo.toml b/types/Cargo.toml index 113233fc..00357f40 100644 --- a/types/Cargo.toml +++ b/types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "celestia-types" -version = "0.9.0" +version = "0.10.0" edition = "2021" license = "Apache-2.0" description = "Core types, traits and constants for working with the Celestia ecosystem"