Commit Graph

7218 Commits

Author SHA1 Message Date
Jeffrey Wilcke 168d0e9e45 Merge pull request #1996 from obscuren/whisper-spam-fix
whisper: fixed broadcast race
2015-11-25 13:19:45 +01:00
Jeffrey Wilcke a0bf2ea7e7 accounts/abi: added output parsing & added call mechanism
Added calling mechanism and return value parsing
2015-11-25 12:23:29 +01:00
Jeffrey Wilcke 5f0a4416db whisper: fixed broadcast race
Whisper's expire and broadcast loops happen in two separate go routines.
Whenever an envelope is being expired it's removed from the set of
envelopes and it looses all information about the envelope, including
the "known hash". After the envelope has been removed it can be
re-accepted by a broadcasting peer putting back the envelope in the set
of envelopes. Since the envelope broadcast loop is separate of the
expire loop expired messages may be broadcast to other peer, resulting
in messages **never** being dropped.

This PR includes an expire check before adding new messages to the set
of envelopes.
2015-11-25 12:10:47 +01:00
Péter Szilágyi 83a22b457c Makefile: support library build modes 2015-11-24 19:49:08 +02:00
Péter Szilágyi 2c42e54519 Makefile: add support for iOS cross compilation 2015-11-24 17:24:43 +02:00
Jeffrey Wilcke b0fb48c389 Merge pull request #1988 from bas-vk/issue1971
miner: bugfix where blockhash in receipts and logs is left empty
2015-11-24 10:55:07 +01:00
Péter Szilágyi f27e826b14 jrse: fix #1082, fail if setTimeout/setInterval lack callback 2015-11-23 13:03:31 +02:00
Gustav-Simonsson ae9e9efa31 Merge pull request #1991 from Gustav-Simonsson/common_tests
Update common test files
2015-11-23 10:26:21 +01:00
Jeffrey Wilcke 6bb29aebee Merge pull request #1666 from obscuren/create-transaction
rpc/api, xeth: added signTransaction method
2015-11-20 21:36:56 +01:00
Jeffrey Wilcke 314c031ff2 Merge pull request #1995 from karalabe/parametrize-crosscompile-go
Makefile: individual platforms, configurable Go runtime
2015-11-20 21:10:21 +01:00
Péter Szilágyi fea819f74f Makefile: individual platforms, configurable Go runtime 2015-11-20 16:06:35 +02:00
Gustav Simonsson 220b0bf6e5 Update common test files 2015-11-20 12:53:36 +01:00
Jeffrey Wilcke f16fab91c8 Merge pull request #1953 from karalabe/switch-to-fast-peers
eth/downloader: fetch data proportionally to peer capacity
2015-11-19 18:48:53 +01:00
Bas van Kervel 98cbe1356e miner: bugfix were blockhash in receipts and logs is left empty 2015-11-19 16:02:49 +01:00
Péter Szilágyi b6f5523bdc eth/downloader: fetch data proportionally to peer capacity 2015-11-19 17:01:39 +02:00
Jeffrey Wilcke 4c2933ad82 Merge pull request #1993 from obscuren/remove-legalese
cmd/geth, cmd/utils: removed legalese
2015-11-19 15:29:49 +01:00
Jeffrey Wilcke 7399b138a8 Merge pull request #1923 from karalabe/cleanup-receipt-data-access
core, eth, miner, xeth: clean up tx/receipt db accessors
2015-11-19 15:28:15 +01:00
Jeffrey Wilcke 65bb07fb4e Merge pull request #1980 from fjl/downloader-deliver-hang
eth/downloader: don't hang for spurious deliveries
2015-11-19 15:19:21 +01:00
Péter Szilágyi e86e0ecdc8 core, eth, miner, xeth: clean up tx/receipt db accessors 2015-11-19 16:03:32 +02:00
Felix Lange dd09af27af eth/downloader: run tests in parallel 2015-11-19 14:18:35 +01:00
Felix Lange b7b62d4b3c eth/downloader: also drain stateCh, receiptCh in eth/61 mode
State and receipt deliveries from a previous eth/62+ sync can hang if
the downloader has moved on to syncing with eth/61. Fix this by also
draining the eth/63 channels while waiting for eth/61 data.

A nicer solution would be to take care of the channels in a central
place, but that would involve a major rewrite.
2015-11-19 14:18:35 +01:00
Felix Lange db52a6a0ff eth: remove workaround for asynchronous processing in the downloader 2015-11-19 14:18:34 +01:00
Felix Lange 900da3d800 eth/downloader: don't hang for spurious deliveries
Unexpected deliveries could block indefinitely if they arrived at the
right time. The fix is to ensure that the cancellation channel is
always closed when the sync ends, unblocking any deliveries. Also remove
the atomic check for whether a sync is currently running because it
doesn't help and can be misleading.

