Commit Graph

7839 Commits

Author SHA1 Message Date
Patrick Mylund Nielsen 20c7f79f14 Merge pull request #9 from jpmorganchase/state-transition-fix
core: set correct public state for all state transition functions
2016-11-16 18:18:20 -05:00
Patrick Mylund Nielsen ef93d58e07 Merge pull request #8 from jpmorganchase/formatting
Grammar / formatting fixes.
2016-11-16 18:10:57 -05:00
Jeffrey Wilcke 410edf0b1a core: set correct public state for all state transition functions
Fixed an issue where public state and private state were mixed during
the initial phase of the state transition. This causes severe issues
when creating new contracts (and addresses) and messes up the public
nonce, which, indirectly, has an effect on the contracts that are
created on the public state for both public and private txs.
2016-11-17 00:05:44 +01:00
Joel Burget e494b5063c
Grammar / formatting fixes. 2016-11-16 16:18:19 -05:00
Patrick Mylund Nielsen 23201564ff Merge pull request #7 from jpmorganchase/incrementignored
Increment sender nonce even if we are ignoring a private transaction
2016-11-16 13:08:39 -05:00
Patrick Mylund Nielsen 14911013b1 Merge pull request #6 from jpmorganchase/privpub
eth: look in private an public state on reading state data
2016-11-16 13:08:09 -05:00
Patrick Mylund Nielsen 46d00bf639 Return zero gas usage on private transactions whether or not you're party to the transaction 2016-11-16 13:03:42 -05:00
Patrick Mylund Nielsen 497ab68ce0 Increment sender nonce even if we are ignoring a private transaction 2016-11-16 12:57:41 -05:00
Bas van Kervel c371524cbb eth: look in private an public state on reading state data 2016-11-16 18:51:06 +01:00
Patrick Mylund Nielsen f4b5a8c83e Merge pull request #5 from bas-vk/state
core/quorum, core: add private transaction state processing
2016-11-16 10:10:11 -05:00
Jeffrey Wilcke 6d75c3b1c0 core/quorum, core: add private transaction state processing 2016-11-16 15:53:42 +01:00
davoell dfcad9e07e Update README.md 2016-11-15 18:16:49 -05:00
davoell 403dd340bd Update README.md 2016-11-15 18:15:12 -05:00
davoell 3d085b8761 Add files via upload 2016-11-15 18:12:09 -05:00
Chetan Sarva aafa5e41b8 [docs] updated documentation: edited for clarity 2016-11-15 16:55:10 -05:00
davoell d16b51147a Merge pull request #1 from jpmorganchase/docs
Rewrote main README
2016-11-15 13:23:49 -05:00
Patrick Mylund Nielsen b545f51c3c Merge pull request #4 from bas-vk/zero-gasprice
cmd,eth enforce gas price of 0
2016-11-15 12:44:06 -05:00
Bas van Kervel 9bb4635f70 cmd,eth enforce gas price of 0 2016-11-15 18:40:08 +01:00
Patrick Mylund Nielsen 70448724e8 Merge pull request #3 from jpmorganchase/fix_private_sig
Fix SetPrivate and validation
2016-11-15 09:00:57 -05:00
Chetan Sarva ad9d04d6ba Fix SetPrivate and validation
* Builds on the fix in c828292fa2c009e2865b1f0d521a080499a234d8;
* SetPrivate() must be called after the tx has been signed and
* just before inserting into txpool.

