Skip to content

Commit

Permalink
feat: eth: remove support for ETH tracing APIs
Browse files Browse the repository at this point in the history
Unfortunately, these APIs turned out to be very difficult to correctly
support given all the differences between Filecoin and Ethereum. The
fact of the matter is that Filecoin is not Ethereum. We strive for
Ethereum compatibility from the perspective of _builders_, but that
doesn't mean that the Filecoin chain can be accurately indexed as if it
were an Ethereum chain.

Issues with the Eth-JSON RPC API include:

1. Mapping contract creation semantics from Filecoin to Ethereum
   requires mapping multiple calls into a single "CREATE" operation.
2. Address translation from Filecoin Actor IDs to Ethereum addresses is
   error prone, especially in the face of reverts.
3. Representing native calls in an EVM friendly way is non-trivial.

That's not to say that all this is impossible to fix. However:

1. This code would require significant testing before we'd feel
   comfortable recommending that it be used for indexing.
2. Any indexers built on this code would likely be sub-par.
3. There's no guarantee that we won't make future changes that are
   fundamentally incompatible with Ethereum-style tracing.
  • Loading branch information
Stebalien committed Jan 26, 2024
1 parent 124d00d commit b2641e6
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions node/impl/full/eth_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,7 @@ func encodeFilecoinParamsAsABI(method abi.MethodNum, codec uint64, params []byte
return append(buf, encodeAsABIHelper(uint64(method), codec, params)...)
}

//nolint:deadcode
func encodeFilecoinReturnAsABI(exitCode exitcode.ExitCode, codec uint64, data []byte) []byte {
return encodeAsABIHelper(uint64(exitCode), codec, data)
}
Expand Down

0 comments on commit b2641e6

Please sign in to comment.