Get desktop application:
View/edit binary Protocol Buffers messages
AddTxRequest requests to apply a new transaction to the ledger.
Version of the protocol
SkipchainID is the hash of the first skipblock
Transaction to be applied to the kv-store
How many block-intervals to wait for inclusion - missing value or 0 means return immediately.
ProofFrom is used to ask a proof from a given block. If this field is empty, the proof will start from the genesis block. The proof is returned only when InclusionWait is above 0.
Flags can hold additional flags to pass to the endpoint. Current flags supported are: - 1: leader check - don't propagate further
AddTxResponse is the reply after an AddTxRequest is finished.
Version of the protocol
Error message describes why the transaction failed.
Proof of the block with the transaction.
Argument is a name/value pair that will be passed to the contract.
Used in:
, ,Name can be any name recognized by the contract.
Value must be binary marshalled
ChainConfig stores all the configuration information for one skipchain. It will be stored under the key [32]byte{} in the tree.
CheckAuthorization returns the list of actions that could be executed if the signatures of the given identities are present and valid
Version of the protocol
ByzCoinID where to look up the darc
DarcID that holds the rules
Identities that will sign together
CheckAuthorizationResponse returns a list of Actions that the given identities can execute in the given darc. The list can be empty, which means that the given identities have now authorization in that darc at all.
CheckStateChangeValidity is a request to get the list of state changes belonging to the same block as the targeted one to compute the hash
CheckStateChangeValidityResponse is the response with the list of state changes so that the hash can be compared against the one in the block
ClientTransaction is a slice of Instructions that will be applied in order. If any of the instructions fails, none of them will be applied. InstructionsHash must be the hash of the concatenation of all the instruction hashes (see the Hash method in Instruction), this hash is what every instruction must sign for the transaction to be valid.
Used in:
,Coin is a generic structure holding any type of coin. Coins are defined by a genesis coin instance that is unique for each type of coin.
Used in:
, ,Name points to the genesis instance of that coin.
Value is the total number of coins of that type.
CreateGenesisBlock asks the cisc-service to set up a new skipchain.
Version of the protocol
Roster defines which nodes participate in the skipchain.
GenesisDarc defines who is allowed to write to this skipchain.
BlockInterval in int64 as nanoseconds since the Unix Epoch. Before VersionRollup, this was the time the leader waited between a signed block and asking for new transactions. With VersionRollup, the BlockInterval is only used to calculate the maximum protocol timeouts and the time-window of acceptance of a new block.
Maximum block size. Zero (or not present in protobuf) means use the default, 4 megs.
DarcContracts is the set of contracts that can be parsed as a DARC. At least one contract must be given.
CreateGenesisBlockResponse holds the genesis-block of the new skipchain.
Version of the protocol
Skipblock of the created skipchain or empty if there was an error.
DBKeyValue represents one element in bboltdb
Used in:
DataBody is stored in the body of the skipblock, and it's hash is stored in the DataHeader.
DataHeader is the data passed to the Skipchain
TrieRoot is the root of the merkle tree of the colleciton after applying the valid transactions.
ClientTransactionHash is the sha256 hash of all the transactions in the body
StateChangesHash is the sha256 of all the StateChanges generated by the accepted transactions.
Timestamp is a Unix timestamp in nanoseconds.
Version is the version of ByzCoin at the creation of the block.
DebugRemoveRequest asks the conode to delete the given byzcoin-instance from its database. It needs to be signed by the private key of the conode.
DebugRequest returns the list of all byzcoins if byzcoinid is empty, else it returns a dump of all instances if byzcoinid is given and exists.
DebugResponse is returned from the server. Either Byzcoins is returned and holds a list of all byzcoin-instances, together with the genesis block and the latest block, or it returns a dump of all instances in the form of a slice of StateChangeBodies.
DebugResponseByzcoin represents one byzcoinid with the genesis and the latest block, as it is for debugging reasons, we trust the node and don't return any proof.
Used in:
DebugResponseState holds one key/state pair of the response.
Used in:
Delete removes the instance. The contract might enforce conditions that must be true before a Delete is executed.
Used in:
ContractID represents the kind of contract that is being deleted.
Args holds all data necessary to delete the instance.
DownloadState requests the current global state of that node. If it is the first call to the service, then Reset must be true, else an error will be returned, or old data might be used.
ByzCoinID of the state to download
Nonce is 0 for a new download, else it must be equal to the nonce returned in DownloadStateResponse. In case Nonce is non-zero, but doesn't correspond to the current session, an error is returned, as only one download-session can be active at any given moment.
Length of the statechanges to download
DownloadStateResponse is returned by the service. If there are no Instances left, then the length of Instances is 0.
KeyValues holds a copy of a slice of DBKeyValues directly from bboltdb
Nonce to be used for the download. The Nonce is generated by the server, and will be set for every subsequent reply, too.
Total key/value pairs.
GetAllByzCoinIDsRequest is a request to get all the Byzcoin chains from a server.
(message has no fields)
GetAllByzCoinIDsResponse contains the list of Byzcoin chains known by a server.
GetAllInstanceVersion is a request asking for the list of state changes of a given instance
GetAllInstanceVersionResponse is the response that contains the list of state changes of a instance
GetInstanceVersion is a request asking the service to fetch the version of the given instance
GetInstanceVersionResponse is the response for both GetInstanceVersion and GetLastInstanceVersion. It contains the state change if it exists and the block index where it has been applied
Used in:
GetLastInstanceVersion is request asking for the last version of a given instance
GetProof returns the proof that the given key is in the trie.
Version of the protocol
Key is the key we want to look up
ID is any block that is known to us in the skipchain, can be the genesis block or any later block. The proof returned will be starting at this block.
MustContainBlock when provided informs the server that the proof should include this block.
GetProofResponse can be used together with the Genesis block to proof that the returned key/value pair is in the trie.
Version of the protocol
Proof contains everything necessary to prove the inclusion of the included key/value pair given a genesis skipblock.
GetSignerCounters is a request to get the latest version for the specified identity.
GetSignerCountersResponse holds the latest version for the identity in the request.
Index contains the trie index where the counters have been extracted so clients can use it to make sure the counters are up-to-date.
GetUpdatesReply only sends back the instances that have a new version, but will not send any proof for an instance that didn't change.
GetUpdatesRequest allows to request changes to existing instances by sending a slice of known versions. If the LatestBlockID is given, the method checks if it corresponds to the latest block. The usage of LatestBlockID is discouraged. SkipchainID should be given instead of LatestBLockID to fetch the latest versions of the instance from the given skipchain.
IDVersion holds the InstanceID and the latest known version of an instance.
Used in:
Instruction holds only one of Spawn, Invoke, or Delete
Used in:
InstanceID is either the instance that can spawn a new instance, or the instance that will be invoked or deleted.
Spawn creates a new instance.
Invoke calls a method of an existing instance.
Delete removes the given instance.
SignerCounter must be set to a value that is one greater than what was in the last instruction signed by the same signer. Every counter must map to the corresponding element in Signature. The initial counter is 1. Overflow is allowed.
SignerIdentities are the identities of all the signers.
Signatures that are verified using the Darc controlling access to the instance.
synthetic is a private field indicating that the instruction has been artificially created, which can give it additional rights (see Instruction.usesForbiddenIdentities()). version is a private field that can allow an instruction to be passed around with the context of a block with a specific version. This field must be the last field of the struct, so that the protobuf-library enumerates the fields correctly.
Invoke calls a method of an existing instance which will update its internal state.
Used in:
ContractID represents the kind of contract that is being invoked.
Command is interpreted by the contract.
Args holds all data necessary for the successful execution of the command.
PaginateRequest is a request to get NumPages times the consecutive list of PageSize blocks.
The first block to fetch
Determines the length of the Blocks attribute in the PaginateResponse. The list contains PageSize consecutive blocks
The number of (asynchrounous) requests the service will return to the client. Requests are send in a consecutive order wrt their list of blocks
If true then blocks are consecutive in the reverse order, ie. following backward links.
PaginateResponse is a reponse from a PaginateRequest.
A list of consecutive blocks
The page number index: relevant if the clients asked for more than one asynchrounous reply from the service.
Tells if the result contains consecutive blocks in a reversed order.
Used to tell the client if an error occured. Any error code not equal to 0 means that something special happened.
A list of error messages in case something special happened.
Proof represents everything necessary to verify a given key/value pair is stored in a skipchain. The proof is in three parts: 1. InclusionProof proves the presence or absence of the key. In case of the key being present, the value is included in the proof. 2. Latest is used to verify the Merkle tree root used in the proof is stored in the latest skipblock. 3. Links proves that the latest skipblock is part of the skipchain. This Structure could later be moved to cothority/skipchain.
Used in:
, , , , ,InclusionProof is the deserialized InclusionProof
Providing the latest skipblock to retrieve the Merkle tree root.
Proving the path to the latest skipblock. The first ForwardLink has an empty-sliced `From` and the genesis-block in `To`, together with the roster of the genesis-block in the `NewRoster`.
ResolveInstanceID is the request for resolving the instance ID based on the Darc ID and the name.
ResolvedInstanceID is the result of the instance ID resolution.
Spawn is called upon an existing instance that will spawn a new instance.
Used in:
ContractID represents the kind of contract that is being spawned.
Args holds all data necessary to spawn the new instance.
StateChange is one new state that will be applied to the collection.
Used in:
,StateAction can be any of Create, Update, Remove
InstanceID of the state to change
ContractID points to the contract that can interpret the value
Value is the data needed by the contract
DarcID is the Darc controlling access to this key.
Version is the monotonically increasing version of the instance
StateChangeBody represents the body part of a state change, which is the part that needs to be serialised and stored in a merkle tree.
Used in:
StreamingRequest is a request asking the service to start streaming blocks on the chain specified by ID.
StreamingResponse is the reply (block) that is streamed back to the client
TxResult holds a transaction and the result of running it.
Used in: