ECIP 1062: Submit Block RPC Source

AuthorZachary Belford
Discussions-ToCommunity Discord
StatusDraft
TypeStandards Track
CategoryInterface
Created2019-06-26

Abstract

Add an RPC method to submit a new block, instead of having to use submitWork.

Motivation

I would like to be able to submitWork, but have the address used be one other than the etherbase of the node the work is being submitted by.

Specification

{
  "openrpc": "1.1.8",
  "info": {
    "version": "1.0.0",
    "title": "Example submitBlock"
  },
  "methods": [
    {
      "name": "eth_submitBlock",
      "summary": "Submit a new block proposal",
      "description": "Given a new block, it will validate the block, and broadcast it to connected peers.",
      "params": [
        { "$ref": "https://raw.githubusercontent.com/etclabscore/ethereum-json-rpc-specification/master/openrpc.json#/components/contentDescriptors/Block" }
      ],
      "result": {
        "name": "isBlockAccepted",
        "schema": {
          "type": "boolean"
        }
      }
    }
  ]
}

Rationale

This removes the dependency for miners to have a geth node with accounts that need to be unlocked. Miners would be able to better isolate their private keys from the world, yeilding better security potential.

Implementation

I think it’s pretty straight forward. Looking at the above specification, we would be adding an eth_submitBlock RPC method. It’s similar to eth_submitWork, except with fewer steps before broadcasting the block.