github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/protos/transaction.proto (about) 1 // Copyright 2016 Intel Corporation 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // ----------------------------------------------------------------------------- 15 16 syntax = "proto3"; 17 18 option java_multiple_files = true; 19 option java_package = "sawtooth.sdk.protobuf"; 20 option go_package = "transaction_pb2"; 21 22 message TransactionHeader { 23 // Public key for the client who added this transaction to a batch 24 string batcher_public_key = 1; 25 26 // A list of transaction signatures that describe the transactions that 27 // must be processed before this transaction can be valid 28 repeated string dependencies = 2; 29 30 // The family name correlates to the transaction processor's family name 31 // that this transaction can be processed on, for example 'intkey' 32 string family_name = 3; 33 34 // The family version correlates to the transaction processor's family 35 // version that this transaction can be processed on, for example "1.0" 36 string family_version = 4; 37 38 // A list of addresses that are given to the context manager and control 39 // what addresses the transaction processor is allowed to read from. 40 repeated string inputs = 5; 41 42 // A random string that provides uniqueness for transactions with 43 // otherwise identical fields. 44 string nonce = 6; 45 46 // A list of addresses that are given to the context manager and control 47 // what addresses the transaction processor is allowed to write to. 48 repeated string outputs = 7; 49 50 //The sha512 hash of the encoded payload 51 string payload_sha512 = 9; 52 53 // Public key for the client that signed the TransactionHeader 54 string signer_public_key = 10; 55 } 56 57 message Transaction { 58 // The serialized version of the TransactionHeader 59 bytes header = 1; 60 61 // The signature derived from signing the header 62 string header_signature = 2; 63 64 // The payload is the encoded family specific information of the 65 // transaction. Example cbor({'Verb': verb, 'Name': name,'Value': value}) 66 bytes payload = 3; 67 } 68 69 // A simple list of transactions that needs to be serialized before 70 // it can be transmitted to a batcher. 71 message TransactionList { 72 repeated Transaction transactions = 1; 73 }