Cancelling always seems to break the tests though. The downloader
spawned d.process whenever new data arrived, making it somewhat hard to
track when block processing was actually done. Fix this by running
d.process in a dedicated goroutine that is tied to the lifecycle of the
sync. d.process gets notified of new work by the queue instead of being
invoked all the time. This removes a ton of weird workaround code,
including a hairy use of atomic CAS.
2015-11-19 14:18:34 +01:00
Jeffrey Wilcke 1c63d08ed1 cmd/geth, cmd/utils: removed legalese
Removed the legalese confirmation dialog. This closes #1992
2015-11-19 12:03:33 +01:00
Jeffrey Wilcke ae37a8013d Merge pull request #1917 from obscuren/validator-interface
core, eth, rpc: split out block validator and state processor
2015-11-19 10:57:00 +01:00
Jeffrey Wilcke 23f42d9463 Merge pull request #1964 from obscuren/evm-runtime
core/vm/runtime: added simple execution runtime
2015-11-18 17:39:27 +01:00
Jeffrey Wilcke 1372b991c3 core/vm/runtime: added simple execution runtime
The runtime environment can be used for simple basic execution of
contract code without the requirement of setting up a full stack and
operates fully in memory.
2015-11-18 16:50:20 +01:00
Jeffrey Wilcke a1d9ef48c5 core, eth, rpc: split out block validator and state processor
This removes the burden on a single object to take care of all
validation and state processing. Now instead the validation is done by
the `core.BlockValidator` (`types.Validator`) that takes care of both
header and uncle validation through the `ValidateBlock` method and state
validation through the `ValidateState` method. The state processing is
done by a new object `core.StateProcessor` (`types.Processor`) and
accepts a new state as input and uses that to process the given block's
transactions (and uncles for rewords) to calculate the state root for
the next block (P_n + 1).
2015-11-18 14:24:42 +01:00
Felix Lange 4a938406dc Merge pull request #1990 from karalabe/fix-whisper-autocomplete
rpc/api: fix #1986, newIdentity autocomplete
2015-11-18 12:32:39 +01:00
Péter Szilágyi 53f28e71dc rpc/api: fix #1986, newIdentity autocomplete 2015-11-18 13:03:20 +02:00
Jeffrey Wilcke 10475f444c Merge pull request #1984 from fjl/secp256k1-recover-id-verify
crypto/secp256k1: verify recovery ID before calling libsecp256k1
2015-11-17 19:39:42 +01:00
Jeffrey Wilcke 6ea05f5a54 rpc/api, xeth: added signTransaction method
SignTransaction creates a transaction but does submit it to the
network. SignTransaction returns a structure which includes the
transaction object details as well as the RLP encoded transaction that
could possibly be submitted by the SendRawTransaction method.
2015-11-17 17:51:05 +01:00
Felix Lange e344e1d490 crypto/secp256k1: drop pkgsrc paths from CFLAGS
They cause compiler warnings for people who don't have these
directories. People with pkgsrc can add the directory through CGO_CFLAGS
instead.
2015-11-17 09:53:10 +01:00
Felix Lange 5159f8f649 crypto/secp256k1: raise internal errors as recoverable Go panic 2015-11-17 09:53:10 +01:00
Felix Lange 1b29aed128 crypto/secp256k1: verify recovery ID before calling libsecp256k1
The C library treats the recovery ID as trusted input and crashes
the process for invalid values, so it needs to be verified before
calling into C. This will inhibit the crash in #1983.

Also remove VerifySignature because we don't use it.
2015-11-17 09:51:59 +01:00
Jeffrey Wilcke 9422eec554 Merge pull request #1976 from karalabe/enable-light-kdf
cmd/geth, cmd/utils: surface the light KDF flag to the CLI
2015-11-11 12:45:30 +01:00
Péter Szilágyi 9aa77a3769 cmd/geth, cmd/utils: surface the light KDF flag to the CLI 2015-11-10 15:47:19 +02:00
Jeffrey Wilcke da6696862e Merge pull request #1974 from karalabe/fix-rpc-regression
rpc/api: fix #1972 api regression (nil eth panic) in attach
2015-11-06 13:10:28 +01:00
Péter Szilágyi 6e5349880e rpc/api: fix #1972 api regression (nil eth panic) in attach 2015-11-06 11:47:57 +02:00
Jeffrey Wilcke 6d09468cab Merge pull request #1967 from karalabe/fix-filter-test-datarace
event/filter: fix data race in the test
2015-11-05 20:31:11 +01:00
Jeffrey Wilcke 2334ee97d0 Merge pull request #1963 from karalabe/fix-database-regression
eth: fix error casting regression during database open
2015-11-05 20:27:11 +01:00
Péter Szilágyi 5d89bbdda1 eth: fix error casting regression during database open 2015-11-05 16:59:16 +02:00
Péter Szilágyi 8e2bf42c46 event/filter: fix data race in the test 2015-11-05 16:55:53 +02:00
Felix Lange 76390ef892 Merge pull request #1966 from karalabe/fix-recover-noparam-panic
cmd/geth: fix recover command crash if no param is supplied
2015-11-05 13:15:23 +01:00
Felix Lange 636f67f232 Merge pull request #1969 from karalabe/fix-whisper-tests-datarace
whisper: fix datarace in expiration test
2015-11-05 13:03:36 +01:00
Felix Lange eb11c0e597 Merge pull request #1965 from karalabe/fix-natto-test
jsre: fix #1876, sleep too short on a slow test server
2015-11-05 13:03:06 +01:00
Felix Lange ca4f6d0fdd Merge pull request #1968 from karalabe/fix-json-tests-datarace
tests: fix data race in bad-block-report disabling during tests
2015-11-05 12:59:07 +01:00
Péter Szilágyi 60e0abb595 whisper: fix datarace in expiration test 2015-11-05 13:36:25 +02:00
Péter Szilágyi 9dc5de51a2 tests: fix data race in bad-block-report disabling during tests 2015-11-05 13:29:50 +02:00
Péter Szilágyi 90655736ed cmd/geth: fix recover command crash if no param is supplied 2015-11-05 11:53:50 +02:00