From 42f14bef5fc59c03ab3a2f2597e00ef4adc55d88 Mon Sep 17 00:00:00 2001 From: Nex Date: Thu, 6 Sep 2018 18:36:06 +0800 Subject: [PATCH] Update proto files and scripts --- ac_chain.proto | 91 +++++++++++++++++++++++++++++++++++++++++++++++++ common.proto | 9 +++++ gen.bat | 2 ++ gen.sh | 2 ++ tx_ledger.proto | 37 ++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 ac_chain.proto create mode 100644 common.proto create mode 100644 gen.bat create mode 100644 gen.sh create mode 100644 tx_ledger.proto diff --git a/ac_chain.proto b/ac_chain.proto new file mode 100644 index 0000000..343e97e --- /dev/null +++ b/ac_chain.proto @@ -0,0 +1,91 @@ +syntax = "proto3"; +package api; + +import "common.proto"; + +service AcChain { + rpc BlockNumber (BlockNumberRequest) returns (BlockNumberResponse); + rpc GetBlockByNumber (GetBlockByNumberRequest) returns (GetBlockByNumberResponse); + rpc GetBlockByHash (GetBlockByHashRequest) returns (GetBlockByHashResponse); + rpc GetMessageByHash (GetMessageByHashRequest) returns (GetMessageByHashResponse); + rpc GetMessageByBlockNumberAndIndex (GetMessageByBlockNumberAndIndexRequest) returns (GetMessageByBlockNumberAndIndexResponse); + rpc GetMessageByBlockHashAndIndex (GetMessageByBlockHashAndIndexRequest) returns (GetMessageByBlockHashAndIndexResponse); +} + +message Message { + uint64 block_number = 1; // 消息所在的区块的区块号,当消息处于待确认状态时为`null` + bytes block_hash = 2; // 消息所在的区块的哈希,当消息处于待确认状态时为`null` + uint32 index = 3; // 消息在区块中的位置index,当消息处于待确认状态时为`null` + bytes hash = 4; // 消息的哈希 + MessageType type = 5; // 消息类型 + bytes from = 6; // 发送账户地址 + uint64 nonce = 7; // 这条消息之前发送者所发送的消息数量 + bytes to = 8; // 接收账户地址,或者调用的合约地址,或者`null`如为合约创建 + bytes data = 9; // 数据或合约代码 + bytes v = 10; // ECDSA recovery id + bytes r = 11; // ECDSA signature r + bytes s = 12; // ECDSA signature s +} + +message Block { + uint64 number = 1; // 区块号,当区块处于待确认状态时为`null` + bytes hash = 2; // 区块的哈希,当区块处于待确认状态时为`null` + bytes parent_hash = 3; // 父区块的哈希 + bytes witness = 4; // 见证者账户地址 + uint64 timestamp = 5; // 区块产生时的UNIX时间戳 + uint64 size = 6; // 区块大小的字节数 + bytes message_root = 7; // 区块的消息树根 + repeated Message messages = 8; // 消息对象的数组,或为空 + repeated bytes message_hashes = 9; // 32字节的交易哈希的数组,或为空 +} + +message BlockNumberRequest { + string ledger = 1; +} +message BlockNumberResponse { + uint64 block_number = 1; +} + +message GetBlockByNumberRequest { + string ledger = 1; + uint64 number = 2; + bool full_transaction = 3; +} +message GetBlockByNumberResponse { + Block block = 1; +} + +message GetBlockByHashRequest { + string ledger = 1; + bytes hash = 2; + bool full_transaction = 3; +} +message GetBlockByHashResponse { + Block block = 1; +} + +message GetMessageByHashRequest { + string ledger = 1; + bytes hash = 2; +} +message GetMessageByHashResponse { + Message message = 1; +} + +message GetMessageByBlockNumberAndIndexRequest { + string ledger = 1; + uint64 block_number = 2; + uint32 index = 3; +} +message GetMessageByBlockNumberAndIndexResponse { + Message message = 1; +} + +message GetMessageByBlockHashAndIndexRequest { + string ledger = 1; + bytes block_hash = 2; + uint32 index = 3; +} +message GetMessageByBlockHashAndIndexResponse { + Message message = 1; +} diff --git a/common.proto b/common.proto new file mode 100644 index 0000000..cda818e --- /dev/null +++ b/common.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +package api; + +enum MessageType { + RECORD = 0; // 通用数据记录 + TRANSACTION = 1; // 交易 + CONTRACT_CREATION = 2; // 合约创建 + CONTRACT_INVOCATION = 3; // 合约调用 +} diff --git a/gen.bat b/gen.bat new file mode 100644 index 0000000..de91e08 --- /dev/null +++ b/gen.bat @@ -0,0 +1,2 @@ +mkdir go +protoc -I=. --go_out=go tx_ledger.proto ac_chain.proto diff --git a/gen.sh b/gen.sh new file mode 100644 index 0000000..de91e08 --- /dev/null +++ b/gen.sh @@ -0,0 +1,2 @@ +mkdir go +protoc -I=. --go_out=go tx_ledger.proto ac_chain.proto diff --git a/tx_ledger.proto b/tx_ledger.proto new file mode 100644 index 0000000..ee646ab --- /dev/null +++ b/tx_ledger.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; +package api; + +import "common.proto"; + +service TxLedger { + rpc CreateLedger (CreateLedgerRequest) returns (CreateLedgerResponse); + rpc GetLedgers (GetLedgersRequest) returns (GetLedgersResponse); + rpc SendMessage (SendMessageRequest) returns (SendMessageResponse); +} + +message CreateLedgerRequest { + string name = 1; +} +message CreateLedgerResponse { + bool ok = 1; +} + +message GetLedgersRequest { +} +message GetLedgersResponse { + repeated string ledgers = 1; +} + +message SendMessageRequest { + string ledger = 1; + message Message { + MessageType type = 1; + bytes from = 2; + bytes to = 3; + bytes data = 4; + } + Message message = 2; +} +message SendMessageResponse { + bytes hash = 1; +}