LEO (Low Ethereum Orbit) is an Ethereum Portal Network client.

Related tags

Cryptography leo
Overview

LEO

LEO (Low Ethereum Orbit) is an Ethereum Portal Network client.

What makes LEO different from other Portal Network clients is that it uses libp2p for the networking layer. There are several reasons behind this decision but the main driver is to make Ethereum state more accessible.

Contributing

Found a bug or have a feature request? Open an issue.

LEO follows the Contributor Covenant Code of Conduct.

Maintainers

@nasdf

License

LEO is licensed under GNU Affero General Public License v3.0

Issues
  • Things that don't obviously map cleanly onto this new architecture.

    Things that don't obviously map cleanly onto this new architecture.

    A: Transaction Gossip

    The portal network design for transaction gossip requires that:

    • nodes can limit how much of the mempool they are expected to process
    • nodes that want to view the full mempool can do so

    The current designs for this involve actually shaping the network topology around these two needs. It isn't obvious to me how this can be accomplished using the functionality provided by libp2p

    B: O(1) access to the state

    We need these things:

    • queries can be made under a specific state root
    • we query by key which is the full path into the trie where the leaf should live
    • the response is contains both the leaf and a proof that anchors the returned data to the state root it should be under.

    First I'll start with a completely naive solution that does seem to map fine to the new architecture.

    We will store things roughly as (key, state_root) => (leaf, proof), which means that we will key off of both the state root, and the key in the trie, and we will store both the leaf value and the proof. For this to work without anything extra fancy we must push a full new copy of the state into the network at every single block, anchoring each leaf to the state root (regardless of whether the value has changed since the previous block).

    In the DHT-portal network, we get around this by having nodes store a proof that they are continually updating as new data shows up in new blocks. This gives us both efficiency of storage since we don't have to store duplicate values that haven't changed, as well as efficient data ingress since we only have to pipe in the new/updated state data.

    It isn't clear to me how we can accomplish similar things using IPLD/bitswap.

    opened by pipermerriam 2
  • Narrow down JSON RPC methods

    Narrow down JSON RPC methods

    We need to figure out which of the Ethereum JSON RPC routes the portal network can support. There's currently a list of all routes in docs/json-rpc.md.

    opened by nasdf 0
Owner
Valist, Inc.
Valist, Inc.
This library aims to make it easier to interact with Ethereum through de Go programming language by adding a layer of abstraction through a new client on top of the go-ethereum library.

Simple ethereum client Simple ethereum client aims to make it easier for the developers to interact with Ethereum through a new layer of abstraction t

Jero 3 May 1, 2022
ConsenSys Software 8 Jan 18, 2022
Ethereum-vanity-wallet - A fork of https://github.com/meehow/ethereum-vanity-wallet but the key can be exported to a JSON keystore file

ethereum-vanity-wallet See https://github.com/meehow/ethereum-vanity-wallet This version: doesn't display the private key let's you interactively expo

null 0 Jan 2, 2022
Go-ethereum - Official Golang implementation of the Ethereum protocol

Go Ethereum Official Golang implementation of the Ethereum protocol. Automated b

i06 0 Jan 4, 2022
Smart.go is a pure Golang library to access disk low-level S.M.A.R.T. information

Smart.go is a pure Golang library to access disk low-level S.M.A.R.T. information. Smart.go tries to match functionality provided by smartctl but with golang API.

Anatol Pomozov 99 Jun 23, 2022
Ethereum Consortium Network Deployments Made Easy

Ethereum Consortium Network Deployments Made Easy Overview The next phase of our support of blockchain on Microsoft Azure is the release of the Ethere

Microsoft Partner Catalyst Team 3 Dec 20, 2020
Huobi Eco Chain client based on the go-ethereum fork

The Huobi Open Platform is a unified infrastructure platform based on the technical, traffic and ecological resources of the Huobi Group, and will be gradually open to the blockchain industry.

null 231 Jun 10, 2022
A phoenix Chain client based on the go-ethereum fork,the new PoA consensus engine is based on the VRF algorithm.

Phoenix Official Golang implementation of the Phoenix protocol. !!!The current version is for testing and developing purposes only!!! Building the sou

g_master 14 Apr 28, 2022
Tool for monitoring your Ethereum clients. Client-agnostic as it queries the standardized JSON-RPC APIs

e7mon Tool for monitoring your Ethereum clients. Client-agnostic as it queries the standardized JSON-RPC APIs. However, the execution client should be

null 24 May 28, 2022
A Commander for Go implementation of official Ethereum Client

Young A Commander for Go implementation of official Ethereum Client by zhong-my. Overview Young Dependencies Young stands on the shoulder of many grea

Zhong MingYang 1 Oct 14, 2021
A Binance Smart Chain client based on the go-ethereum fork

A Binance Smart Chain client based on the go-ethereum fork

null 1.6k Jun 25, 2022
A Binance Smart Chain client based on the go-ethereum fork

Binance Smart Chain The goal of Binance Smart Chain is to bring programmability and interoperability to Binance Chain. In order to embrace the existin

Sahara Street Platform 0 Feb 8, 2022
Yet another Binance Smart Chain client based on TrustFi Network

TrustFi Smart Chain The goal of TrustFi Smart Chain is to bring programmability and interoperability to Binance Chain. In order to embrace the existin

TrustFi Network 19 Mar 27, 2021
Streaming Fast on Ethereum

Stream Ethereum data like there's no tomorrow

StreamingFast 67 Jun 22, 2022
a Golang sdk for working with DeFi protocols, and ethereum compatible blockchains

A golang sdk for working with DeFi protocols and general utilities for working with ethereum-compatible blockchains. packages bclient bindings cli con

bonedaddy 58 Jun 16, 2022
run ABI encoded data against the ethereum blockchain

Run EVM code against a database at a certain block height - Note You can't run this against a running geth node - because that would share the db and

Edgar Aroutiounian 60 Nov 11, 2021
Go implementation of Ethereum proof of stake

Prysm: An Ethereum Consensus Implementation Written in Go This is the core repository for Prysm, a Golang implementation of the Ethereum Consensus spe

Prysmatic Labs 2.6k Jun 22, 2022
Ethereum Dapp Go API

Web3 Go Ethereum Dapp Go API, inspired by web3.js. Report Bug ยท Pull Request Introduction This is the Ethereum Golang API which connects to the Generi

Kyle Liu 14 Mar 28, 2022
Ethereum on StreamingFast

Ethereum on StreamingFast Requirements (clone repos, build stuff...) Install Geth git clone [email protected]:streamingfast/go-ethereum.git cd go-ethereu

StreamingFast 22 Jun 15, 2022