landslidecore

module
v0.0.0-...-6dcdc0e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2023 License: Apache-2.0

README

LandslideCore: A Tendermint Subnet on Avalanche

picture alt

The Landslide Network is an Avalanche Subnet which decreases the finality of Tendermint consensus, and will port over the majority of the Cosmos and Terra ecosystems via an opensource Cosmwasm SDK to run any Tendermint-based dApp natively within the AVAX ecosystem.

Finality on Tendermint will be reduced to subsecond.

This new Cosmwasm SDK can be used to develop games, AMMs, and other dapps that require high throughput and scalability that are currently unavailable on Cosmos or Terra due to the slow finality of Tendermint consensus.

Goals

  • Decrease the finality of transactions on Tendermint from 7-22 seconds to under 1 second.
  • Fork/port existing Cosmos and Terra dApps to the subnet.
  • Take advantage of trading opportunities created by the faster finality times.
  • 99% compatible out-of-the-box with native Cosmos-based SDK.
  • Create a closer collaboration between the three ecosystems of Avalanche, Terra, and Cosmos.
  • Airdrop tokens to the most amount users on Avalanche, Terra, and Cosmos.

Motivation

The large scale adoption of Tendermint is entirely dependent on Tendermint consensus. While rollups do present a potential soluiton to TPS, they present centralized security risks. With a Tendermint module and Avalanche consensus, now the Cosmos and Terra ecosystems will be able to build entire realm of metaverse, gaming, and trading applications that were formerly impossible to scale.

Architecture

picture alt

Network Characteristics

  • Be accessible via the Terra Station, Keplr, and Core AVAX wallets.
  • Integrate the Cosmos IBC via Tendermint/Avalanche SDK.
    • This will help facilitate swaps between AVAX and ATOM when atomic swaps between subnets go live on Avalanche in Q4 2022.
  • All $LUNA, $ATOM, and $AVAX balances, and instances will be replaced with $SLIDE tokens.
  • The balances will be logarithmically adjusted to ensure a fair distribution.
  • UST will not be forked to Landslide.
  • Fork most Terra and Cosmos tokens and Dapps into the subnet.
  • Stock tokens from Mirror will be frozen until the Landslide DAO, or the Foundation, votes to unfreeze these assets (which may or may not occur) based on the legal risk and Foundation policies.
  • Create a custom open source Avalanche-Cosmos SDK merging the Cosmos SDK with the Avalanche SDK.
  • Innovative inflationary network fees are being discussed in addition to the native $AVAX burning mechanism.
  • Fees may be split between being burned (similar to AVAX), and being sent to popular network apps via token holders (similar to Archway).
  • These parameters will be governed by the voting similar to current native Terra voting.
  • Require Landslide Validators to be validators on AVAX mainnet.

Run Local Network

To run a local network, it is recommended to use the avalanche-cli to set up an instance of Subnet-EVM on an local Avalanche Network.

There are two options when using the Avalanche-CLI:

  1. Use an official Subnet-EVM release: https://docs.avax.network/subnets/build-first-subnet
  2. Build and deploy a locally built (and optionally modified) version of Subnet-EVM: https://docs.avax.network/subnets/create-custom-subnet

Directories

Path Synopsis
abci
server
Package server is used to start a new ABCI server.
Package server is used to start a new ABCI server.
Package Behaviour provides a mechanism for reactors to report behaviour of peers.
Package Behaviour provides a mechanism for reactors to report behaviour of peers.
v0
v1
v2
cmd
merkle
Package merkle computes a deterministic minimal height Merkle tree hash.
Package merkle computes a deterministic minimal height Merkle tree hash.
secp256k1/btcec
Package btcec implements support for the elliptic curves needed for bitcoin.
Package btcec implements support for the elliptic curves needed for bitcoin.
xchacha20poly1305
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
Package evidence handles all evidence storage and gossiping from detection to block proposal.
libs
cli
events
Package events - Pub-Sub in go with event caching
Package events - Pub-Sub in go with event caching
flowrate
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
Package flowrate provides the tools for monitoring and limiting the flow rate of an arbitrary data stream.
json
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
Package json provides functions for marshaling and unmarshaling JSON in a format that is backwards-compatible with Amino JSON encoding.
log
net
os
pubsub
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
Package pubsub implements a pub-sub model with a single publisher (Server) and multiple subscribers (clients).
pubsub/query
Package query provides a parser for a custom query format:
Package query provides a parser for a custom query format:
package light provides a light client implementation.
package light provides a light client implementation.
rpc
TODO: Better handle abci client errors.
TODO: Better handle abci client errors.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
Package node is the main entry point, where the Node struct, which represents a full node, is defined.
p2p
pex
upnp
Taken from taipei-torrent.
Taken from taipei-torrent.
Package privval provides different implementations of the types.PrivValidator.
Package privval provides different implementations of the types.PrivValidator.
proto
rpc
core
Package core defines the Tendermint RPC endpoints.
Package core defines the Tendermint RPC endpoints.
jsonrpc
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
HTTP RPC server supporting calls via uri params, jsonrpc over HTTP, and jsonrpc over websockets
jsonrpc/server
Commons for HTTP handling
Commons for HTTP handling
scripts
indexer/sink/psql
Package psql implements an event sink backed by a PostgreSQL database.
Package psql implements an event sink backed by a PostgreSQL database.
test
app
e2e/app
nolint: gosec
nolint: gosec
e2e/generator
nolint: gosec
nolint: gosec
e2e/node
nolint: goconst
nolint: goconst
e2e/pkg
nolint: gosec
nolint: gosec
e2e/runner
nolint: gosec
nolint: gosec
fuzz/p2p/addrbook
nolint: gosec
nolint: gosec
nolint: gosec
fuzz/p2p/pex/init-corpus
nolint: gosec
nolint: gosec
nolint: gosec
tools
vm
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL