Prototype to predict Ethereum transactions' access lists

predict_al

Prototype to predict Ethereum transactions' access lists. The project comes from CDAP cohort-one.

The current design is to use a simplified EVM to execute transaction payloads, and record the access list at the same time. Most of the source code is based on go-ethereum.

The development is still ongoing. It can only run against very simple bytecodes currently.

Building

The source code is developed and tested with Go SDK 1.17.1.

$ git clone https://github.com/alexchenzl/predict_al.git

$ cd predict_al

$ go build ./cmd/predict

Running

$ ./predict --help 

$ ./predict --code 60f15400 run
Similar Resources

Signer manages Web3 transactions

Signer Website: https://signer-tech41.com Signer is a distributed, highly available, and data center aware solution to connect and configure applicati

Oct 29, 2021

A blockchains platform with high throughput, and blazing fast transactions

A blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high throughput, and blazing fast transactions. Installation Avalanche is

Oct 31, 2021

Flashbots utilities in Go: Blocks & Transactions API, and tools to spot bundle and block irregularities

Utilities for Flashbots Go API client for the mev-blocks API for information about Flashbots blocks and transactions Detect bundle errors: (a) out of

Nov 26, 2022

Slides about IOTA transactions, validation and consensus

Slides about IOTA transactions, validation and consensus

IOTA Donations: NJNCOKJOE9SMCYTSBZVTGWMAABPBYELV9SBPUYLKWSTCXQQZDUWHTFLTVKKRBBWSZKPDMNQALJMJX9CG9KAMOJXQVW IOTA Transactions, Confirmation and Consens

Oct 14, 2022

Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high

Jan 18, 2022

Signature-server - stores transaction blobs and uses predefined secret key to sign and verify those transactions

Signature Server Signature server stores transaction blobs and uses predefined s

Feb 14, 2022

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.

Dec 31, 2022

Streaming Fast on Ethereum

Streaming Fast on Ethereum

Stream Ethereum data like there's no tomorrow

Dec 15, 2022
Comments
  • My desired use case

    My desired use case

    Here's what I'd like to be able to do with your tool.

    • provide it with access to a JSON-RPC server where it can fetch the ethereum state "on demand" as it is needed.
      • $ ./predict --web3 http://localhost:8545 ...`
    • execution modes:
      • re-execute a transaction from history referenced by it's hash
        • $ ./predict old-tx 0x<tx-hash>
      • execute a new "transaction" with manually specified fields for from/to/value/data
        • $ ./predict new-tx --from ... --to ... --value ... --data ...
      • raw execute some code
        • $ ./predict execute --code --from ... --to ... --value ... --data ...
    • see detailed information on how the predictive algorithm worked
      • the full access list (what was accessed)
      • how many steps did the algorithm take (how many batches of state needed to be fetch).
        • the actual code that was executed probably represented as a sequence of program counters and maybe the actual opcodes that were executed in what order.
        • the actual state and accounts that were identified as being needed (including which ones we already had, and which ones needed to be fetchd)
        • maybe even fancier meta data about how each piece of state was determined to be needed.
    $ ./predict ...
    ROUND 0:
        opcodes: PUSH32 ... SLOAD ...
        new state access:
            ACCOUNT: ....
            STORAGE: ...
    ROUND 1:
        ...
    SUMMARY:
        rounds: 5
        state items: 100
        retrieval batches: 3, 22, 50, 25
    

    One goal here is to be able to run this continuously against transactions in mainnet blocks to examine real world transaction access patterns and see how well the tool performs against real world transactions.

A simple program able to listen to the pending transactions of the Ethereum mempool. Written in Go.

eth-mempool-listener-go A simple program able to listen to the pending transactions of the Ethereum mempool. How does it work ? It creates a set of cl

Dec 26, 2022
Jan 7, 2023
LEO (Low Ethereum Orbit) is an Ethereum Portal Network client.

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 f

Apr 19, 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

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

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

Jan 4, 2022
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

May 1, 2022
DERO: Secure, Anonymous Blockchain with Smart Contracts. Subscribe to Dero announcements by sending mail to [email protected] with subject: subscribe announcements
DERO: Secure, Anonymous Blockchain with Smart Contracts.  Subscribe to Dero announcements by sending mail to lists@dero.io with subject: subscribe announcements

Welcome to the Dero Project DERO News Forum Wiki Explorer Source Twitter Discord Github Stats WebWallet Medium Table of Contents ABOUT DERO PROJECT DE

Dec 7, 2022
A CDN prototype written in Go

gimme A CDN prototype written in Go Run Minio object storage docker run \ -p 9000:9000 \ -p 9001:9001 \ minio/minio server /data --console-addre

Nov 30, 2022
Dec 27, 2022
An easy tool to apply transactions to the current EVM state. Optimized for MEV.

sibyl A more embedded version of fxfactorial/run-evm-code. This tool makes it easy to apply transactions to the current EVM state. Call it a transacti

Dec 25, 2022