Skip to content

Commit

Permalink
Merge 9cf1224 into a182311
Browse files Browse the repository at this point in the history
  • Loading branch information
atoulme committed Jul 19, 2022
2 parents a182311 + 9cf1224 commit d4e14e6
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions EIPS/eip-4812.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
eip: 4812
title: Exodus
description: Exodus facilitates the creation of blockchain networks with accounts and transactions.
author: Antoine Toulmé (@atoulme), Chaals Nevile (@chaals)
discussions-to: <https://entethalliance.org/contact>, For EEA members only (requires a patent commitment): <https://github.com/entethalliance/testing-wg/issues>
status: Draft
type: Standards Track
category: ERC
created: 2021-11-09
---

## Abstract
This document specifies how to generate a blockchain environment from a file.

The environment is created based on a chain configuration which can include initial balances and transactions to be processed.

## Motivation
During testing of distributed systems, we need to load blockchain data and perform some operations.

There is currently no standard in place to codify how to ingest blockchain data. The current solutions involve directly ingesting RLP-encoded data, and that is effectively impossible to read directly which makes it hard to reason about tests.

We aim to facilitate testing and formulation of tests through an explicit format developers can use to represent contracts and transactions in detail, as well as the expected outcomes.

## Specification
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119

## Rationale
The EEA is aiming to standardize Enterprise Ethereum clients, including facets like cross-chain activities and secure deployment of smart contracts. The Testing and Certification Working Group is working in earnest towards creating a test suite that allows developers to certify their implementation is matching the specification of the Enterprise Ethereum standard.

To do so, we require a way to generate workloads and situations on an enterprise blockchain that reconstitutes specific tests.

We have looked at existing solutions:
* Some clients are able to ingest RLP-encoded blockchain data for testing purposes, but that creates a burden on developers to maintain such data and is not directly viewable, making it difficult to maintain and discuss the data itself.
* Some clients can ingest specific payloads for components of their architecture, but we are looking to test consensus use cases that require all data such as transactions, accounts and balances.

## Backwards Compatibility
There is no backwards compatibility issues as this is a net-new process that will run separately from clients and generate blockchain state for them.

## Security Considerations

Some configurations **will** show security problems, to enable testing for them. This is a critical part of the functionality.

## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/

0 comments on commit d4e14e6

Please sign in to comment.