-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Description
(Raised and discussed briefly in ethereum/pm#5)
Motivation
The eth_compile* RPC calls are beyond the responsibilities of the eth API, which can be considered to encompass the core functionality of an Ethereum node. As Ethereum deals in low-level EVM bytecode, the API surface should also not expose anything relating to higher-level programming languages. Managing, maintaining, and updating compiler versions, flags, and produced ABIs adds additional complexity to implementation.
Furthermore, having only calls for Solidity, Serpent, and LLL serves to unnaturally limit the usage of other EVM-based languages by giving those 3 an elevated status, potentially stifling development and adoption of new solutions.
Lastly, the eth_compile* family of methods is not sufficient for certain use-cases in DApp development, as they don't allow pinning to specific compiler versions .
Action
Mark eth_compileSolidity, eth_compileSerpent, and eth_compileLLL methods as deprecated in the docs, and suggest usage of proper development tools instead.
Compiler functionality may still be provided, but within node-specific RPC namespaces.