• Stars
    star
    123
  • Rank 280,244 (Top 6 %)
  • Language
    Rust
  • Created almost 2 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Narwhal & Bullshark x ABCI x EVM

Components:

  • Reliable stream of hashes of batches of transactions from Bullshark
  • Reconstruction of the ledger by querying Narwhal workers' stores for the confirmed batches of transactions
  • Delivery of the reconstructed ledger over ABCI to the application logic
  • Implementation of a Rust ABCI app using REVM

Demo

Setup/dependencies (from the main folder of the repository):

Run demo (from the main folder of the repository):

  1. 1st terminal: cd demo && cargo build && poetry run fab local
  2. 2nd terminal (after the testbed has started in 1st terminal): cargo run --bin client

The second command will produce output like this:

The demo consensus network is run by four nodes (each running on localhost), whose RPC endpoints are reachable on TCP ports 3002, 3009, 3016, and 3023, respectively. There are three accounts, Alice (initially 1.5 ETH), Bob (initially 0 ETH), and Charlie (initially 0 ETH). Alice performs a double spend, sending 1 ETH each to Bob and Charlie in two different transactions that get input to the nodes at ports 3009 and 3016, respectively. Note that only one transaction can make it. Eventually, nodes reach consensus on which transaction gets executed in Foundry's EVM, and the application state is updated in lockstep across all nodes. The update is reflected in subsequent balance queries.

TODOs

  1. Why does the state transition take a few seconds to get applied?
  2. Can we make this work with Anvil instead of rebuilding a full EVM execution environment?

More Repositories

1

ethers-rs

Complete Ethereum & Celo library and wallet implementation in Rust. https://docs.rs/ethers
Rust
2,376
star
2

solidity-book

The Senior Solidity Engineer's Book is a resource meant to transform you into a Senior Solidity Engineer.
Makefile
839
star
3

opensea-rs

Rust client to Opensea's APIs and Ethereum smart contracts
Rust
242
star
4

pyrevm

Python wrapper around https://github.com/bluealloy/revm/ using PyO3
Rust
126
star
5

awesome-sp1

A curated list of awesome resources related to SP1 - Succinct's zkVM.
81
star
6

lootloose

Open your Loot bags and see what's inside
Solidity
78
star
7

humanize

Human readable descriptions for your Ethereum transactions
63
star
8

dark-forest

[WIP] Rust implementation of the Dark Forest game client
Rust
63
star
9

rubberduck-gpt3.vim

This is a vim plugin that allows you to simulate rubber duck programming by using the chatGPT API to generate code suggestions and natural language explanations based on the selected lines of code and a user-specified query. Most of this entire codebase was generated by talking with ChatGPT itself, marked as `ai` commits.
Python
53
star
10

sgx-revm

PoC of Revm execution in SGX
Rust
51
star
11

ethers-fireblocks

ethers-rs middleware and signer for Fireblocks' APIs
Rust
46
star
12

rust-ethereum-book

Book showing how to interact with Ethereum from Rust
Makefile
41
star
13

noir-hello-world

Solidity
30
star
14

optimism-tx-format

Shows how optimistic geth modifies transactions that get submitted to it by converting them to OVM Messages and then calls to the OVM Execution Manager
Go
25
star
15

eip1559

EIP1559 Analysis
Python
21
star
16

fractional-rs

CLI & Library for interacting with https://fractional.art/
Rust
21
star
17

GethCluster

Ethereum node cluster deployment script for bootstrapping private test networks
Shell
15
star
18

solidity-bls

BLS threshold signature verification in Solidity
JavaScript
14
star
19

save-noun11

Solidity
14
star
20

forge-template

Template for getting started with Forge
Solidity
14
star
21

forge-benchmarks

Shell
14
star
22

VyperWeb3Deploy

Wrapper for compiling Vyper smart contracts in javascript and automatically deploying them via web3.js
JavaScript
14
star
23

spammers

CLI for generating load for benchmarking eth nodes
Rust
12
star
24

dotfiles

My dotfiles along with a script to deploy them to your environment.
Shell
11
star
25

thesis

Version control for my thesis conducted during the 10th semester in Electrical & Computer Engineering at Aristotle University of Thessaloniki. "Decentralized Metering and Billing of Energy on Ethereum with Respect to Scalability and Security"
TeX
10
star
26

open-fastrlp

Yank of the V0.1.2 of the Fast RLP crate, from when it was still Apache licensed. V0.1.3 was changed to GPL.
Rust
10
star
27

gakonst.github.io

All of my thoughts. Technical mostly.
HTML
10
star
28

forge-tracing-repro

Solidity
9
star
29

eth-vegeta

Configuring Vegeta (https://github.com/tsenart/vegeta) to work for eth load tests
Go
8
star
30

awesome-plasma

Curated list of awesome Plasma resources
6
star
31

covid-gr

Logistic regressions + dataset on the Greek COVID-19 outbreak
Jupyter Notebook
6
star
32

thesis-code

Decentralized Metering and Billing of energy on Ethereum with respect to scalability and security
Python
6
star
33

ethers-structopt

Structopt derived ethers-rs types, useful for building Ethereum CLIs
Rust
6
star
34

eth-testnet

Cross-client Docker-compose customizable testnet image
Dockerfile
5
star
35

changesets-rs

🦀 A way to manage your versioning and changelogs with a focus on monorepos. Inspired by attlassian/changesets.
4
star
36

xchain-account

XChain account contract for Optimism, to issue L1 calls to L2
TypeScript
4
star
37

web3-rust-tower-web-repro

Rust
3
star
38

old-website

My personal website
HTML
3
star
39

Challenges

Misc. coding challenges
Python
3
star
40

evmodin-test

Rust
3
star
41

Conference-Badge-Creator

Tool to export Excel file data and batch-print it on conference badge.
Python
3
star
42

fb-exchange-chatbot

Python
3
star
43

truffle-boilerplate

Boilerplate truffle repo for contract dev
JavaScript
3
star
44

transmissions11.github.io

the html behind 2λ.com
HTML
3
star
45

zexe-serialization-comparison

Comparing the new serialization API vs the previous one
Rust
2
star
46

althea-tower-web-repro

Rust
2
star
47

test-versioned-dapp-install

Shell
2
star
48

sqlitemap

A key value store for Sqlite3 in Rust, following HashMap's interface
Rust
2
star
49

petsas-list-analysis

Python
2
star
50

ethers-abigen-monorepo-repro

Rust
2
star
51

plasma-cash-paper

Plasma Cash: Towards Improved Plasma Constructions.
TeX
2
star
52

aquamarine-repro

https://github.com/mersinvald/aquamarine/issues/28
Rust
2
star
53

publications

Various documents published under my name in the public domain
2
star
54

rust-wasm-demo

Go / Node / Python examples for Rust Wasm
Python
1
star
55

optimism-gateway

TypeScript
1
star
56

channel-notes

Personal notes on state channels
1
star
57

rustgo-ffi-wip

Rust
1
star
58

commit-reveal

Example repository of Commit - Reveal voting mechanism using ECVerify.sol
Solidity
1
star
59

pythess_x_btc-meetup

Code used for the PyThess x Bitcoin Meetup, on Solidity and interacting with Ethereum via Web3.py
Python
1
star
60

truffle-compact-ecrecover

Compact signature verification with 2 words. Inspired from https://github.com/HarryR/solcrypto/blob/01a3c5d91053f3b8bffde328146d5f18015ebfed/contracts/ECDSA.sol
1
star