Skip to content

FFI Iterator #1009

@alarso16

Description

@alarso16

Iterating across the FFI boundary is extremely slow, so it was initially determined to not be included. However, it may be necessary for some coreth API functionality (as well as being generally helpful for testing). This could still be implemented relatively simply by amortizing the FFI calls to batch the key-value pairs to relatively few calls. This will still require some clever memory management to avoid copying too much data (idea: allocate a pool in Go?) and to enable 2D arrays in C to be translated into slices of slices in Go. Additionally, freeing the iterator may be difficult if using a literal Rust iterator.

At minimum, this must (in ethhash):

  • Provide an iterator for accounts (values associated with keys of length 32)
  • Given an account hash (length 32), iterate through all storage values associated with this account (all values of length 64 with keys prefixed with the account hash)

Metadata

Metadata

Assignees

Labels

goPull requests that update go coderustPull requests that update rust codetesting

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions