autonity / autonity

Autonity Go Client (AGC)
GNU Lesser General Public License v3.0
63 stars 62 forks source link

Ethereum RPC Protocol Compatibility Broken #468

Closed shapeshed closed 4 years ago

shapeshed commented 4 years ago

In trying to plug the Epirus Block Explorer in we encountered an issue with the chain syncing.

The Epirus team have debugged this and reported that the implementation in v0.3.2 is not compliant with the Ethereum Specification.

The size parameter on eth_getBlockByNumber is coming back as a long rather than hex.

Please could you confirm whether this is the case. If so I see this as a bug. Autonity should be compliant with the Ethereum RPC API so that we can interoperate with other tools and partners in the Ethereum ecosystem.

shapeshed commented 4 years ago

From web3labs

We made a change in web3j to mitigate this problem for now. Even though it adds smell to the codebase of web3j as we were relying on block size coming back as a hex. We will have a patch soon and will update your instance to see how this hot fix behaves. However, I will keep an open eye for the progress of this issue in Autonity as I would revert changes in web3j in case this gets mitigated on your side. Will come back once I updated everything.

JekaMas commented 4 years ago

It's good to know that the capability is important for us and Eth tooling is used. Will fix the issue at the beginning of the week!

yazzaoui commented 4 years ago

Thanks for reporting the issue, indeed the size field wasn't correctly marshalled in Autonity 0.3.2. The issue was coming from the latest merge from upstream go-ethereum 1.9.1 and was later on fixed ( see : https://github.com/ethereum/go-ethereum/commit/e4232c153ba93a71a3e39a74dbe5f1d7c1ad46ac )

Autonity 0.4.0 will be released with the fix at the end of the month.