Skip to content

Instantly share code, notes, and snippets.

View zmanian's full-sized avatar

Zaki Manian zmanian

View GitHub Profile
mkdir -p ~/gentxes
rm -f ~/gentxes/*.json
rm -f ~/.gaiad/config/gentx/*.json
rm -rf ~/.gaiacli
gaiacli config keyring-backend test
for valnum in 0 1 2 3 4 5; do
echo "*** valnum: $valnum"
cp ~/private_keys/val_$valnum.key ~/.gaiad/config/priv_validator_key.json
{
"genesis_time": "2020-05-23T15:46:17.050233167Z",
"chain_id": "gameofzoneshub-3",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},
"evidence": {
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
export PATH=$PATH:$HOME/.cargo/bin
git clone https://github.com/iqlusioninc/usbarmory.rs
cd usbarmory.rs
git checkout develop
cd host/usbc
cargo install --path .
cd ../usd && cargo install --path .
cargo install --git https://github.com/japaric/flip-lld
rustup component add llvm-tools-preview
libra% ol s 0 aa 100 001eef1120c0b13b46adae770d866308a5db6fdc1f408c6b8b6a7376e9146dc94586bdf1f84d276d5f65d1b1a7cec888706b680b5e19b248871915bb4319bbe13e7a2e222d28ef9e5e95d3709b46d88424c52140e1d48c1f123f2a1341448b9239e40509a604b1c54cc6c2750ae1255287308d7b2dd5353bae649d4b1bcb65154cffe2e189ec6960d5fa88eef4aa4f1c1939ce8b4808c379562a45ffcda8c502b9558c0999a595dddc02601e837634081977be9195345fae0e858b2cf402e03844ccda24977966ca41706e84c3bf4a841c3845c7bb519547b735cb5644fb0f8a78384827a098b3c80432a4db1135e3df70ade040444d67936b949bd17b68f64fde810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
ERROR 2020-06-22 03:26:52 common/crash-handler/src/lib.rs:38 details = '''panicked at 'Invalid Proof', /Users/zakimanian/.rustup/toolchains/1.44.0-x86_64-apple-darwin/lib/rustlib/src/rust/src/libstd/macros.rs:13:23'''
backtrace = '''
0: 0x10ef2487c - backtrace::backtrace::libunwind::trace::h728c1cdc231a0cf6
at /Users/zakimanian/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.48/src/backtrace/libunwind.rs:86
backtrace::backtrace::trace_unsynchronized::h6f9ce700d1d0c782
at /Users/zakimanian/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.48/src/backtrace/mod.rs:66
backtrace::backtrace::trace::hf06a6b725a5dec68
at /Users/zakimanian/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.48/src/backtrace/mod.rs:53
1: 0x10ef26a18 - backtrace::capture::Backtrace::create::hc95b3ea3c9fcb08d

E[2020-08-12|06:37:15.745] CONSENSUS FAILURE!!! module=consensus err="Int64() out of bound" stack="goroutine 177 [running]:\nruntime/debug.Stack(0xc000fce530, 0x15fad20, 0x1cfa510)\n\t/snap/go/6123/src/runtime/debug/stack.go:24 +0x9d\ngithub.com/tendermint/tendermint/consensus.(*State).receiveRoutine.func2(0xc000f98e00, 0x1aae108)\n\t/home/zakimanian/go/pkg/mod/github.com/tendermint/[email protected]/consensus/state.go:675 +0x57\npanic(0x15fad20, 0x1cfa510)\n\t/snap/go/6123/src/runtime/panic.go:969 +0x166\ngithub.com/cosmos/cosmos-sdk/types.Int.Int64(0xc000e8dbe0, 0x1d5dd20)\n\t/home/zakimanian/go/pkg/mod/github.com/cosmos/[email protected]/types/int.go:148 +0xa1\ngithub.com/cosmos/cosmos-sdk/x/mint.BeginBlocker(0x1d5dd20, 0xc00003e068, 0x1d77e60, 0xc0004af440, 0xb, 0x0, 0xc000bf3e80, 0x12, 0x1, 0x330e547c, ...)\n\t/home/zakimanian/go/pkg/mod/github.com/cosmos/[email protected]/x/mint/abci.

@zmanian
zmanian / Notes.md
Last active January 10, 2021 02:44
Notes on building Gaiad on Windows without WSL

Build gaia on windows without the Windows Subsystem for Linux and with Ledger support.

  1. Install chocolatey

  2. Install git, go and mingw

choco install mingw git go

ICS: Cinderella Tokens: An Async/IBC friendly alternative to flash loans

Flashloans are a fascinating economic coordination mechanism that has emerged out the Ethereum architecture as a result of a synchronous, sequential, atomic transaction system. It allows anonymous coordination between capital providers and arbitrageurs because the capital providers can condition providing any capital on protocol enforced guarantee that the entire arbitrage is profitable denominated in the token being lent.

One of the effects of this process has been the it ensures an efficient and healthy liquidation market for the collateral in long term debt instruments. It also enables low cost scaling of economic exploits.

Why don’t flash loans exist in IBC world?

Flash loans are impossible in an IBC world because IBC semantics require finalizing a block on the origin chain rather than on the receiving chain. This makes atomicity for the lender difficult and moves us into the domain of over collateralized lending.

MEV and protocol design

BFT system design in the presence of MEV

Liveness : Number of correct nodes for the protocol to progress Safety: The number of faulty nodes to create view inconsistency. Accountability: Does a fault produce verifiable evidence of the byzantine actor.

Safety: MEV extraction that violates safety will always be accountable. In protocols that have slashing, this means economic punishments and burned stake.

{
"genesis_time": "2022-01-05T16:12:16.939117Z",
"chain_id": "liquidstaking",
"initial_height": "1",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},