additional flags we use:
- [x] HIVE_NETWORK_ID network ID number to use for the eth protocol
- [x] HIVE_LOGLEVEL client loglevel (0-5)
- [x] HIVE_GRAPHQL_ENABLED enables graphql on port 8545
hive always set 'HIVE_FORK_DAO_VOTE' to '1'.
set 'daoForkSupport' to 'true' if only 'HIVE_FORK_DAO_BLOCK'
is set by hive, not depends only on 'HIVE_FORK_DAO_VOTE'.
This is because 'nimbus-eth1' internal is different compared to 'geth'.
after EIP2718/EIP2930, we have additional fields:
type AccessTuple {
address: Address!
storageKeys : [Bytes32!]
}
type Transaction {
r: BigInt!
s: BigInt!
v: BigInt!
# Envelope transaction support
type: Int
accessList: [AccessTuple!]
}
close#606
now we have hive simulators written in nim:
- ethereum/consensus
- ethereum/graphql
Using these simulators, we can debug test cases without have to run
hive or docker.
when a skipped test case not in the skip list
but skipped using `testStatusIMPL`, the generated
markdown file list it as failed.
now that bug is fixed.
now test_blockchain_json is using block validation code
from p2p/executor.nim instead of using it's own
block validation code.
this will reduce maintenance cost and fixes#592.
instead of using it's own blockNumber to Fork calculation,
we switch to ChainConfig to Fork to ensure smooth transition
when using common block validator.
this changes is required due to recent #654.
custom genesis and chain config parser are fixed
and the genesis fields are grouped into "genesis"
field, similar with chain config fields,
they are grouped in "config" field.
instead of using stdlib/json, now we switch to json_serialization
the result is much tidier code and more robust when parsing
optional fields.
fixes#635
enhancements:
- scalar `Float` now have proper validation
- seqs are not copied anymore in some places, but using system.move
bugfixes:
- `removeWhitespaces` in test_common no longer eat white spaces
from quoted string.
- `skipWhitespace` in lexer.nim now preserve \r\n instead of replace it with \n
new features:
- add custom instrument infrastructure
- add Query Complexity instrumen
trying Jacek suggestion in #591, I added nat setting to
nimbus-eth1 hive shell script. visible difference after adding
this flag is the nat library not complaining about
"the gateway does not support nat-pmp" anymore.
but the slow startup time described in #591 is yet to be measured
again, although I already see improvement when executing
ethereum/consensus category in hive.
- enhancements:
- response stream reform:
- allow for more response stream implementation easily
- features:
- add NodeRespStream:
- return AST produced by execution engine instead of serialize
it into json or something else
- add store flag to parseSchema and parseQuery family:
- with this additional flag, both query and schema can be marked
with stored flag
- purge also become selective when purging queries
- dog fooding the introspection schema loader using this flag
bugfixes:
- next fields will continue execution if there is error:
- if one field failed, it will not terminate subsequent fields
execution, but errors are kept.
- propagate inner field error to it's parent
- Since Non-Null type fields cannot be null, field errors are propagated to be
handled by the parent field. If the parent field may be null then it resolves
to null, otherwise if it is a Non-Null type, the field error is further
propagated to it’s parent field.
- If a List type wraps a Non-Null type, and one of the elements of that list
resolves to null, then the entire list must resolve to null. If the List type
is also wrapped in a Non-Null, the field error continues to propagate upwards.
- If all fields from the root of the request to the source of the field error
return Non-Null types, then the "data" entry in the response should be null.
although this is not part of EIP 1767
but the hive test cases derived from besu
test cases contains this.
we add this now to pass more test hive.graphql cases