Project: quorum-acceptance-test

Failed: 0/1 Passed: 1/1 Skipped: 0/1
1Total specs
  • 0Failed
  • 1Passed
  • default
  • 100%
  • 00:00:06
  • Sep 26, 2018 at 3:28pm

Single private smart contract

00:00:06

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:01
Tags: privacy mining
Execution Time : 00:00:01
  • 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:01
Tags: privacy storage
Execution Time : 00:00:01
  • 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:01
Tags: privacy transaction
Execution Time : 00:00:01
  • 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:01
Tags: privacy
Execution Time : 00:00:01
  • 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:02
Tags: privacy
Execution Time : 00:00:01
  • 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:01
  • 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" .