andri lim
fff35ab01d
implement evmc create/create2
2020-02-12 17:53:26 +02:00
andri lim
270854a5aa
simplify 'gasUsed' and 'refundGas'
2020-02-12 17:53:26 +02:00
andri lim
d9991b1e8b
simplify cash
2020-02-12 17:53:26 +02:00
andri lim
109f841a9e
simplify returnData logic
2020-02-12 17:53:26 +02:00
andri lim
22dff9ff88
remove 'startGas' from 'gasMeter'
2020-02-12 17:53:26 +02:00
andri lim
1cd9353faa
simplify computation
2020-02-12 17:53:26 +02:00
andri lim
8564e9532b
change 'rawOutput' to 'output'
2020-02-12 17:53:26 +02:00
andri lim
f850c4a37b
put 'sstoreEvmc' behind 'when evmc_enabled'
2020-02-12 17:53:26 +02:00
kdeme
b959b14109
Update to use waku topic-interest
2020-02-07 08:59:19 +01:00
andri lim
55494f06e5
move 'validateTransaction' from GST into 'processTransaction'
2020-01-24 19:52:55 +07:00
Kim De Mey
a2478baeff
Merge pull request #446 from status-im/waku-queue-fixes
...
Bump vendor/nim-eth for waku/whisper queue fixes
2020-01-23 22:50:12 +01:00
andri lim
95edc54b46
fixes gcsafe overrides and reduce unnecessary evmc conversion
2020-01-23 18:07:44 +02:00
andri lim
18eb255758
convert 'block' into 'if-else' in evmc 'setStorage'
2020-01-23 18:07:44 +02:00
andri lim
9b1f8e2f65
change 'registerAccountForDeletion' to 'execSelfDestruct'
2020-01-23 18:07:44 +02:00
andri lim
d656f7f701
rename 'txContext' to 'setupTxContext'
2020-01-23 18:07:44 +02:00
andri lim
933b2dad78
remove code from EVM Message and load code in 'Computation'
2020-01-23 18:07:44 +02:00
andri lim
577c7ca5aa
simplify 'execComputation'
2020-01-23 18:07:44 +02:00
andri lim
83e9debb62
move contract address creation to 'Computation'
2020-01-23 18:07:44 +02:00
andri lim
ea4f851f80
move create contract incNonce to 'applyMessage'
2020-01-23 18:07:44 +02:00
andri lim
ec8abf40e4
move 'tx.getRecipient' into 'setupComputation'
2020-01-23 18:07:44 +02:00
andri lim
37c282f1b9
fixes evmc 'gasRefund'
2020-01-23 18:07:44 +02:00
andri lim
c459879647
only import evmc files when 'evmc_enabled' defined
2020-01-23 18:07:44 +02:00
andri lim
4aa209113a
integrate evmc 'setStorage'
2020-01-23 18:07:44 +02:00
andri lim
62f96e9bd4
integrate evmc 'emitLog'
2020-01-23 18:07:44 +02:00
andri lim
bf7b4c7273
fixes evmc 'selfDestruct' definition
2020-01-23 18:07:44 +02:00
andri lim
3e384f764d
fixes evmc 'accountExists' definition
2020-01-23 18:07:44 +02:00
andri lim
64f0e59487
evmc_enabled compile time flags
2020-01-23 18:07:44 +02:00
andri lim
295d2c180b
integrate evmc 'selfDestruct' and 'copyCode'
2020-01-23 18:07:44 +02:00
andri lim
8a9d9114e7
integrate evmc 'getCodeHash'
2020-01-23 18:07:44 +02:00
andri lim
5507e80b63
integrate evmc 'getCodeSize'
2020-01-23 18:07:44 +02:00
andri lim
8c53371c49
integrate evmc 'getBalance'
2020-01-23 18:07:44 +02:00
andri lim
fdbc888840
integrate evmc 'getStorage'
2020-01-23 18:07:44 +02:00
andri lim
a4a1148a45
integrate evmc 'accountExists'
2020-01-23 18:07:44 +02:00
andri lim
1813579bc4
integrate evmc 'getBlockHash'
2020-01-23 18:07:44 +02:00
andri lim
319e5d8ae9
integrate evmc 'getTxContext'
2020-01-23 18:07:44 +02:00
andri lim
e25f2bb82f
evmc host implementation
2020-01-23 18:07:44 +02:00
kdeme
4ec126afaf
More cosmetic changes
2020-01-23 15:40:41 +01:00
andri lim
e8ec1706ed
fixes rpc compilation error
2020-01-23 12:39:36 +02:00
Zahary Karadjov
d23a33a80c
Cosmetic improvements
2020-01-23 12:39:36 +02:00
kdeme
ca6890b026
Change Waku RPC methods prefix
2020-01-23 12:39:36 +02:00
kdeme
d56655d278
Move WhisperKeys to KeyStorage
2020-01-23 12:39:36 +02:00
kdeme
776f924e39
Small fixes/improvements
2020-01-23 12:39:36 +02:00
kdeme
56f46357e6
Generate and use random topics in waku simulation
2020-01-23 12:39:36 +02:00
kdeme
ed79c4dfdc
Add quick waku simulation with hardcoded network
2020-01-23 12:39:36 +02:00
kdeme
8c3595ff94
Bump vendor/nim-eth and fix changes
2020-01-23 12:39:36 +02:00
kdeme
6e4b73b562
Fix bloom filter of a new Waku/Whisper filter and update automatically for light node
2020-01-23 12:39:36 +02:00
kdeme
c3aeb15ce5
Introduce WakuMode
2020-01-23 12:39:36 +02:00
kdeme
7b80b313e4
Start implementation of waku node
2020-01-23 12:39:36 +02:00
andri lim
c1ef8632b2
move fork and gasCosts from Computation to vmState
2020-01-20 18:36:58 +02:00
andri lim
bab359cabf
move origin and gasPrice from Message to vmState
2020-01-20 18:36:58 +02:00
andri lim
d300bc352d
fixes balance transfer for CALL and CALLCODE
2020-01-20 18:36:58 +02:00
andri lim
73c60fe694
unifying contract collision detection
2020-01-20 18:36:58 +02:00
andri lim
16a938d3fa
fixes clearStorage bug
2020-01-20 18:36:58 +02:00
andri lim
89d1834d52
consistent evm depth call check
2020-01-20 18:36:58 +02:00
andri lim
009aa35dfb
remove unused eraseReturnData
2020-01-20 18:36:58 +02:00
andri lim
52fffa6e25
fixes long standing bug create2nocash
2020-01-20 18:36:58 +02:00
andri lim
63e886655b
fixes coinbase suicide bugs
2020-01-20 18:36:58 +02:00
andri lim
0b99b76cd1
change 'BaseComputation' to 'Computation'
2020-01-20 18:36:58 +02:00
andri lim
79df931234
simplifies computation.getFork
2020-01-20 18:36:58 +02:00
acolytec3
45cda8bab0
Add support for custom genesis blocks
2020-01-20 06:35:35 -05:00
andri lim
5f24757cd7
use 'withValue' when retrieving account's storage
2020-01-19 19:17:37 +02:00
andri lim
6066028d06
remove duplicate line
2020-01-19 19:17:37 +02:00
andri lim
e4db21272c
fixes rpc/p2p.nim compilation error
2020-01-19 19:17:37 +02:00
andri lim
d30f434f03
get rid of computation child after execution
2020-01-19 19:17:37 +02:00
andri lim
ed62d1e217
[skip ci] more collectTouchAccounts reduction
2020-01-19 19:17:37 +02:00
andri lim
5e6018b20b
[skip ci] collectTouchedAccounts reduction
2020-01-19 19:17:37 +02:00
andri lim
20a138c270
[skip ci] change 'accountsToDelete' to 'touchedAccounts'
2020-01-19 19:17:37 +02:00
andri lim
2472662057
[skip ci] simplify rootHash usage
2020-01-19 19:17:37 +02:00
andri lim
d37e37e5f3
[skip ci] simplify collectTouchedAccounts logic
2020-01-19 19:17:37 +02:00
andri lim
cf0d4481f3
[skip ci] rename 'isExists' to 'exists'
2020-01-19 19:17:37 +02:00
andri lim
8f7597e23b
[skip ci] add evmc CallKind to EVM Message
2020-01-19 19:17:37 +02:00
andri lim
836e087984
[skip ci] change storageAddress to contractAddres
2020-01-19 19:17:37 +02:00
andri lim
40ddbca1ee
[skip ci] simplify EVM message creation
2020-01-19 19:17:37 +02:00
andri lim
727b477fca
[skip ci] add accounts cache test
2020-01-19 19:17:37 +02:00
andri lim
5795bf52e0
[skip ci] implement accounts_cache
2020-01-19 19:17:37 +02:00
andri lim
3c33678949
add comment about evmc and touched accounts
2019-12-20 16:46:03 +02:00
andri lim
7be6a4ea63
gather suicides from child to parent computation
2019-12-20 16:46:03 +02:00
andri lim
9cb98d69ba
accumulate refundGas after child computation done
2019-12-20 16:46:03 +02:00
andri lim
9dbcc7bb69
improve comment in 'processBlock'
2019-12-10 12:34:48 +02:00
andri lim
1ffb992674
multi root state trie implementation
2019-12-10 12:34:48 +02:00
kdeme
9aae2f9463
No more blind except
2019-12-05 13:02:21 +01:00
kdeme
9964a55772
Replace getCurrentException
2019-12-05 13:02:21 +01:00
andri lim
93f6b99087
fixes #424
2019-11-23 20:41:10 +07:00
andri lim
0d743dc468
fixes 'collectTouchedAccounts' for Istanbul
2019-11-19 16:14:36 +07:00
andri lim
28514dbb28
fixes EIP2200 sentry gas comparison
2019-11-18 20:48:30 +07:00
andri lim
11f67f87fd
fixes EIP2200 gas cost and refund
2019-11-18 20:33:10 +07:00
andri lim
d61bb49a40
fixes gas_costs for istanbul
2019-11-14 22:27:24 +07:00
andri lim
97e89b3afe
implement 'getCommittedStorage'
2019-11-14 10:11:35 +00:00
andri lim
c4dcf5da30
reduce compiler warnings
2019-11-13 21:49:39 +07:00
andri lim
61f340ae87
implement EIP2200's SSTORE and gas cost
2019-11-12 15:51:48 +00:00
andri lim
c0c62b94b8
implement EIP-2200 stub
2019-11-12 15:51:48 +00:00
andri lim
b5e8a8d61b
implement 'chainId' opcode
2019-11-12 15:51:48 +00:00
andri lim
1e4f290cc6
implement 'selfBalance' opcode and gas cost
2019-11-12 15:51:48 +00:00
andri lim
4fbc9727d8
revert accidentally changed GasQuadDivisor
2019-11-12 15:51:48 +00:00
andri lim
1937fd700d
implement EIP-2028
2019-11-12 15:51:48 +00:00
andri lim
4cf3931f34
add istanbul block reward
2019-11-12 15:51:48 +00:00
andri lim
078375061b
implement EIP 1884 stub
2019-11-12 15:51:48 +00:00
andri lim
0bb6c73bdb
implement EIP 1344 stub
2019-11-12 15:51:48 +00:00
andri lim
cda3e2811f
implement EIP 1108
2019-11-12 15:51:48 +00:00
andri lim
b3cbf620d6
implement EIP-152
2019-11-12 15:51:48 +00:00
andri lim
3dbf41aac8
adding FkIstanbul to vm_forks gas_costs
2019-11-12 15:51:48 +00:00
Ștefan Talpalaru
5a18227562
add Git revision to NimbusHeader
2019-11-10 18:44:40 +01:00
Ștefan Talpalaru
c1621a518b
bump vendor/nim-metrics
2019-11-10 18:28:55 +01:00
andri lim
dec3c7baee
fixes 32bit problem
2019-10-28 22:21:41 +07:00
Ștefan Talpalaru
70bcce2132
a couple of Nim 1.0.2-related fixes
2019-10-28 22:21:20 +07:00
andri lim
26ee138ea5
fixes GST regression
2019-09-26 12:33:43 +03:00
andri lim
a65ab2763e
fixes generateHeaderFromParentHeader
2019-09-26 12:33:43 +03:00
andri lim
12960c27ce
fixes coinBase suicide
2019-09-26 12:33:43 +03:00
andri lim
e63a43ee9f
fixes getAncestorHash
2019-09-26 12:33:43 +03:00
andri lim
b189e1604f
fixes gasLimitBounds
2019-09-26 12:33:43 +03:00
andri lim
9cba2c9cc0
fix validateGasLimit
2019-09-26 12:33:43 +03:00
andri lim
3ad465d169
implement block validation and friends
2019-09-26 12:33:43 +03:00
andri lim
12ea5247d6
execute transactions
2019-09-26 12:33:43 +03:00
andri lim
45059957d0
completing generateHeaderFromParentHeader implementation
2019-09-04 19:05:21 +02:00
andri lim
a1c21722dd
more flexible calcDifficulty
2019-09-04 19:05:21 +02:00
andri lim
31ed8fcf83
refine transaction validation
2019-08-29 20:44:54 +07:00
andri lim
230fb4b06d
activates test
2019-08-29 19:57:01 +07:00
andri lim
54b56ca722
fixes intrinsicGas
2019-08-29 19:54:52 +07:00
andri lim
7c094a2a3e
initial implementation of transaction test
2019-08-29 19:54:38 +07:00
andri lim
5a92f1faf1
less DRY
2019-08-26 21:39:41 +07:00
andri lim
0bad132387
add diffficulty test
2019-08-26 21:26:57 +07:00
andri lim
60b3ac15d6
simplify 'calldataload' implementation
2019-08-20 16:26:27 +07:00
andri lim
e675182506
fixes 32 bit problem in test_helpers.nim and transaction_tracer.nim
2019-08-19 20:41:27 +03:00
kdeme
1e716a960a
Refactor bootnodes and whispernodes
2019-08-16 08:51:40 +02:00
Yuriy Glukhov
4f0404fa2d
Reuse transaction utils from eth-common
2019-08-13 17:52:41 +03:00
andri lim
6ac750551e
'SAR' opcode uses new 'shr' from stint
2019-08-13 17:51:10 +03:00
andri lim
74d68ea425
fixes #72 , simplify SDIV implementation
2019-08-13 17:48:25 +03:00
Ștefan Talpalaru
1d7e14dc1b
refactor the C and Go wrapper build system
...
- moved "nimbus/api" to "wrappers"
- renamed files
- replaced the build scripts with Makefile targets
- set the rpath relative to the test binary's location so it can look
for libnimbus.so there at runtime
- libnimbus.so.0 required on Linux, apparently
- compiled all the Nimbus code with `--app:lib`, not just one file (this
required skipping a proc in "nimbus/config.nim" because it uses an API
that's unavailable in libraries)
- removed static linking from the Go wrapper. It doesn't make sense at a
global level, when using a shared Nimbus library. To selectively link
static libraries, we should probably be specifying them as *.a. I did
build a static libnimbus.a, as a test, but it insisted on dlopen-ing a
shared version of itself which looked too ugly to continue.
2019-08-02 18:13:47 +02:00
Jacek Sieka
3c2daa8b80
Expose simple whisper api to C / go ( #331 )
...
* dummy c lib
* go stuffz
* Compile secp
* Compile as shared library
* Build with debug info
* Prelude exposed fns with setupForeignThreadGc() (naive)
To avoid GC/thread issues causing segmentation fault when running from Go.
* Add logging, fix lib path and gomaxprocs to make debuggable
* lock to os thread
* Address basic feedback and mark TODOs
* Use normal secp (shared lib flow now)
* api: cleanup, move to api folder
2019-07-31 10:05:22 +02:00
kdeme
f2f2f57040
Add new bootnodes ( #353 )
...
* Add new bootnodes and remove legacy bootnodes
* Clean-up network selection
2019-07-30 11:00:55 +02:00
Ștefan Talpalaru
356a7cad84
show a message on Ctrl+C
2019-07-20 01:40:31 +02:00
kdeme
1a3a29c419
Make EVMError Catchable and only catch CatchableError in the execPrecompiles
2019-07-19 15:18:25 +03:00
kdeme
f6d784c8b0
Rework the getSignature of ecrecover
2019-07-19 15:18:25 +03:00
kdeme
26bc048fea
Fix possible IndexError in ecrecover
2019-07-19 15:18:25 +03:00
Ștefan Talpalaru
409d771a50
metrics: put the HTTP server under -d:insecure
...
- also fix an option parsing bug
- bump vendor/nim-eth and vendor/nim-metrics
2019-07-19 15:17:51 +03:00
Ștefan Talpalaru
0f3d05bf68
metrics: HTTP server disabled by default
...
- metric logging added
- new Nimbus options: --metricsServer, --metricsServerPort:<value>,
--logMetrics, --logMetricsInterval:<value>
2019-07-19 15:17:51 +03:00
Ștefan Talpalaru
2d9f62530b
metrics HTTP server replacing the periodic "stats" logging
...
and example prometheus.yml file to use it as a scraping target
2019-07-19 15:17:51 +03:00
kdeme
973ea96e1a
Add txRoot check to avoid assertions in tracer + don't throw exception
2019-07-15 13:26:33 +02:00
Ștefan Talpalaru
bfeb649892
Merge branch 'devel' of github.com:status-im/nimbus into devel
2019-07-11 14:02:29 +02:00
Ștefan Talpalaru
50095ae22f
macOS fix
2019-07-11 00:38:25 +02:00
Ștefan Talpalaru
06ab21e8c5
Ctrl+C handling for a graceful stop
...
addSignal() doesn't seem to work, which is probably why it was commented
out. I'm using setControlCHook() instead, moved at an earlier point in the
start-up process, but its handler can only change global variables, so I
had to make "nimbus" global.
2019-07-10 23:23:11 +02:00
kdeme
f62816c4f3
Use of BlockNumber to be able to switch between UInt256 and int64
2019-07-10 20:56:05 +02:00
Ștefan Talpalaru
5ee668516a
add nim-metrics
2019-07-10 16:32:44 +02:00
kdeme
f50d3f84f9
Add bounds check on getSuccessorHeader and getAncestorHeader
2019-07-09 15:52:41 +02:00
kdeme
739f36c640
Add skip parameter in getSuccessorHeader + add getAncestorHeader
2019-07-08 17:10:59 +02:00
Jacek Sieka
2763bd0dd5
std_shims -> stew
2019-07-07 12:12:01 +02:00
Ștefan Talpalaru
b71ce17ac3
periodically log internal statistics
...
and bump submodules
2019-06-26 16:32:01 +02:00
kdeme
46a9d8e79d
Forward maxPeers config to EthereumNode minPeers
2019-06-24 19:33:52 +03:00
kdeme
e94c2f7c15
Fix fromJson checks for uint256
2019-06-20 10:50:29 +03:00
kdeme
529fda3e3e
Fix uint256 rpc overload to show correct hex value. #338
2019-06-19 15:49:47 +03:00