Operations
Blockchain state can be accessed using state access operations. There are two types of operations, read operation and write operation, and they are again classified into two categories: simple operation and composite operation. Simple operations are those that have only one access reference point (i.e., data path in the blockchain database), while composite operations have multiple access reference points.
Read Operations
There is no permission required for read operations.
Simple Operations
Target
Operator
Parameters
Action
value
GET_VALUE
ref
Get the value on the path reference
rule
GET_RULE
ref
Get the rule config on the path reference
owner
GET_OWNER
ref
Get the owner config on the path reference
function
GET_FUNCTION
ref
Get a triggering function hash on the path reference
rule
EVAL_RULE
ref, address, value, timestamp
Evaluate the rule config on the path reference
owner
EVAL_OWNER
ref, address
Evaluate the owner config on the path reference
Composite Operations
Target
Operator
Parameters
Action
Rule requirements
value, rule, owner, or function
GET
op_list (list of get operations)
Get multiple path-value, path-rule, path-owner, or path-function pairs
None
Write Operations
Each write operation has permission requirements depending on its type and path reference.
Simple Operations
Target
Operator
Parameters
Action
Required Permission
value
SET_VALUE
ref, value
Set the value on the path reference
Value write permission on the path
value
INC_VALUE
ref, value
Increment the value on the path reference by delta
Value write permission on the path
value
DEC_VALUE
ref, value
Decrement the value on the path reference by delta
Value write permission on the path
rule
SET_RULE
ref, rule
Set the rule on the path reference
Rule write permission on the path
owner
SET_OWNER
ref, owner
Set the owner on the path reference
Owner write permission on the path
function
SET_FUNCTION
ref, funcHash
Set a triggering function on the path reference
Function write permission on the path
Composite Operations
There are two composite write operations, SET and BATCH:
Target
Operator
Parameters
Action
Rule requirements
value, rule, owner, or function
SET
op_list (an array of operations)
Set multiple path-value, path-rule, path-owner, or path-function pairs
Write permission on all the paths
value, rule, owner, or function
BATCH
tx_list (an array of transactions)
Handle each transaction independently
Write permission on the paths of each transaction
The SET and BATCH operations can be compared as follows:
Comparison
SET Operation
BATCH Operation
structure
Has multiple operations in op_list
Has multiple transactions in tx_list
atomicity
The whole operation fails if one of the operation in op_list fails
The transactions in tx_list are executed independently, i.e., failure of one transaction does not affect other transactions
order
Broadcasted in a bundle and executed in the given order
Broadcasted in a bundle and executed in the given order
Last updated