vulcanize / go-codec-dagcosmos

A Go implementation of the DAG interface for Tendermint and Cosmos types
Other
8 stars 2 forks source link

go-codec-dagcosmos

A Go implementation of the DAG interface for Cosmos IPLD types for use with for go-ipld-prime

Use Decode(ipld.NodeAssembler, io.Reader) and Encode(ipld.Node, io.Writer) directly, or import the packages to have the codecs registered into the go-ipld-prime CID link loader.

Use the dagcosmos.Type slab to select the appropriate type (e.g. dagcosmos.Type.Header) for strictness guarantees. Basic ipld.Nodes will need to have the appropriate fields (and no others) to successfully encode using this codec.

Supported types

Commit - Multicodec type TBD
Commit Tree - Multicodec type TBD
Evidence - Multicodec type TBD
Evidence Tree - Multicodec type TBD
Header - Multicodec type TBD
Header Tree (Header Field Tree) - Multicodec type TBD
IAVL - Multicodec type TBD
Light Block - Multicodec type TBD
Params - Multicodec type TBD
Part Tree - Multicodec type TBD
Proposal - Multicodec type TBD
Result - Multicodec type TBD
Result Tree - Multicodec type TBD
Simple Validator - Multicodec type TBD
SMT - Multicodec type TBD
Tx Tree - Multicodec type TBD
Validator Tree - Multicodec type TBD

Tendermint and Cosmos Merkle DAG Diagram

License & Copyright

Copyright © 2021 Vulcanize Inc

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.