This defines a set of encoding rules for Protocol Buffers 3 (proto3) for serializing messages deterministically such that the serialized form is suitable for signing and encoding in cryptographic attestations (ex. Merkle trees). Similar to ASN.1 and Cap'n Proto, a set of "canonical encoding rules" (CER) is used to define a canonical encoding where the basic proto3 specification does not do so. In this sense, the default protocol buffers specification provides a set of "basic encoding rules" which are not deterministic, and we extend that specification to support deterministic encoding for cryptographic use cases.
The delegation
module also allows for fee delegation via some
changes to the AnteHandler
and StdTx
. The behavior is similar
to that described above for Msg
delegations except using
the interface FeeAllowance
instead of Capability
:
// FeeAllowance defines a permission for one account to use another account's balance
// to pay fees
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
digraph "" { | |
graph [bb="0,0,1990.1,405.6"]; | |
node [color=black, | |
label="\N", | |
shape=ellipse | |
]; | |
subgraph cluster_b { | |
graph [bb="1075.8,136,1473.8,212.8", | |
label="Module: b", | |
lheight=0.23, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt-get update | |
sudo apt-get install -y git vcsh vim tmux zsh curl software-properties-common wget | |
chsh -s /bin/zsh | |
sudo apt-get update | |
sudo apt-get install -y build-essential | |
sudo apt-get build-dep -y emacs24 | |
wget ftp://ftp.gnu.org/gnu/emacs/emacs-24.4.tar.xz | |
tar -xf emacs-24.4.tar.xz && rm emacs-24.4.tar.xz && cd emacs-24.4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE chain | |
( | |
num smallserial primary key, | |
chain_id text not null unique | |
); | |
CREATE TABLE block | |
( | |
chain_num smallint not null references chain, | |
height BIGINT not null, |
Our current upgrade module uses the gov module to trigger a planned upgrade, this has a few potential downsides:
- if a hot-fix release is needed, the network needs to wait for the full voting window
- if validators need to postpone an upgrade after the governance vote due to some issues found in testing, they can't do that
- no built-in way to abort an upgrade in case the upgrade handler fails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"binaries": { | |
"darwin/amd64": "https://github.com/regen-network/regen-ledger/releases/download/v0.5.0/regen-ledger-v0.5.0-darwin-amd64.tar.xz?checksum=sha256:1dc22afb1ae71c11971cac7367d9f525e66ef1b7e7d8c039b6acd28de45a452a", | |
"linux/amd64": "https://github.com/regen-network/regen-ledger/releases/download/v0.5.0/regen-ledger-v0.5.0-linux-amd64.tar.xz?checksum=sha256:9e8a5b837fe94190ffa415304d2004fee74bc6315e4417840b13053237da3e19" | |
} | |
} |
It seems like one of the core issues with client side support is an implementation of Amino in some language other than golang.
A couple work-arounds that occur to me are:
- Create a REST server endpoint that decodes JSON with Amino and re-encodes it in binary Amino.
- Compile Amino using gopherjs. I have tried this and it appears to be possible, although I haven't tested the generated JS. This is still a work-around, however, because to natively use from JS you would still need to emit JS, have the gopherjs Amino build decode the JS then re-encode it into binary (because the gopherjs compiled go structs aren't native JS structs). For iOS & Android, it may be possible to do the same with gomobile.
Long term solutions:
- Implementing Amino in JS and other frontend languages. If one were going to implement Amino for just one more language I would suggest Kotlin specifically aims to be multiplatform and comp
NewerOlder