* Added 37 & 38 as valid V values in validation routine
2016-11-14 23:48:10 -05:00
Chetan Sarva 35d49a0a69 added getTransaction output 2016-11-14 19:26:48 -05:00
Patrick Mylund Nielsen c828292fa2 SetPrivate after tx has been populated 2016-11-14 19:26:11 -05:00
Chetan Sarva 6aa91b115f Rewrite of main readme; detailed docs moved to docs/ folder 2016-11-14 19:23:29 -05:00
Patrick Mylund Nielsen 45a668d8ab Additional private integration points 2016-11-14 18:53:14 -05:00
Patrick Mylund Nielsen 7b5da9d64b Correct block_voting.sol link 2016-11-14 01:57:04 -05:00
Patrick Mylund Nielsen ab3889c3fb Add notes on sending Private Transactions to README.md 2016-11-14 01:05:54 -05:00
Patrick Mylund Nielsen 8d1b23245a Clarify 7nodes roles 2016-11-14 00:54:08 -05:00
Patrick Mylund Nielsen 35caf0ddc2 Add new vendored packages 2016-11-14 00:41:46 -05:00
Patrick Mylund Nielsen bea1e6de1d Rename private.go import path to ethereum/go-ethereum 2016-11-14 00:39:47 -05:00
Patrick Mylund Nielsen 3df813ec8e go fmt 2016-11-14 00:35:27 -05:00
Patrick Mylund Nielsen 3c536c7db7 Remove whitespace in state_transition.go 2016-11-14 00:34:50 -05:00
Patrick Mylund Nielsen ebe8a851ca Change a couple references 2016-11-14 00:34:02 -05:00
Patrick Mylund Nielsen 13eb8db520 Add temporary PrivateTransactionManager integration 2016-11-14 00:33:56 -05:00
Patrick Mylund Nielsen 5fed1e349f Remove _data files and point to quorum-examples repository 2016-11-14 00:32:43 -05:00
bas-vk 2480036927 Merge pull request #15 from bas-vk/params
params: make quorum voting address global
2016-11-09 18:56:39 +01:00
Bas van Kervel 06c8ad90bf params: make quorum voting address global 2016-11-09 18:56:05 +01:00
bas-vk 70a49efaf6 Merge pull request #14 from bas-vk/votetxpriority
core/types,core/quorum: give vote transactions priority
2016-11-09 16:04:58 +01:00
Bas van Kervel 2a133748cb core/types,core/quorum: give vote transactions priority 2016-11-09 16:04:29 +01:00
Jeffrey Wilcke 9a13f094e5 Merge pull request #10 from bas-vk/callvmenv
core,eth: support calling public accounts
2016-11-09 15:33:17 +01:00
Jeffrey Wilcke ebe1f0eebe Merge pull request #11 from bas-vk/rpc-storageroot
web3ext: add eth_storageRoot RPC method to console
2016-11-09 15:32:41 +01:00
Jeffrey Wilcke 375bb3f25a Merge pull request #13 from bas-vk/documentation
quorum: Add README and example files
2016-11-09 15:31:53 +01:00
Bas van Kervel 936e7473bb quorum: Add README and example files 2016-11-03 15:59:33 +01:00
Bas van Kervel 6a2a16702a web3ext: add eth_storageRoot RPC method to console 2016-11-03 11:07:03 +01:00
Bas van Kervel d3a871c2f4 core,eth: support calling public accounts 2016-11-03 09:51:01 +01:00
Jeffrey Wilcke 9392153a75 Merge pull request #5 from obscuren/private-tx
core, core/types: implemented private transaction check
2016-11-02 16:35:18 +01:00
Jeffrey Wilcke b11a387c95 Merge pull request #4 from bas-vk/staterpc
core, eth: add support for storage root retrieval for accounts
2016-11-02 00:33:26 +01:00
Jeffrey Wilcke 1ad23deb8e core, core/types: implemented private transaction check
Transactions are considered private when the V param is either 37 or 38.
2016-11-01 22:25:59 +01:00
Bas van Kervel fb486961d6 core, eth: add support for storage root retrieval for accounts 2016-11-01 17:33:56 +01:00
Jeffrey Wilcke e7815c59f0 core: identify private transactions 2016-11-01 12:57:26 +01:00
Jeffrey Wilcke 763f939f47 core, core/vm: dual state & read only EVM
This commit implements a dual state approach. The dual state approach
separates public and private state by making the core vm environment
context aware.

Although not currently implemented it will need to prohibit value
transfers and it must initialise all transactions from accounts on the
public state. This means that sending transactions increments the
account nonce on the public state and contract addresses are derived
from the public state when initialised by a transaction. For obvious
reasons, contract created by private contracts are still derived from
public state.

This is required in order to have consensus over the public state at all
times as non-private participants would still process the transaction on
the public state even though private payload can not be decrypted. This
means that participants of a private group must do the same in order to
have public consensus. However the creation of the contract and
interaction still occurs on the private state.

It implements support for the following calling model:

S: sender, (X): private, X: public, ->: direction, [ ]: read only mode

1. S -> A -> B
2. S -> (A) -> (B)
3. S -> (A) -> [ B -> C ]

It does not support

1. (S) -> A
2. (S) -> (A)
3. S -> (A) -> B

Implemented "read only" mode for the EVM. Read only mode is checked
during any opcode that could potentially modify the state. If such an
opcode is encountered during "read only", it throws an exception.

The EVM is flagged "read only" when a private contract calls in to
public state.
2016-11-01 12:57:26 +01:00