Commit Graph
100 Commits
Author SHA1 Message Date
zelig bed80133e0 automatic DAG pregeneration for smooth epoch transitions
- backend: AutoDAG bool flag passed from cli/eth.Config to ethereum, autoDAG loop started if true
- backend: autoDAG loop start/stop, remove previous DAG
- cli: AutoDAG bool flag, off by default, but automatically ON if mining
- admin jsre: add startAutoDAG stopAutoDAG and makeDAG in miner section
- switch on/off DAG autogeneration when miner started/stopped on console
2015-05-21 15:53:42 +01:00
zelig e1d1417729 rpc: NewNotAvailableError instead of NewNotImplementedError if no solc 2015-05-20 05:29:28 +01:00
zelig 00f59f5014 fix eth.sign. now implemented in admin jsre until web3.js has it . 2015-05-20 04:38:20 +01:00
zelig b0ae84aa0d multiple contract source for solidity compiler: returns contract array if multiple contracts. fixes #1023 2015-05-20 04:11:48 +01:00
zelig ea893aca8f update web3.js to 0.4.2 2015-05-20 02:58:49 +01:00
zelig d92172f3d4 add usage doc to wallet import 2015-05-20 02:47:13 +01:00
zelig 4201a18117 remove solc flair 2015-05-20 02:47:13 +01:00
zelig 22b694ee1e solc now in ethereum, fixes solc path setting; setSolc() didnt work 2015-05-20 02:47:13 +01:00
zelig f9abcee0f9 fix solc tests unskip 2015-05-20 02:47:13 +01:00
zelig 03bf902b92 compiler, cli/js: fix solidity compiler tests failing when a different version of solc installed 2015-05-12 12:36:54 +02:00
zelig 009b221692 solidity compiler and contract metadocs integration
* common/compiler: solidity compiler + tests
* rpc: eth_compilers, eth_compileSolidity + tests
* fix natspec test using keystore API, notice exp dynamically changes addr, cleanup
* resolver implements registrars and needs to create reg contract (temp)
* xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath)
* ethereumApi: implement compiler related RPC calls using XEth - json struct tests
* admin: make use of XEth.SetSolc to allow runtime setting of compiler paths
* cli: command line flags solc to set custom solc bin path
* js admin api with new features debug and contractInfo modules
* wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
2015-05-07 12:58:21 +02:00
zelig c5e9a0a71c cli: correct bootnodes flag usage help line 2015-04-24 12:46:53 +01:00
zelig 6b1b5a4a2a cli/js console: if corsDomain is not given to startRpc, we fall back to value set on command line with -corsDomain 2015-04-24 12:45:11 +01:00
zelig 1b7c017076 cli: fatal error if no etherbase for mining 2015-04-24 12:45:11 +01:00
zelig be843959cb backend: start miner in its go routine (no wait to generate DAG) 2015-04-24 12:45:11 +01:00
zelig 6512b23b98 cli: fatal error if rpc could not be started 2015-04-24 12:45:11 +01:00
zelig 7b2f25b578 cli: clean up flag descriptions, usage docs, account list uses primary and indexes, add help line to account subcnd usage 2015-04-24 12:45:11 +01:00
zelig 22450c069b js console: add cors domain optional argument to startRpc 2015-04-24 12:45:11 +01:00
zelig a3fb41981e cmd/admin: rename debug.block to debug.processBlock; move backtrace under debug 2015-04-24 12:45:11 +01:00
zelig 093a9106b0 contract addresses include hex prefix
- simplify resolver and tests
- added missing test for KeyToUrl
- fix notice error message and its test with !%x(MISSING)
- natspec test: insertTx modified - does not prepend 0x to contract address
- disable networking in e2e test
2015-04-19 21:09:30 +01:00
zelig 71c974f3eb fix end to end test import cycle 2015-04-19 20:57:50 +01:00
zelig ac0e5e8b6d resolver tests
- add resolver tests and fix resolver to pass
- statereg constructor fixed
- comments added to natspec plus docserver integration for natspec userdoc fetching
2015-04-19 20:57:49 +01:00
zelig 3a540425a3 reorg:
- statereg methods move to natspec/resolver/docserver
- fix failing test on invalid js input
2015-04-19 20:57:48 +01:00
zelig 5b0ea1044a add docserver using net/http Transport/Roundtrip 2015-04-19 20:57:48 +01:00
zelig 97a602864a add common/resolver skeleton 2015-04-19 20:57:48 +01:00
zelig 45676382b6 natspec integrated to console frontend confirmTransaction 2015-04-19 20:57:48 +01:00
zelig d0b3536593 new natspec
- constructor takes abidoc, userdoc
- json parsing of userdoc
- method found by abi data
- notice found from method
2015-04-19 20:57:48 +01:00
zelig 3d57e377a4 blockpool stability fixes:
- follow up locks and fix them
- chainManager: call SetQueued for parentErr future blocks, uncomment TD checks, unskip test
- make ErrIncorrectTD non-fatal to be forgiving to genuine mistaken nodes (temp) but demote them to guard against stuck best peers.
- add purging to bounded nodeCache (config nodeCacheSize)
- use nodeCache when creating blockpool entries and let non-best peers add blocks (performance boost)
- minor error in addError
- reduce idleBestPeerTimeout to 1 minute
- correct status counts and unskip status passing status test
- glogified logging
2015-04-13 13:13:55 +01:00
zelig 406feee570 bugfixes for headsection deadlocks
- switchC initialised as closed
- move select in setChainInfoFromBlock out of peer lock
2015-04-11 04:58:53 +01:00
zelig da7332a731 td update from node
- reorg and simplify AddBlock
- introduce nodeCache
- TestPeerPromotionByTdOnBlock unskipped and passes
- move switchC/idleC channel creation around: solves deadlock (now respects the contract with section process: either can activate or complete at any one time)
2015-04-10 16:36:40 +01:00
zelig be25396340 separate lock for blacklist 2015-04-09 13:58:35 +01:00
zelig a009132c24 oops peer unlocked before return - fixes deadlock 2015-04-09 13:58:35 +01:00
zelig 0e2bc23148 uncomment future block TD check, add test for skipping TD check on future block 2015-04-09 13:58:35 +01:00
zelig e55747a074 fix deadlock issue in AddBlock
- add peer switch channel arg to activateChain - no peer locking within
- proper locking in AddBlock - fixes deadlock issue
- comment out TD check and skip incorrect TD test again for hotfix
2015-04-09 13:58:35 +01:00
zelig 262714fc6c future queued block support
- queued       bool // flag for blockpool to skip TD check
- set to true when future block queued
- in checkTD: skip check if queued
- TODO: add test (insertchain sets future block)
2015-04-09 13:58:35 +01:00
zelig cbd0b42060 put back checkTD and unskip incorrectTD test 2015-04-09 13:58:35 +01:00
zelig f546b486bf introduce peers registry on nodes
- TestPeerPromotionByTdOnBlock renamed and skipped for now test should pass iff
  if TD is updated based on an agreement
- senders register in AddBlock, flag records if they are coming from newblock
  message (and therefore advertise their TD with the block) or block message
  (TODO: latter are stored on the cache and updated by checkTD call;
  protocol should also call AddBlock on newblock messages by non-best peers)
- remove TD update from optional TD field in addBlock: this is no longer part of
  the eth protocol spec -> TODO: reflect in wiki
- only initialise peer map if at least two
2015-04-09 13:58:35 +01:00
zelig 42fb9652f5 fix blockpool deadlock
- do not break from headsection on error
[remove peer after protocol quit will close switchC, until then head block can arrive and block on channel while keeping peers lock causing a deadlock.]
- more careful locking in AddBlock
2015-04-09 13:58:35 +01:00
zelig 30830652ae fix TestPoolStatus test crashing, skip tests failing (due to @obscuren hotfixes) 2015-04-09 13:58:35 +01:00
zelig 5cb1b41440 proper locking to prevent "parent unknown" INVALID blocks due to race in peer head info update 2015-04-02 16:30:48 +01:00
zelig dd1791c9fd proper locking to prevent close of closed channel crash when multiple mining peers compete 2015-04-02 15:32:41 +01:00
zelig f56fc9cd9d change StatusMsgData.TD back to pointer type *big.Int 2015-04-01 12:36:49 +01:00
zelig 6ffea34d8b check TxMsg
- add validation on TxMsg checking for nil
- add test for nil transaction
- add test for zero value transaction (no extra validation needed)
2015-04-01 12:32:42 +01:00
zelig 82da6bf4d2 test for invalid rlp encoding of block in BlocksMsg
- rename Validate -> ValidateFields not to confure consensus block validation
- add nil transaction and nil uncle header validation
- remove bigint field checks: rlp already decodes *big.Int to big.NewInt(0)
- add test for nil header, nil transaction
2015-04-01 12:32:42 +01:00
zelig d677190f39 add tests for valid blocks msg handling 2015-04-01 12:32:42 +01:00
zelig e1be34bce1 eth: SEC-29 eth wire protocol decoding invalid message data crashes client
- add validate method to types.Block
- validate after Decode -> error
- add tests for NewBlockMsg
2015-04-01 12:32:42 +01:00
zelig b375bbee5f settable etherbase
- etherbase flag for block reward destination
- coinbase => etherbase
- CLI- eth Config -> eth, xeth -> RPC / Miner
- use primary instead of coinbase as the unlock magic wildcard
- accounts: firstAddr/Coinbase -> Primary
2015-03-26 21:52:22 +00:00
zelig 7577d12614 max paranoia mode to UNsupport unencrypted keys entirely
- remove account export functionality from CLI
- remove accountExport method,
- remove unencrypted-keys flag from everywhere
- improve documentation
2015-03-26 19:00:18 +00:00
zelig abbdf41560 output error message if unlock address is invalid (fixes the wierd "read /path: is a directory") msg 2015-03-26 19:00:18 +00:00
zelig 11d2ebc06f unlocking coinbase without knowing address
- accounts: remove Manager.getKey
- cli: for -unlock coinbase, use account manager Coinbase()
2015-03-26 19:00:18 +00:00
zelig 4ec38e3932 common: remove WriteFile and ReadAllFile (use ioutil instead) 2015-03-26 19:00:18 +00:00
zelig 23e41a57ad Applying: fix adming js test regression (maybe otto update?) 2015-03-26 19:00:18 +00:00
zelig fee224f075 cli test: fix test newJSRE interactive argument 2015-03-26 19:00:18 +00:00
zelig d1b52efdb5 cli: implement ethereum presale wallet import via cli 2015-03-26 19:00:18 +00:00
zelig 34d5a6c156 cli: help formatting 2015-03-26 19:00:18 +00:00
zelig 1c4c71dcff cli: fix liner not closing (spuriously opened) in noninteractive jsre 2015-03-26 19:00:18 +00:00
zelig fd8d18ec28 unlocking coinbase
- extract accounts.getKey method - if given empty address it retrieves coinbase (first account)
- cli -unlock coinbase will unlock coinbase
2015-03-26 19:00:18 +00:00
zelig 859f1f08ca blockpool: wrap intermittent status test in a loop 2015-03-26 19:00:18 +00:00
zelig c4ea921876 import/export accounts
- cli: add passwordfile flag
- cli: change unlock flag only takes account
- cli: with unlock you are prompted for password or use passfile with password flag
- cli: unlockAccount used in normal client start (run) and accountExport
- cli: getPassword used in accountCreate and accountImport
- accounts: Manager.Import, Manager.Export
- crypto: SaveECDSA (to complement LoadECDSA) to save to file
- crypto: NewKeyFromECDSA added (used in accountImport and New = generated constructor)
2015-03-26 19:00:18 +00:00
zelig 18d1569ce5 header check for test 2015-03-25 12:11:29 +00:00
zelig 9d592c0445 bugfix with idle too long triggered after peer switch
- reset bestIdleTimer when launching head section process
- log chain head events
- common.Hash key in activateChain map
2015-03-25 12:11:29 +00:00
zelig 53af810851 natspec: minor fix in test 2015-03-23 17:36:04 +00:00
zelig a983a215dc fix ethtest logging 2015-03-23 17:08:49 +00:00
zelig 9880f99ccb fix p2p/testlog_test 2015-03-23 16:41:41 +00:00
zelig 03cc5df9b7 eth: fix protocol version/network id copied from config to Ethereum field 2015-03-23 16:23:06 +00:00
zelig 0edb33566f fix blockpool test logger 2015-03-22 02:18:07 +00:00
zelig 78cff9e3a4 independent flag for json structured logging
- logjson flag remove logformat flag
- passed to eth Config
- logsystem not a field of Ethereum
- LogSystem does not need to expose GetLogLevel/SetLogLevel
- message struct just implements more generic LogMsg interface
- LogMsg is a fmt.Stringer with Level()
- jsonMsg ([]byte) implements LogMsg
- remove "raw" systems
- move level logic inside StdLogSystem
- logsystems only print their kind of msg: jsonLogSystem prints jsonMsg, StdLogSystem prints stdMsg
2015-03-22 02:16:54 +00:00
zelig 95038fc62d Idle too long error incorrectly triggered even when peer sending new blocks
- fix status chain map uses common.Hash as key
- add badPeers increment to IncorrectTD errors (forgotten)
- signal head info update to head section process even if parent hash is not in pool (inserted), so that idle timer can be set to nil
- suicideC -> peer.headInfoTimer
- quit -> peer.bestIdleTimer
- and they are properly set from within getBlockHashes and handleSection
2015-03-22 02:02:24 +00:00
zelig 66b29899c4 use common.Hash as pool key, no string conversion needed 2015-03-20 11:57:47 +00:00
zelig d7564a9a25 fix common.Hash conversion 2015-03-20 10:41:41 +00:00
zelig 8987750a36 fix import in reorganised test 2015-03-20 10:41:41 +00:00
zelig 0578df9467 remove eth/wallet.go (only commented out content) 2015-03-20 10:41:41 +00:00
zelig a578db5dae improve documentation and move one test 2015-03-20 10:41:41 +00:00
zelig 8767179d74 reduce logging output 2015-03-20 10:41:41 +00:00
zelig 63cae9b9ac uncomment status test, hack: skip the 2 unreliable fields 2015-03-20 10:41:41 +00:00
zelig 137a9c9365 check and penalise td misreporting
- add ErrIncorrectTD
- checkTD called after insertChain successful
- fix tests, use blockPoolTester.tds to map block index to TD
2015-03-20 10:41:41 +00:00
zelig a9926a289d fix missing hexification on IdleTooLong error log 2015-03-20 10:41:40 +00:00
zelig 391e89d70a use own total difficulty to limit best peer
- update blockpool td by subscribing to ChainHeadEvent
- if ahead of best peer, demote it
- addPeer now take own td as current td
- removePeer now take own td as current td
- add relevant tests to peers_test
- eth: backend now calls blockpool with eth.eventMux and chainManager.Td
2015-03-20 10:41:40 +00:00
zelig 50661f0e68 peer suspension to disallow reconnect after disconnect on fatal error for set period (PeerSuspensionInterval) 2015-03-20 10:41:40 +00:00
zelig ca8d184173 fix eth tests 2015-03-18 16:31:49 +07:00
zelig b6aa88c099 private network support
- protocolversion, networkid global int flags to cli and mist
- fix bug with protocolversion check using wrong db
- log protocolversion & networkid in backend
2015-03-18 14:44:58 +07:00
zelig 7dbbe1bedc eth/backend: remove spurious and incorrent PeerInfo() 2015-03-18 04:01:47 +07:00
zelig 1872418316 eth: remove disused peer_util.go 2015-03-18 03:59:21 +07:00
zelig 17cd7a5817 remove long-running mining test, ethutil -> common 2015-03-16 22:56:05 +07:00
zelig b3e133dd15 Merge branch 'frontier/js' into frontier/nodeadmin.js 2015-03-16 22:50:29 +07:00
zelig 73af0302be we do not use the name Frontier Console 2015-03-16 22:49:39 +07:00
zelig b4060da9eb ethutil -> common 2015-03-16 22:48:54 +07:00
zelig 5e7702fd05 Merge remote-tracking branch 'upstream/develop' into frontier/js
Conflicts:
	cmd/ethereum/js.go
	javascript/types.go
