aboutsummaryrefslogtreecommitdiffstats
path: root/comms/ghfaxviewer
ModeNameSize
-rw-r--r--Makefile815logstatsplainblame
-rw-r--r--distinfo211logstatsplainblame
d---------files132logstatsplain
-rw-r--r--pkg-descr134logstatsplainblame
-rw-r--r--pkg-plist404logstatsplainblame
>+1 | * core: consider reset round when getting config stateWei-Ning Huang2019-09-172-8/+34 | | | | | | | | | | | | | | | | | | Previous config snapshot is determined as follows, for round n: Return the snapshot state of round (n - ConfigRoundShift) However this may cause the system to stuck at a particular round if the DKG for the next round continues to fail (maybe due to node failure). To fix this, instead of using the simple logic above, we consider the reset rounds as a normal round, and use the snapshot of the reset rounds as config. Thus we could gradually push out the broken nodes from nodeset. The snapshot is now determined as follows, for round n: If resetCount < ConfigRoundShift Return the snapshot state of round (n - ConfigRoundShift) Else Reutrn the stateshot state of (n + resetCount - ConfigRoundShift) * core: add GovUtil to unify governance state related accessWei-Ning Huang2019-09-174-63/+137 | | | | | Add GovUtil so we could use the same logic in everywhere that requires access to governance state, such as configuration and CRS. * import: switch consensus core to ↵Wei-Ning Huang2019-09-172-15/+15 | | | | gitlab.com/tangerine-network/tangerine-consensus * core: vm update oracle contract addressesWei-Ning Huang2019-09-171-2/+5 | * core: vm: update governance test suite nameWei-Ning Huang2019-09-171-20/+20 | * core: vm: remove opRand and use oracle contract to get random numberJhih-Ming Huang2019-09-177-34/+85 | * core: set block timestamp to second instead of millisecondWei-Ning Huang2019-09-171-1/+1 | * core: vm: add updateNodeInfo governance methodWei-Ning Huang2019-09-173-86/+201 | * Rebrand as tangerine-network/go-tangerineWei-Ning Huang2019-09-1729-102/+102 | * core: vm: prevent replace duplicate nodeKeyWei-Ning Huang2019-09-172-3/+24 | * core: vm: fix payFine functionWei-Ning Huang2019-09-172-1/+11 | * core: vm: implement transferNodeOwnershipByFoundation (#399)Wei-Ning Huang2019-06-153-0/+93 | * core: vm: add sanity check for updateConfiguration (#383)Wei-Ning Huang2019-06-151-0/+12 | * core: vm: fix node offset during transfer (#377)Wei-Ning Huang2019-06-152-13/+9 | * core: vm: add withdrawable (#373)Jimmy Hu2019-06-153-15/+66 | * core: vm: refine panic flow (#372)Wei-Ning Huang2019-06-151-15/+7 | | | | Move panic call to immediate location of the error to prevent accidententaly panic on other conditions. * core: vm: clearDKG in resetDKG (#368)Jimmy Hu2019-06-151-0/+8 | * core: vm: fix emitReported (#367)Wei-Ning Huang2019-06-151-6/+15 | * core: vm: prevent setting owner to blackhole (#366)Jimmy Hu2019-06-152-1/+19 | | | | | | * core: vm: prevent setting owner to blackhole * core: vm: same for transferNodeOwner * core: implement DKG success (#362)Jimmy Hu2019-06-153-32/+206 | | | | | | | | * vendor: sync to latest core * core: implmenet dkg success * cmd: govtool: add DKGSuccess * core: vm: improve MPK reverse lookup performanceWei-Ning Huang2019-06-153-82/+92 | | | | | By storing array offset in the original DKGMasterPublicKeyProposed map, we can locate MPK by proposer ID easily. * core: vm: cache GPK to prevent DoS (#335)Wei-Ning Huang2019-06-151-1/+18 | | | | Cache GPK so one can not slow the chain down with the ProposeCRS method call. * core: add cache for DKG MPK and complaint (#334)Wei-Ning Huang2019-06-151-20/+21 | | | | | Since deserializing DKG related items are extremely slow (takes about 3 seconds for 100 items), we cache it in the governance interface. * core: vm: fineFailStopDKG if MPK not registered (#329)Jimmy Hu2019-06-152-12/+29 | | | | | * core: vm: fineFailStopDKG if MPK not registered * prevent on-chain randomness * core: vm: fix fineFailStopDKG (#328)Jimmy Hu2019-06-151-1/+1 | * core: vm: implement node public key replacement (#324)Wei-Ning Huang2019-06-153-1/+102 | * core: vm: clear DKG the right way (#319)Jimmy Hu2019-06-151-1/+1 | * core/vm: resetDKG if ttoo less qualified (#318)Jimmy Hu2019-06-151-1/+9 | * core: vm: make fail stop fine value configurable (#312)Wei-Ning Huang2019-06-153-55/+92 | | | | A node is now quailified only if it has no pending fine and staked >= minstake. * dex: rebuild connection if dkg reset, core/vm: fix gov (#308)Jimmy Hu2019-06-151-0/+12 | | | | | * dex: rebuild connection if dkg reset * core: vm: fix governance contract * core: vm: update set size on node info change (#307)Wei-Ning Huang2019-06-151-8/+4 | | | | | | * core: vm: update set size on node info change * fix typo * core: merge notarySet and DKGSet (#265)Jimmy Hu2019-06-153-78/+25 | | | | | | | | * vendor: sync to latest core * core: merge notarySet and dkgSet * dex: optimize network traffic for finalized block * core: vm: fix DKG reset (#296)Wei-Ning Huang2019-06-132-23/+26 | * core/vm: remove round from addDKG functions (#279)Jimmy Hu2019-06-132-73/+45 | | | | | | | | * vendor: sync to latest core * core/vm: remove addDKG functions * core: fix conflict * core: vm: deny duplicate public key from registering (#289)Wei-Ning Huang2019-06-132-1/+20 | * core: vm: pay fine to governance owner and trigger set size recalculation (#288)Wei-Ning Huang2019-06-131-1/+5 | * consensus: dexcon: disqualify dead node (#280)Wei-Ning Huang2019-06-133-30/+128 | | | | | | | | | | Since a qualified node might fail stopped, we need to remove them from qualified nodes to maintain network integrity. We do this by inspect the previous round to see if there are dead nodes. A dead node is a notary set node that does not propose any block in the previous round. We disqualify them by fining them so their staked value is 1 wei below minStake. This make them unqualified for being notary set in the follow on rounds. * core: vm: emit event when transfering owner (#277)Wei-Ning Huang2019-06-133-0/+48 | * core: vm: automatically calculate notary set size (#276)Wei-Ning Huang2019-06-133-14/+95 | * core: vm: add extra checks to prevent DKG spamming (#272)Wei-Ning Huang2019-06-123-58/+173 | | | | Add two maps to check the uniqueness of DKGMasterPublicKey and DKGComplaints to prevent malicious actors from spamming it. * core: vm: fix naming consistencyWei-Ning Huang2019-06-122-11/+11 | * core: check reset of dkg types when adding (#268)Jimmy Hu2019-06-121-0/+16 | | | | | | * vendor: sync to latest core * core: check dkg reset * core: vm: reorder minGasPriceLocWei-Ning Huang2019-06-121-1/+1 | * dex: implement recovery mechanism (#258)Wei-Ning Huang2019-06-122-5/+5 | | | | | | | | | * dex: implement recovery mechanism The DEXON recovery protocol allows us to use the Ethereum blockchain as a fallback consensus chain to coordinate recovery. * fix * core: vm: group min gas price with related state variables (#257)Wei-Ning Huang2019-06-123-16/+16 | * core: vm: implement transfer node ownership (#255)Wei-Ning Huang2019-06-123-9/+83 | * core: vm: create new oracle contract instance in each call (#251)Wei-Ning Huang2019-06-123-6/+16 | | | | | Since the VM might be called from different source (downloader, RPC, etc.). We need to make the call state separate. Modify the calling sequence so a new oracle contract instance is used on each run. * core/vm: use core util to get threshold of tsig (#250)Jimmy Hu2019-06-121-3/+4 | * vendor: sync to latest core and fix conflictJimmy Hu2019-06-121-2/+2 | * core: vm: remove delegation mechanism (#245)Wei-Ning Huang2019-06-124-994/+259 | | | | | | | | | | | | | The current delegation mechanism are prone to unstaking attack. i.e. a malicious attacker could unstake a small amount from a lot of node it staked before and make them unqualified, which leads to potential failure of the network. Since DEXON does not use consensus like DPoS, node is required to have at least MinStake in order to become a node. Voting mechanism is not required in our system since qualified node does not depends on the number of votes. Instead of managing the delegation mechanism in governance contract, we should let the owner manage the delegation and reward distribution mechanism on their own. * core: vm: expose CRSRound and DKGRound and fix consistency (#236)Wei-Ning Huang2019-06-123-60/+118 | * core: fix dkgJimmy Hu2019-06-121-12/+47 | * dex: fill in correct coinbase address (#223)Wei-Ning Huang2019-06-121-0/+9 | | | Also remove app_test.go because of the refactor bojie@ is working on. * core: vm: validate addDKGMasterPublicKey caller properly (#220)Wei-Ning Huang2019-06-123-60/+59 | | | | | | There are two keys in the system: one is the owner's key which is used for stake / unstake. The other is the node key which is used for DKG related operations. We need to allow them to be different so fund renmains safe even if the the node key is lost. * core: vm: flatten governanceWei-Ning Huang2019-06-124-482/+464 | * core: sync to latest core (#214)Jimmy Hu2019-06-121-0/+10 | | | | | * vendor: sync to latest core * fix for single chain * core: Fixed gas price (#205)Jimmy Hu2019-06-123-1/+45 | | | | | | | | | | * core/vm: update abi * core/vm: add MinGasPrice to gov * params: Add MinGasPrice to Config * dex: SuggestPrice from Governance * test: add minGasPrice to genesis.json * core: check underpriced tx * dex: verify with gas price * core: Remove K, Phi and NumChains from Governance (#198)Jimmy Hu2019-06-123-161/+29 | | | | | | * change default sync_core.sh * vendor: sync to latest core * core: Remove K, Phi and NumChain * core/vm: fix getConfigState (#203)Jimmy Hu2019-06-121-4/+3 | * vm: reset DKG (#190)Jimmy Hu2019-06-124-70/+562 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vm: Update gov abi * vm: Add DKGResetCount to state helper * vm: add getter * vm: Add DKGReset event * vm: Add resetDKG method * vm: check resetDKG criteria * vm: Add new CRS * vm: add helper pop2DByteArray * vm: emit event * vm: Add CoreMock to GovernanceContract * vm: bug fix * add test for resetDKG * vm: Add test * fix test * Modify mock interface * core/vm: modify Withdrawn event and add NodeRemoved event (#179)Jimmy Hu2019-06-122-4/+31 | | | | | | * core/vm: add delegatorAddr to withdrawn event * core/vm: update gov abi * core/vm: add NodeRemoved event * core: vm: refactor governance and add node info oracle (#174)Wei-Ning Huang2019-06-125-682/+953 | * core: vm: Add amount to undelegate event (#176)Jimmy Hu2019-06-122-4/+9 | * core: vm: more change to the randomness calculation (#175)Wei-Ning Huang2019-06-121-5/+5 | | | | To prevent attacker from sending TX through a intermediate contract. Always use the original tx sender's adddress and nonce. * core: vm: modify randomness calculation algorithm (#173)Wei-Ning Huang2019-06-122-3/+7 | | | | | | | | | | | | | | | | | | | | | | | | The original algorithm used for calculating algorithm is vulnerable to cross context re-entry attack. Example as follows: contract B { event Value(uint256 value); uint256 public value; function call() public { value = rand; emit Value(value); } } contract A { function randTwice(address bAddr) public { B b = B(bAddr); b.call.gas(100000)(); b.call.gas(100000)(); } } The two `b.call` will result in the same randomness value. This commit fix the issue by recording a called index used to store how many times opRand is called, and use it as argument to the Keccak call. * consensus: dexcon: snapshot round height when finalizing block (#170)Wei-Ning Huang2019-06-123-106/+0 | | | | Instead of having BP to send a tx to register the round height, just modify the state when finalizing block. * core, dex/downloader: polish headers verification and blocks insertion logic ↵Sonic2019-06-121-0/+123 | | | | | | | | (#168) Refactor GenerateDexonChain function, move governance tx logic to the user of GenerateDexonChain (testchain_test.go) and move fake node set code to FakeDexcon. * params: update genesis configWei-Ning Huang2019-06-121-14/+14 | * consensus: implement DEXON cryptoeconomics v4.0 (#145)Wei-Ning Huang2019-06-123-54/+150 | * core: vm: add totalSupply and totalStaked in the governance contract (#144)Wei-Ning Huang2019-06-123-35/+138 | | | | | | | Add totalSupply and totalStaked in the governance contract for the preperation of DEXON cryptoeconomics 4.0. Also removed the unstaked variable in node info and improve tests for delegate/undeleate. * core: vm: move governance abi to a separate file (#143)Wei-Ning Huang2019-06-122-1053/+1074 | * core: vm: emit events for more governance actions (#142)Wei-Ning Huang2019-06-121-0/+145 | * core: vm: implement byzantine reporting mechanism (#128)Wei-Ning Huang2019-06-122-48/+578 | * core: vm: add missing unittests for nodes/delegators (#116)Wei-Ning Huang2019-06-122-3/+13 | * core/vm: Add fine to governance. (#107)Jimmy Hu2019-06-122-132/+292 | | | | | | | | * core/vm: Add Fined field to nodeInfo. * core/vm: Add PayFine to Governance * Not qualify if staked-fine < minStake() * Add test for fine * Update genesis hash * vendor: sync DEXON core and fix conflicts/missings (#101)Mission Liao2019-06-121-4/+6 | | | | | | | Merging these commits in DEXON consensus core: - https://github.com/dexon-foundation/dexon-consensus/commit/dce509a13ef5873b9cae3c1cabdb97e219b6fb7d - https://github.com/dexon-foundation/dexon-consensus/commit/6d1c1aeea0d3e75d10cbb2712c68b4c422ba8ba6 - https://github.com/dexon-foundation/dexon-consensus/commit/c1ed57c4abaf1f4758e52f082bb7114ad00c8b39 * core: vm: Add `MPKReady` to governance (#97)Jimmy Hu2019-06-121-0/+166 | | | | | | * core/vm: Add DKGMPKReady * param: update GenesisHash * vendor: sync to latest core * core/vm: fix nodes method in governanceJimmy Hu2019-06-121-1/+1 | * core: vm: add undelegate fund lockup mechanism (#94)Wei-Ning Huang2019-06-122-40/+235 | | | | | Only allow a user to withdraw funds after a certain lockup period. This way, the fund of a bad actor could be confiscated before he could escape. * core: governance interface should return correct DKG master public keys (#85)Wei-Ning Huang2019-06-121-15/+20 | * core: vm: fix power2 table calculation (#50)Wei-Ning Huang2019-06-121-3/+3 | * core: vm: change offset type to int256Wei-Ning Huang2019-06-121-2/+7 | | | | | Since we use -1 to represent the offset of empty value, we should make the return type int256 instead of uint256. * governance: implement delegate/undelegate function and add tests (#33)Wei-Ning Huang2019-06-122-107/+1145 | | | | | Implement delegate/undelegate function to allow others to delegate it's fund to stake on a node. Also added governance contract tests. * core: more fix on light node synchronization (#32)Wei-Ning Huang2019-06-121-55/+37 | | | | | | Fix gas calculation in governance contract. Correctly register round height when processing pending blocks. We should register the mapping when we get the pending block instead of waiting for block confirmation. * core: vm: add minStake to governance contract variable (#31)Wei-Ning Huang2019-06-121-0/+41 | * core: fix light node synchronization issue (#30)Wei-Ning Huang2019-06-123-9/+17 | | | | | InsertChain() need to record the correct roundHeight mapping in order to process snapshotRoundHeight() governance method correctly. * core: validate DKG set with correct nodeset in round-2 (#19)Wei-Ning Huang2019-06-122-9/+26 | | | | | * vendor: sync consensus core * core: validate DKG set with correct nodeset in round-2 * core: vm: Optimize evm (#13)Jimmy Hu2019-06-125-18/+282 | | | | | | | * core: vm: add an EVM benchmark * core: vm: optimize stack allocation and instruction for calculating 2^n * Add DEXONBet bench * core: push height of round 0 in genesis block (#17)Sonic2019-06-121-8/+8 | | | | | | | * core: push height of round 0 in genesis block * vm: fix governance dispatch method name mismatch with abi also rename RoundHeightLoc to roundHeightLoc * core: vm: expose governance contract ABI (#5)Wei-Ning Huang2019-06-121-2/+2 | * core: vm: governance: add node infoWei-Ning Huang2019-06-121-8/+110 | * core: validate roundHeight mapping in governance contractWei-Ning Huang2019-06-122-4/+22 | * core: vm: governance: remove maxIntervalWei-Ning Huang2019-06-121-32/+0 | * core: vm: add nodesLengh method for reading nodeSet sizeWei-Ning Huang2019-06-121-0/+20 | * Rename import due to dexon-consensus renameWei-Ning Huang2019-06-122-16/+16 | * dex: add block gas limit into governanceWei-Ning Huang2019-06-121-0/+35 | * vendor: sync consensus core and fix conflictWei-Ning Huang2019-06-121-7/+8 | * dex: fix DKG round switchingWei-Ning Huang2019-06-121-6/+18 | * dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2019-06-121-1/+2 | * dex: misc fixesWei-Ning Huang2019-06-121-3/+3 | * dex: use RLP to encode contract payload dataWei-Ning Huang2019-06-121-6/+6 | * core: vm: add blockReward to governanceWei-Ning Huang2019-06-121-0/+35 | * dex: fix public key parsing due to changes in consensus coreWei-Ning Huang2019-06-121-1/+4 | * test: create account storage for governance contractWei-Ning Huang2019-06-121-1/+1 | * core/dex: fix governance contract implementationWei-Ning Huang2019-06-121-19/+13 | * core: vm: implement RAND opcode supportWei-Ning Huang2019-06-124-0/+32 | | | | | | DEXON has a built-in on chain random oracle that allow one to retrieve a random variable. Add a new opcode `RAND` to load the random variable onto the stack. * dex/core: misc bug fixesWei-Ning Huang2019-06-121-1/+1 | * core: vm: modify dkg thresholdJimmy Hu2019-06-121-1/+1 | * core: vm: add GovernanceStateHelper testWei-Ning Huang2019-06-122-0/+98 | * dex: bug fix to allow running geth without crashingWei-Ning Huang2019-06-121-1/+1 | * dex: implement sendTx related governance methodsWei-Ning Huang2019-06-121-0/+5 | * core: vm: validate if mpk, complaint, finalize is in DKG setWei-Ning Huang2019-06-121-36/+62 | * core: vm: allow other people to stake for a nodeWei-Ning Huang2019-06-121-6/+0 | * dex: implement some governance interface functionsWei-Ning Huang2019-06-121-213/+342 | * dex: governance: implement governance interfaceWei-Ning Huang2019-06-121-7/+22 | * core: populate dexon configuration in SetupGenesisBlockWei-Ning Huang2019-06-121-31/+25 | * core: add stake and public key to genesis account infoWei-Ning Huang2019-06-121-44/+55 | * core: vm: check pk ownership in stake()Wei-Ning Huang2019-06-121-1/+12 | * core: vm: expose nodes as publicWei-Ning Huang2019-06-121-14/+52 | * core: vm: add eventlog for governance contractWei-Ning Huang2019-06-121-41/+98 | * core: vm: refactor and add DKGFinalizeds related implementationsWei-Ning Huang2019-06-121-94/+300 | * core: vm: implement the rest of governance contract methodsWei-Ning Huang2019-06-121-132/+275 | * core: vm: check if caller already staked when adding dkg mpkJimmy Hu2019-06-121-0/+7 | * core: vm: fix bug and add gas usageWei-Ning Huang2019-06-122-22/+55 | * core: vm: finish implementing state helperWei-Ning Huang2019-06-121-23/+206 | * core: vm: update governance contract ABIWei-Ning Huang2019-06-121-9/+75 | * core: vm: implement governance contract methodsWei-Ning Huang2019-06-121-51/+218 | * core: vm: add governance contract skeletonWei-Ning Huang2019-06-122-0/+495 | * Change import go github.com/dexon-foundation/dexonWei-Ning Huang2019-06-1224-62/+62 | * core, cmd/puppeth: implement constantinople fix, disable EIP-1283 (#18486)Martin Holst Swende2019-01-302-2/+8 | | | | | | | | | | | | | | | | | This PR adds a new fork which disables EIP-1283. Internally it's called Petersburg, but the genesis/config field is ConstantinopleFix. The block numbers are: 7280000 for Constantinople on Mainnet 7280000 for ConstantinopleFix on Mainnet 4939394 for ConstantinopleFix on Ropsten 9999999 for ConstantinopleFix on Rinkeby (real number decided later) This PR also defaults to using the same ConstantinopleFix number as whatever Constantinople is set to. That is, it will default to mainnet behaviour if ConstantinopleFix is not set.This means that for private networks which have already transitioned to Constantinople, this PR will break the network unless ConstantinopleFix is explicitly set! * vendor, crypto, swarm: switch over to upstream sha3 packageDave McGregor2019-01-041-2/+2 | * cmd/evm, core/vm, eth: implement api methods to do stdjson dump to local ↵Martin Holst Swende2018-12-101-0/+83 | | | | filesystem * tests, core: update tests and make STATICCALL cause touch-delete (#18187)Martin Holst Swende2018-11-291-0/+6 | * Merge pull request #17982 from holiman/polish_contantinople_extcodehashPéter Szilágyi2018-11-081-1/+6 |\ | | | | core/vm: check empty in extcodehash | * core/vm: check empty in extcodehashMartin Holst Swende2018-10-261-1/+6 | | * | core/vm, eth/tracers: use pointer receiver for GetRefund (#18018)Corey Lin2018-11-081-1/+1 |/ * core/state: simplify proof methods (#17965)Felix Lange2018-10-241-10/+0 | | | | This fixes the import cycle build error in core/vm tests. There is no need to refer to core/vm for a type definition. * core/vm: adds refund as part of the json standard trace (#17910)Martin Holst Swende2018-10-233-36/+50 | | | | | | | This adds the global accumulated refund counter to the standard json output as a numeric json value. Previously this was not very interesting since it was not used much, but with the new sstore gas changes the value is a lot more interesting from a consensus investigation perspective. * EIP-1186 eth_getProof (#17737)Simon Jentzsch2018-10-191-0/+10 | | | | | | | | | | | | | | | | * first impl of eth_getProof * fixed docu * added comments and refactored based on comments from holiman * created structs * handle errors correctly * change Value to *hexutil.Big in order to have the same output as parity * use ProofList as return type * core/vm: add shortcuts for trivial exp cases (#16851)Martin Holst Swende2018-10-161-4/+16 | * core/vm: reuse Keccak-256 hashes across opcode executions (#17863)Péter Szilágyi2018-10-083-6/+48 | * core/vm : fix failing testcase (#17852)Martin Holst Swende2018-10-061-1/+2 | | | | | | * core/vm : fix failing testcase * core/vm: fix nitpick * core/vm: SHA3 word cost for CREATE2 (#17812)Martin Holst Swende2018-10-052-0/+87 | | | | | | | | * core/vm: create2 address generation tests * core/vm: per byte cost of CREATE2 * core/vm: fix linter issue in test * core/vm: faster create/create2 (#17806)Martin Holst Swende2018-10-046-52/+145 | | | | | | | | | | | | | | | | | | | | | | | | * core/vm/runtim: benchmark create/create2 * core/vm: do less hashing in CREATE2 * core/vm: avoid storing jumpdest analysis for initcode * core/vm: avoid unneccesary lookups, remove unused fields * core/vm: go formatting tests * core/vm: save jumpdest analysis locally * core/vm: use common.Hash instead of nil, fix review comments * core/vm: removed type destinations * core/vm: correct check for empty hash * eth: more elegant api_tracer * core/vm: address review concerns * all: fix various comment typos (#17748)Liang ZOU2018-09-252-2/+2 | * Merge pull request #17383 from holiman/eip1283Péter Szilágyi2018-09-214-91/+63 |\ | | | | Eip1283 | * core, params: polish net gas metering PR a bitPéter Szilágyi2018-09-185-149/+55 | | | * core,state: finish implementing Eip 1283Martin Holst Swende2018-09-184-16/+23 | | | * core, state: initial implementation of Eip-1283Martin Holst Swende2018-09-183-1/+60 | | * | core/vm: add switches to select evm+ewasm interpreters (#17687)Guillaume Ballet2018-09-202-2/+25 |/ | | | | Interpreter initialization is left to the PRs implementing them. Options for external interpreters are passed after a colon in the `--vm.ewasm` and `--vm.evm` switches. * core/vm: fix typo 'EVM EVM' ==> 'EVM' (#17654)Liang ZOU2018-09-131-1/+1 | * core/vm: Hide read only flag from Interpreter interface (#17461)Paweł Bylica2018-09-082-30/+16 | | | | | Makes Interface interface a bit more stateless and abstract. Obviously this change is dictated by EVMC design. The EVMC tries to keep the responsibility for EVM features totally inside the VMs, if feasible. This makes VM "stateless" because VM does not need to pass any information between executions, all information is included in parameters of the execute function. * core/vm, tests: update tests, enable constantinople statetests, fix SAR ↵Martin Holst Swende2018-09-041-1/+1 | | | | | | | | | | | | | | | opcode (#17538) This commit does a few things at once: - Updates the tests to contain the latest data from ethereum/tests repo. - Enables Constantinople state tests. This is needed to be able to fuzz-test the evm with constantinople rules. - Fixes the error in opSAR that we've known about for some time. I was kind of saving it to see if we hit upon it with the random test generator, but it's difficult to both enable the tests and have the bug there -- we don't want to forget about it, so maybe it's better to just fix it. * all: remove the duplicate 'the' in annotations (#17509)Wenbiao Zheng2018-08-271-1/+1 | * crypto: change formula for create2 (#17393)gary rong2018-08-141-1/+1 | * core/vm: fix comment typo (#17319)stormpang2018-08-061-1/+1 | | | | antything --> anything :P * core/vm: update benchmarks for core/vm (#17308)Hyung-Kyu Hqueue Choi2018-08-031-0/+4 | | | | | | - Update benchmarks to use a pool of int pools. Unless benchmarks are aborted with segmentation fault. Signed-off-by: Hyung-Kyu Choi <hqueue@users.noreply.github.com> * core/vm: fix typo in cryptographic hash function name (#17285)Ha ĐANG2018-07-311-1/+1 | * core/vm: support for multiple interpreters (#17093)Guillaume Ballet2018-07-256-240/+315 | | | | | | - Define an Interpreter interface - One contract can call contracts from other interpreter types. - Pass the interpreter to the operands instead of the evm. This is meant to prevent type assertions in operands. * core/vm, params: implement EXTCODEHASH opcode (#17202)gary rong2018-07-244-0/+45 | | | | | | | | * core/vm, params: implement EXTCODEHASH opcode * core, params: tiny fixes and polish * core: add function description * core, crypto, params: implement CREATE2 evm instrction (#17196)gary rong2018-07-246-17/+87 | | | | | | | | | | * core, crypto, params: implement CREATE2 evm instrction * core/vm: add opcode to string mapping * core: remove past fork checking * core, crypto: use option2 to generate new address * core/vm: reuse bigint pools across transactions (#17070)Guillaume Ballet2018-07-034-2/+112 | | | | | | | | * core/vm: A pool for int pools * core/vm: fix rebase issue * core/vm: push leftover stack items after execution, not before * core/vm: clear linter warnings (#17057)Guillaume Ballet2018-06-269-30/+51 | | | | | | | | * core/vm: clear linter warnings * core/vm: review input * core/vm.go: revert lint in noop as per request * core: remove dead code, limit test code scope (#17006)Wenbiao Zheng2018-06-19