syntax = "proto3";

package sigchain;

enum SigAlgo {
  SIGNATURE = 0;
  VRF       = 1;
}

message SigChainElem {
  bytes id                  = 1;
  bytes next_pubkey         = 2;
  bool mining               = 3;
  bytes signature           = 4;
  SigAlgo sig_algo          = 5;
  bytes vrf                 = 6;
  bytes proof               = 7;
}

message SigChain {
  uint32 nonce                = 1;
  uint32 data_size            = 2;
  bytes block_hash            = 3;
  bytes src_id                = 4;
  bytes src_pubkey            = 5;
  bytes dest_id               = 6;
  bytes dest_pubkey           = 7;
  repeated SigChainElem elems = 8;
}
