-
Notifications
You must be signed in to change notification settings - Fork 20.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various differences returned by 'geth' vs. 'parity' RPC #3339
Comments
Thank you for the detailed report. We'll look in to this and report what will be fixed. |
I tried to make it clear. If something is confusing, please let me know. |
eth_protocolVersion differs on geth and parity also.. Geth does not follow the spec in this instance. It should return a string instead of a hex encoded quantity. Low priority bug though. |
As per comment in https://github.com/ethcore/parity/issues/3601, the only thing we don't agree on after parity is fixed are the additional receipt fields |
Sorry-I'm new to GitHub. Must I do anything further, or am I basically done? Sorry for not knowing. |
We'll handle it from here. Thanks for the investigation work! |
@fjl Is this fixed with 1.6? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Don't close this, fix it. |
We just checked these differences in our issue triage call and they seem resolved on the geth side. |
I ran RPC requests against both 'geth 1.5.2-stable' and 'parity 1.4.4-beta' for about 1,000 randomly selected blocks. I found the following differences in the returned JSON data between the two:
1) 'geth' returns
nonce
field frometh_getBlockByNumber(x,true)
, Parity does notAccording to the documentation (https://github.com/ethereum/wiki/blob/master/JSON-RPC.md#eth_getblockbyhash),
nonce
should be returned by getBlockNumber.2) 'geth' returns the fields
from
,to
, androot
frometh_getTransactionReceipt(addr)
, Parity does notThis time, according to the documentation (https://github.com/ethereum/wiki/blob/master/JSON-RPC.md#eth_gettransactionreceipt), 'geth' is wrong. These fields are not
part of the receipt.
2) Both clients return 'r', 's', and 'v' fields in the transaction from eth_getNumberByBlock(x,true) call
According to the documentation (https://github.com/ethereum/wiki/blob/master/JSON-RPC.md#eth_gettransactionbyhash), these fields are not part of the transaction data and are therefore extraneous. This may be a bug in the documentation. I'm not sure. Please advise.
4) 'geth' removes leading zeros from a transaction's
r
ands
fields, Parity does not.Parity inserts zeros after the '0x' to pad the length of the value for these fields to 32 bytes. Since these fields are not documented, I don't know if they should be considered
QUANTITY
orDATA
. IfDATA
, then Parity is right, ifQUANTITY
then 'geth' is right. I suspect Parity is right.6) 'geth' and Parity disagree on the value of the transaction's
v
field.For every transaction returned by
eth_getBlockByNumber
, 'geth' returns values of either0x1b
or0x1c
. Parity returns either0
or1
respectively. Since it's not documented, I don't know the correct value, but they do differ.7) Parity numbers the
logIndex
field of the receiptslogs
per transaction. 'geth' numbers the logs per block. The documents say it should be per block, but this may change. Both Parity and 'geth' start their numbering from '0' which may conflict withnull
value in C++ code.This is either a bug in Parity (https://github.com/ethcore/parity/issues/3537) or the documentation. There is an issue reported in
geth
discussing this as a bug in the docs (#2028).The text was updated successfully, but these errors were encountered: