Project: quorum-acceptance-tests

Failed: 2/6 Passed: 4/6 Skipped: 0/6
6Total specs
  • 2Failed
  • 4Passed
  • default
  • 66%
  • 00:01:13
  • Oct 1, 2018 at 2:22pm

Single private smart contract

00:00:14

This is to verify that a private smart contract between 2 parties are not accessible by others. A simple smart contract is to store a int value and to provide get() and set() functions.

Contract is mined

00:00:02
Tags: privacy mining
Execution Time : 00:00:02
  • Deploy a simple smart contract with initial value "42" in "Node1" 's default account and it's private for "Node7" , named this contract as "contract17" .
Execution Time : 00:00:00
  • Transaction Hash is returned for "contract17" .
Execution Time : 00:00:00
  • Transaction Receipt is present in "Node1" for "contract17" .
Execution Time : 00:00:00
  • Transaction Receipt is present in "Node7" for "contract17" .

Storage Root storing private smart contract must be the same

00:00:02
Tags: privacy storage
Execution Time : 00:00:02
  • Deploy a simple smart contract with initial value "42" in "Node1" 's default account and it's private for "Node7" , named this contract as "contract17" .
Execution Time : 00:00:00
  • "contract17" stored in "Node1" and "Node7" must have the same storage root.
Execution Time : 00:00:00
  • "contract17" stored in "Node1" and "Node3" must not have the same storage root.

Transaction payload is secured

00:00:02
Tags: privacy transaction
Execution Time : 00:00:02
  • Deploy a simple smart contract with initial value "42" in "Node1" 's default account and it's private for "Node7" , named this contract as "contract17" .
Execution Time : 00:00:00
  • "contract17" 's payload is retrievable from "Node1" .
Execution Time : 00:00:00
  • "contract17" 's payload is retrievable from "Node7" .
Execution Time : 00:00:00
  • "contract17" 's payload is not retrievable from "Node3" .

Privacy is enforced between parties

00:00:02
Tags: privacy
Execution Time : 00:00:02
  • Deploy a simple smart contract with initial value "42" in "Node1" 's default account and it's private for "Node7" , named this contract as "contract17" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node1" returns "42" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node7" returns "42" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node3" returns "0" .

When there's an update, privacy is still enforced

00:00:04
Tags: privacy
Execution Time : 00:00:02
  • Deploy a simple smart contract with initial value "42" in "Node1" 's default account and it's private for "Node7" , named this contract as "contract17" .
Execution Time : 00:00:02
  • Execute "contract17" 's `set()` function with new value "5" in "Node1" and it's private for "Node7" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node1" returns "5" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node7" returns "5" .
Execution Time : 00:00:00
  • "contract17" 's `get()` function execution in "Node3" returns "0" .