2015-03-16 22:46:29 +07:00
zelig 8139d444f8 Merge remote-tracking branch 'upstream/develop' into frontier/nodeadmin.js 2015-03-16 15:19:09 +07:00
zelig ece5c2aade Merge branch 'frontier/js' into frontier/nodeadmin.js 2015-03-15 22:29:50 +07:00
zelig 8393dab470 menubar back to mist main.qml 2015-03-15 22:29:10 +07:00
zelig ff86d7d52a Merge branch 'frontier/js' into frontier/nodeadmin.js 2015-03-15 18:43:03 +07:00
zelig 7bc40aa963 jsre: remove assetpath using GOPATH from test 2015-03-15 18:42:17 +07:00
zelig 132e87a707 node admin interface for Frontier Console, see spec https://github.com/ethereum/go-ethereum/wiki/Frontier-Console 2015-03-15 13:43:48 +07:00
zelig 8ad0f1b8a3 eth:
- NodeInfo, PeerInfo types, PeersInfo(), NodeInfo() in eth/backend to support node admin IF
- start net only if MaxPeers > 0, close extraDb in Stop()
- defer s.extraDb.Close()
2015-03-15 13:39:52 +07:00
zelig e150832734 p2p: server>discover table Self=Node exported 2015-03-15 13:38:41 +07:00
zelig 7279a485c2 CLI:
- js subcommand for vm
- console for Frontier console interactive REPL
- jspath in cli
- integrate jeth apiBindings
2015-03-15 13:31:40 +07:00
zelig 16ecb1e2ea rpc
- camelcase fields dont play nice with otto value magic: JsonRpc -> Jsonrpc, ID -> Id
- jeth: ethereum.js rpc transport provider direct bridge between js and ethereumApi via otto jsre
2015-03-15 13:21:54 +07:00
zelig 31ffca6d8a remove jsre from mist 2015-03-15 13:18:58 +07:00
zelig da44097800 jsre:
- require became loadScript(), no require is supplied
- bignumber_js.go: heredoc v2.0.3 minified fixed for otto Regexp incompatibility https://github.com/robertkrimen/otto#regular-expression-incompatibility
- bignumber.min.js also updated in mist/assets/ext
- ethereum_js.go: latest master minified
- assetPath in constructor
- Eval/Exec/Handle/ToVal nice API
- jsre tests
2015-03-15 13:13:39 +07:00