Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
Package Usage: go: github.com/tendermint/go-amino
Amino is an encoding library that can handle interfaces (like protobuf "oneof")
well. This is achieved by prefixing bytes before each "concrete type".
A concrete type is some non-interface value (generally a struct) which
implements the interface to be (de)serialized. Not all structures need to be
registered as concrete types -- only when they will be stored in interface type
fields (or interface type slices) do they need to be registered.
All interfaces and the concrete types that implement them must be registered.
Notice that an interface is represented by a nil pointer.
Structures that must be deserialized as pointer values must be registered with
a pointer value as well. It's OK to (de)serialize such structures in
non-pointer (value) form, but when deserializing such structures into an
interface field, they will always be deserialized as pointers.
All registered concrete types are encoded with leading 4 bytes (called "prefix
bytes"), even when it's not held in an interface field/element. In this way,
Amino ensures that concrete types (almost) always have the same canonical
representation. The first byte of the prefix bytes must not be a zero byte, so
there are 2**(8*4)-2**(8*3) possible values.
When there are 4096 types registered at once, the probability of there being a
conflict is ~ 0.2%. See https://instacalc.com/51189 for estimation. This is
assuming that all registered concrete types have unique natural names (e.g.
prefixed by a unique entity name such as "com.tendermint/", and not
"mined/grinded" to produce a particular sequence of "prefix bytes").
TODO Update instacalc.com link with 255/256 since 0x00 is an escape.
Do not mine/grind to produce a particular sequence of prefix bytes, and avoid
using dependencies that do so.
Since 4 bytes are not sufficient to ensure no conflicts, sometimes it is
necessary to prepend more than the 4 prefix bytes for disambiguation. Like the
prefix bytes, the disambiguation bytes are also computed from the registered
name of the concrete type. There are 3 disambiguation bytes, and in binary
form they always precede the prefix bytes. The first byte of the
disambiguation bytes must not be a zero byte, so there are 2**(8*3)-2**(8*2)
possible values.
The prefix bytes never start with a zero byte, so the disambiguation bytes are
escaped with 0x00.
Notice that the 4 prefix bytes always immediately precede the binary encoding
of the concrete type.
To compute the disambiguation bytes, we take `hash := sha256(concreteTypeName)`,
and drop the leading 0x00 bytes.
In the example above, hash has two leading 0x00 bytes, so we drop them.
The first 3 bytes are called the "disambiguation bytes" (in angle brackets).
The next 4 bytes are called the "prefix bytes" (in square brackets).
17 versions
Latest release: over 3 years ago
4,647 dependent packages
View more package details: https://packages.ecosyste.ms/registries/proxy.golang.org/packages/github.com/tendermint/go-amino
View more repository details: https://repos.ecosyste.ms/hosts/GitHub/repositories/tendermint%2Fgo-amino
Dependent Repos 2,891
Team-Kujira/ibc-go Fork of cosmos/ibc-go
Interblockchain Communication Protocol (IBC) implementation in Golang.- v0.16.0 e2e/go.mod
- v0.16.0 e2e/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 30.2 MB - Last synced: 21 days ago - Pushed: 8 months ago
stratosnet/stratos-chain
Stratos Blockchain- v0.15.1 go.mod
- v0.15.1 go.sum
- v0.14.1 go.sum
Size: 5.26 MB - Last synced: 2 days ago - Pushed: 2 days ago
bnb-chain/bnc-cosmos-sdk
- v0.15.0 go.mod
Size: 30.4 MB - Last synced: about 1 month ago - Pushed: about 1 month ago
dreamer-zq/cosmos-sdk Fork of cosmos/cosmos-sdk
:chains: A Framework for Building High Value Public Blockchains :sparkles:- v0.16.0 cosmovisor/go.mod
- v0.16.0 cosmovisor/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 217 MB - Last synced: 26 days ago - Pushed: 7 months ago
millicent-money/cosmos-sdk
- v0.16.0 cosmovisor/go.mod
- v0.16.0 cosmovisor/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
- v0.16.0 store/tools/ics23/go.sum
Size: 361 MB - Last synced: 9 months ago - Pushed: about 1 year ago
KiraCore/sekai
backend - blockchain application- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 17.3 MB - Last synced: 21 days ago - Pushed: 27 days ago
swimricky/wormhole Fork of wormhole-foundation/wormhole
Certus One's reference implementation for the Wormhole blockchain interoperability protocol.- v0.14.1 event_database/cloud_functions/go.sum
- v0.15.1 event_database/cloud_functions/go.sum
- v0.16.0 event_database/cloud_functions/go.sum
- v0.14.1 event_database/functions_server/go.sum
- v0.15.1 event_database/functions_server/go.sum
- v0.16.0 event_database/functions_server/go.sum
- v0.16.0 node/go.mod
- v0.16.0 node/go.sum
Size: 76.7 MB - Last synced: about 1 year ago - Pushed: almost 2 years ago
bianjieai/ethermint Fork of evmos/ethermint
Ethermint is a scalable and interoperable Ethereum library, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 39.2 MB - Last synced: 23 days ago - Pushed: 23 days ago
strangelove-ventures/lens 📦
⚛️❤️👁 Brought to you by the LensCrafters- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 18.4 MB - Last synced: 29 days ago - Pushed: 10 months ago
ChainSafe/chainlink-cosmos
Chainlink on Cosmos: Cosmos SDK module for Chainlink data feeds- v0.16.0 go.sum
Size: 1.26 MB - Last synced: about 1 month ago - Pushed: 4 months ago
championshuttler/cosmos-sdk Fork of cosmos/cosmos-sdk
:chains: A Framework for Building High Value Public Blockchains :sparkles:- v0.16.0 cosmovisor/go.mod
- v0.16.0 cosmovisor/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
- v0.16.0 orm/go.sum
- v0.16.0 x/group/go.mod
- v0.16.0 x/group/go.sum
Size: 367 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
hyperledger-labs/yui-docs
- v0.16.0 samples/minitoken-besu-ethereum/relayer/go.sum
Size: 1.46 MB - Last synced: 8 months ago - Pushed: 8 months ago
lovincyrus/ethermint Fork of cosmos/ethermint
Ethereum on Tendermint using Cosmos-SDK!- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 20.8 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
allinbits/ethermint Fork of cosmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 28.5 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
JameWade/zkethermint
- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 35.2 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
faddat/ethermint Fork of cosmos/ethermint-archive
Ethereum on Tendermint!- v0.16.0 go.sum
Size: 73.5 MB - Last synced: 27 days ago - Pushed: over 1 year ago
yihuang/ethermint Fork of evmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 39.5 MB - Last synced: 6 days ago - Pushed: 6 days ago
dgfug/ethermint Fork of evmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.16.0 go.sum
Size: 30.5 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
khoslaventures/ethermint Fork of evmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 28.1 MB - Last synced: about 2 months ago - Pushed: over 1 year ago
dgfug/ethermint-1 Fork of cosmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 30 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
Some-body-in-the-ether/test
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 3.75 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
Global-Bank-of-Memories/bankofmemories-ethermint
- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 28.2 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
wxh123434/ethermint
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 36.4 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
itamard7/ethermint
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 25.6 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
pro100programmer/Evmos-Vova
- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 3.73 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
chen7gx/ethermintd
- v0.16.0 go.sum
Size: 28.1 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
notional-labs/evmos Fork of evmos/evmos
Evmos is the Ethereum Virtual Machine (EVM) Hub on the Cosmos Network. It is the flagship implementation of the Ethermint library that prioritizes interoperability and novel economics.- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 51.3 MB - Last synced: 6 days ago - Pushed: 6 days ago
git-sgmoore/evmos Fork of evmos/evmos
Evmos chain- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 3.03 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
mikeyhodl/ethermint Fork of cosmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 30.7 MB - Last synced: about 1 year ago - Pushed: over 1 year ago
Luis4Q/evmos Fork of evmos/evmos
Evmos is the Ethereum Virtual Machine (EVM) Hub on the Cosmos Network. It is the flagship implementation of the Ethermint library that prioritizes interoperability and novel economics.- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 6.13 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
torusresearch/ethermint Fork of cosmos/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 28.2 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
RonSherfey/ethermint Fork of ChainSafe/ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK. - follow the latest updates @ github.com/cosmos/ethermint- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 30.1 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
vocdoni/vocdoni-node
A set of libraries and tools for the Vocdoni decentralized backend infrastructure, the main ground of our universally verifiable, privacy-centric and scalable digital voting protocol- v0.14.1 go.sum
- v0.15.1 go.sum
Size: 16.3 MB - Last synced: 16 days ago - Pushed: 17 days ago
sysrex/celestia-node Fork of celestiaorg/celestia-node
Celestia Data Availability Nodes- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 80.8 MB - Last synced: 9 months ago - Pushed: 9 months ago
Sifchain/peggy
- v0.16.0 go.mod
- v0.14.1 go.sum
- v0.15.1 go.sum
- v0.16.0 go.sum
Size: 8.27 MB - Last synced: 10 months ago - Pushed: about 1 year ago
knkgun/cosmos-sdk Fork of cosmos/cosmos-sdk
:chains: A Framework for Building High Value Public Blockchains :sparkles:- v0.16.0 cosmovisor/go.mod
- v0.16.0 cosmovisor/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
- v0.16.0 x/group/go.mod
- v0.16.0 x/group/go.sum
Size: 386 MB - Last synced: about 1 year ago - Pushed: about 1 year ago
many-things/osmosis Fork of osmosis-labs/osmosis
The AMM Laboratory- v0.16.0 go.mod
- v0.16.0 go.sum
Size: 212 MB - Last synced: 28 days ago - Pushed: 4 months ago
kleimanb81/cosmos-sdk Fork of pomifer/cosmos-sdk
:chains: A Framework for Building High Value Public Blockchains :sparkles:- v0.16.0 cosmovisor/go.mod
- v0.16.0 cosmovisor/go.sum
- v0.16.0 go.mod
- v0.16.0 go.sum
- v0.16.0 store/tools/ics23/go.sum
Size: 406 MB - Last synced: about 1 year ago - Pushed: about 1 year ago