github.com/turingchain2020/turingchain@v1.1.21/types/p2p.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: p2p.proto
     3  
     4  package types
     5  
     6  import (
     7  	context "context"
     8  	fmt "fmt"
     9  	math "math"
    10  
    11  	proto "github.com/golang/protobuf/proto"
    12  	grpc "google.golang.org/grpc"
    13  	codes "google.golang.org/grpc/codes"
    14  	status "google.golang.org/grpc/status"
    15  )
    16  
    17  // Reference imports to suppress errors if they are not otherwise used.
    18  var _ = proto.Marshal
    19  var _ = fmt.Errorf
    20  var _ = math.Inf
    21  
    22  // This is a compile-time assertion to ensure that this generated file
    23  // is compatible with the proto package it is being compiled against.
    24  // A compilation error at this line likely means your copy of the
    25  // proto package needs to be updated.
    26  const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
    27  
    28  //*
    29  // 请求获取远程节点的节点信息
    30  type P2PGetPeerInfo struct {
    31  	/// p2p版本
    32  	Version              int32    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
    33  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    34  	XXX_unrecognized     []byte   `json:"-"`
    35  	XXX_sizecache        int32    `json:"-"`
    36  }
    37  
    38  func (m *P2PGetPeerInfo) Reset()         { *m = P2PGetPeerInfo{} }
    39  func (m *P2PGetPeerInfo) String() string { return proto.CompactTextString(m) }
    40  func (*P2PGetPeerInfo) ProtoMessage()    {}
    41  func (*P2PGetPeerInfo) Descriptor() ([]byte, []int) {
    42  	return fileDescriptor_e7fdddb109e6467a, []int{0}
    43  }
    44  
    45  func (m *P2PGetPeerInfo) XXX_Unmarshal(b []byte) error {
    46  	return xxx_messageInfo_P2PGetPeerInfo.Unmarshal(m, b)
    47  }
    48  func (m *P2PGetPeerInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    49  	return xxx_messageInfo_P2PGetPeerInfo.Marshal(b, m, deterministic)
    50  }
    51  func (m *P2PGetPeerInfo) XXX_Merge(src proto.Message) {
    52  	xxx_messageInfo_P2PGetPeerInfo.Merge(m, src)
    53  }
    54  func (m *P2PGetPeerInfo) XXX_Size() int {
    55  	return xxx_messageInfo_P2PGetPeerInfo.Size(m)
    56  }
    57  func (m *P2PGetPeerInfo) XXX_DiscardUnknown() {
    58  	xxx_messageInfo_P2PGetPeerInfo.DiscardUnknown(m)
    59  }
    60  
    61  var xxx_messageInfo_P2PGetPeerInfo proto.InternalMessageInfo
    62  
    63  func (m *P2PGetPeerInfo) GetVersion() int32 {
    64  	if m != nil {
    65  		return m.Version
    66  	}
    67  	return 0
    68  }
    69  
    70  //*
    71  // 节点信息
    72  type P2PPeerInfo struct {
    73  	///节点的IP地址
    74  	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
    75  	///节点的外网端口
    76  	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
    77  	///节点的名称
    78  	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
    79  	/// mempool 的大小
    80  	MempoolSize int32 `protobuf:"varint,4,opt,name=mempoolSize,proto3" json:"mempoolSize,omitempty"`
    81  	///节点当前高度头部数据
    82  	Header               *Header  `protobuf:"bytes,5,opt,name=header,proto3" json:"header,omitempty"`
    83  	Version              string   `protobuf:"bytes,6,opt,name=version,proto3" json:"version,omitempty"`
    84  	LocalDBVersion       string   `protobuf:"bytes,7,opt,name=localDBVersion,proto3" json:"localDBVersion,omitempty"`
    85  	StoreDBVersion       string   `protobuf:"bytes,8,opt,name=storeDBVersion,proto3" json:"storeDBVersion,omitempty"`
    86  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    87  	XXX_unrecognized     []byte   `json:"-"`
    88  	XXX_sizecache        int32    `json:"-"`
    89  }
    90  
    91  func (m *P2PPeerInfo) Reset()         { *m = P2PPeerInfo{} }
    92  func (m *P2PPeerInfo) String() string { return proto.CompactTextString(m) }
    93  func (*P2PPeerInfo) ProtoMessage()    {}
    94  func (*P2PPeerInfo) Descriptor() ([]byte, []int) {
    95  	return fileDescriptor_e7fdddb109e6467a, []int{1}
    96  }
    97  
    98  func (m *P2PPeerInfo) XXX_Unmarshal(b []byte) error {
    99  	return xxx_messageInfo_P2PPeerInfo.Unmarshal(m, b)
   100  }
   101  func (m *P2PPeerInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   102  	return xxx_messageInfo_P2PPeerInfo.Marshal(b, m, deterministic)
   103  }
   104  func (m *P2PPeerInfo) XXX_Merge(src proto.Message) {
   105  	xxx_messageInfo_P2PPeerInfo.Merge(m, src)
   106  }
   107  func (m *P2PPeerInfo) XXX_Size() int {
   108  	return xxx_messageInfo_P2PPeerInfo.Size(m)
   109  }
   110  func (m *P2PPeerInfo) XXX_DiscardUnknown() {
   111  	xxx_messageInfo_P2PPeerInfo.DiscardUnknown(m)
   112  }
   113  
   114  var xxx_messageInfo_P2PPeerInfo proto.InternalMessageInfo
   115  
   116  func (m *P2PPeerInfo) GetAddr() string {
   117  	if m != nil {
   118  		return m.Addr
   119  	}
   120  	return ""
   121  }
   122  
   123  func (m *P2PPeerInfo) GetPort() int32 {
   124  	if m != nil {
   125  		return m.Port
   126  	}
   127  	return 0
   128  }
   129  
   130  func (m *P2PPeerInfo) GetName() string {
   131  	if m != nil {
   132  		return m.Name
   133  	}
   134  	return ""
   135  }
   136  
   137  func (m *P2PPeerInfo) GetMempoolSize() int32 {
   138  	if m != nil {
   139  		return m.MempoolSize
   140  	}
   141  	return 0
   142  }
   143  
   144  func (m *P2PPeerInfo) GetHeader() *Header {
   145  	if m != nil {
   146  		return m.Header
   147  	}
   148  	return nil
   149  }
   150  
   151  func (m *P2PPeerInfo) GetVersion() string {
   152  	if m != nil {
   153  		return m.Version
   154  	}
   155  	return ""
   156  }
   157  
   158  func (m *P2PPeerInfo) GetLocalDBVersion() string {
   159  	if m != nil {
   160  		return m.LocalDBVersion
   161  	}
   162  	return ""
   163  }
   164  
   165  func (m *P2PPeerInfo) GetStoreDBVersion() string {
   166  	if m != nil {
   167  		return m.StoreDBVersion
   168  	}
   169  	return ""
   170  }
   171  
   172  //*
   173  // p2p节点间发送版本数据结构
   174  type P2PVersion struct {
   175  	///当前版本
   176  	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
   177  	///服务类型
   178  	Service int64 `protobuf:"varint,2,opt,name=service,proto3" json:"service,omitempty"`
   179  	///时间戳
   180  	Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   181  	///数据包的目的地址
   182  	AddrRecv string `protobuf:"bytes,4,opt,name=addrRecv,proto3" json:"addrRecv,omitempty"`
   183  	///数据发送的源地址
   184  	AddrFrom string `protobuf:"bytes,5,opt,name=addrFrom,proto3" json:"addrFrom,omitempty"`
   185  	///随机数
   186  	Nonce int64 `protobuf:"varint,6,opt,name=nonce,proto3" json:"nonce,omitempty"`
   187  	///用户代理
   188  	UserAgent string `protobuf:"bytes,7,opt,name=userAgent,proto3" json:"userAgent,omitempty"`
   189  	///当前节点的高度
   190  	StartHeight          int64    `protobuf:"varint,8,opt,name=startHeight,proto3" json:"startHeight,omitempty"`
   191  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   192  	XXX_unrecognized     []byte   `json:"-"`
   193  	XXX_sizecache        int32    `json:"-"`
   194  }
   195  
   196  func (m *P2PVersion) Reset()         { *m = P2PVersion{} }
   197  func (m *P2PVersion) String() string { return proto.CompactTextString(m) }
   198  func (*P2PVersion) ProtoMessage()    {}
   199  func (*P2PVersion) Descriptor() ([]byte, []int) {
   200  	return fileDescriptor_e7fdddb109e6467a, []int{2}
   201  }
   202  
   203  func (m *P2PVersion) XXX_Unmarshal(b []byte) error {
   204  	return xxx_messageInfo_P2PVersion.Unmarshal(m, b)
   205  }
   206  func (m *P2PVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   207  	return xxx_messageInfo_P2PVersion.Marshal(b, m, deterministic)
   208  }
   209  func (m *P2PVersion) XXX_Merge(src proto.Message) {
   210  	xxx_messageInfo_P2PVersion.Merge(m, src)
   211  }
   212  func (m *P2PVersion) XXX_Size() int {
   213  	return xxx_messageInfo_P2PVersion.Size(m)
   214  }
   215  func (m *P2PVersion) XXX_DiscardUnknown() {
   216  	xxx_messageInfo_P2PVersion.DiscardUnknown(m)
   217  }
   218  
   219  var xxx_messageInfo_P2PVersion proto.InternalMessageInfo
   220  
   221  func (m *P2PVersion) GetVersion() int32 {
   222  	if m != nil {
   223  		return m.Version
   224  	}
   225  	return 0
   226  }
   227  
   228  func (m *P2PVersion) GetService() int64 {
   229  	if m != nil {
   230  		return m.Service
   231  	}
   232  	return 0
   233  }
   234  
   235  func (m *P2PVersion) GetTimestamp() int64 {
   236  	if m != nil {
   237  		return m.Timestamp
   238  	}
   239  	return 0
   240  }
   241  
   242  func (m *P2PVersion) GetAddrRecv() string {
   243  	if m != nil {
   244  		return m.AddrRecv
   245  	}
   246  	return ""
   247  }
   248  
   249  func (m *P2PVersion) GetAddrFrom() string {
   250  	if m != nil {
   251  		return m.AddrFrom
   252  	}
   253  	return ""
   254  }
   255  
   256  func (m *P2PVersion) GetNonce() int64 {
   257  	if m != nil {
   258  		return m.Nonce
   259  	}
   260  	return 0
   261  }
   262  
   263  func (m *P2PVersion) GetUserAgent() string {
   264  	if m != nil {
   265  		return m.UserAgent
   266  	}
   267  	return ""
   268  }
   269  
   270  func (m *P2PVersion) GetStartHeight() int64 {
   271  	if m != nil {
   272  		return m.StartHeight
   273  	}
   274  	return 0
   275  }
   276  
   277  //*
   278  // P2P 版本返回
   279  type P2PVerAck struct {
   280  	Version              int32    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
   281  	Service              int64    `protobuf:"varint,2,opt,name=service,proto3" json:"service,omitempty"`
   282  	Nonce                int64    `protobuf:"varint,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
   283  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   284  	XXX_unrecognized     []byte   `json:"-"`
   285  	XXX_sizecache        int32    `json:"-"`
   286  }
   287  
   288  func (m *P2PVerAck) Reset()         { *m = P2PVerAck{} }
   289  func (m *P2PVerAck) String() string { return proto.CompactTextString(m) }
   290  func (*P2PVerAck) ProtoMessage()    {}
   291  func (*P2PVerAck) Descriptor() ([]byte, []int) {
   292  	return fileDescriptor_e7fdddb109e6467a, []int{3}
   293  }
   294  
   295  func (m *P2PVerAck) XXX_Unmarshal(b []byte) error {
   296  	return xxx_messageInfo_P2PVerAck.Unmarshal(m, b)
   297  }
   298  func (m *P2PVerAck) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   299  	return xxx_messageInfo_P2PVerAck.Marshal(b, m, deterministic)
   300  }
   301  func (m *P2PVerAck) XXX_Merge(src proto.Message) {
   302  	xxx_messageInfo_P2PVerAck.Merge(m, src)
   303  }
   304  func (m *P2PVerAck) XXX_Size() int {
   305  	return xxx_messageInfo_P2PVerAck.Size(m)
   306  }
   307  func (m *P2PVerAck) XXX_DiscardUnknown() {
   308  	xxx_messageInfo_P2PVerAck.DiscardUnknown(m)
   309  }
   310  
   311  var xxx_messageInfo_P2PVerAck proto.InternalMessageInfo
   312  
   313  func (m *P2PVerAck) GetVersion() int32 {
   314  	if m != nil {
   315  		return m.Version
   316  	}
   317  	return 0
   318  }
   319  
   320  func (m *P2PVerAck) GetService() int64 {
   321  	if m != nil {
   322  		return m.Service
   323  	}
   324  	return 0
   325  }
   326  
   327  func (m *P2PVerAck) GetNonce() int64 {
   328  	if m != nil {
   329  		return m.Nonce
   330  	}
   331  	return 0
   332  }
   333  
   334  //*
   335  // P2P 心跳包
   336  type P2PPing struct {
   337  	///随机数
   338  	Nonce int64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
   339  	///节点的外网地址
   340  	Addr string `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
   341  	///节点的外网端口
   342  	Port int32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
   343  	//签名
   344  	Sign                 *Signature `protobuf:"bytes,4,opt,name=sign,proto3" json:"sign,omitempty"`
   345  	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
   346  	XXX_unrecognized     []byte     `json:"-"`
   347  	XXX_sizecache        int32      `json:"-"`
   348  }
   349  
   350  func (m *P2PPing) Reset()         { *m = P2PPing{} }
   351  func (m *P2PPing) String() string { return proto.CompactTextString(m) }
   352  func (*P2PPing) ProtoMessage()    {}
   353  func (*P2PPing) Descriptor() ([]byte, []int) {
   354  	return fileDescriptor_e7fdddb109e6467a, []int{4}
   355  }
   356  
   357  func (m *P2PPing) XXX_Unmarshal(b []byte) error {
   358  	return xxx_messageInfo_P2PPing.Unmarshal(m, b)
   359  }
   360  func (m *P2PPing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   361  	return xxx_messageInfo_P2PPing.Marshal(b, m, deterministic)
   362  }
   363  func (m *P2PPing) XXX_Merge(src proto.Message) {
   364  	xxx_messageInfo_P2PPing.Merge(m, src)
   365  }
   366  func (m *P2PPing) XXX_Size() int {
   367  	return xxx_messageInfo_P2PPing.Size(m)
   368  }
   369  func (m *P2PPing) XXX_DiscardUnknown() {
   370  	xxx_messageInfo_P2PPing.DiscardUnknown(m)
   371  }
   372  
   373  var xxx_messageInfo_P2PPing proto.InternalMessageInfo
   374  
   375  func (m *P2PPing) GetNonce() int64 {
   376  	if m != nil {
   377  		return m.Nonce
   378  	}
   379  	return 0
   380  }
   381  
   382  func (m *P2PPing) GetAddr() string {
   383  	if m != nil {
   384  		return m.Addr
   385  	}
   386  	return ""
   387  }
   388  
   389  func (m *P2PPing) GetPort() int32 {
   390  	if m != nil {
   391  		return m.Port
   392  	}
   393  	return 0
   394  }
   395  
   396  func (m *P2PPing) GetSign() *Signature {
   397  	if m != nil {
   398  		return m.Sign
   399  	}
   400  	return nil
   401  }
   402  
   403  //*
   404  // 心跳返回包
   405  type P2PPong struct {
   406  	Nonce                int64    `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
   407  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   408  	XXX_unrecognized     []byte   `json:"-"`
   409  	XXX_sizecache        int32    `json:"-"`
   410  }
   411  
   412  func (m *P2PPong) Reset()         { *m = P2PPong{} }
   413  func (m *P2PPong) String() string { return proto.CompactTextString(m) }
   414  func (*P2PPong) ProtoMessage()    {}
   415  func (*P2PPong) Descriptor() ([]byte, []int) {
   416  	return fileDescriptor_e7fdddb109e6467a, []int{5}
   417  }
   418  
   419  func (m *P2PPong) XXX_Unmarshal(b []byte) error {
   420  	return xxx_messageInfo_P2PPong.Unmarshal(m, b)
   421  }
   422  func (m *P2PPong) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   423  	return xxx_messageInfo_P2PPong.Marshal(b, m, deterministic)
   424  }
   425  func (m *P2PPong) XXX_Merge(src proto.Message) {
   426  	xxx_messageInfo_P2PPong.Merge(m, src)
   427  }
   428  func (m *P2PPong) XXX_Size() int {
   429  	return xxx_messageInfo_P2PPong.Size(m)
   430  }
   431  func (m *P2PPong) XXX_DiscardUnknown() {
   432  	xxx_messageInfo_P2PPong.DiscardUnknown(m)
   433  }
   434  
   435  var xxx_messageInfo_P2PPong proto.InternalMessageInfo
   436  
   437  func (m *P2PPong) GetNonce() int64 {
   438  	if m != nil {
   439  		return m.Nonce
   440  	}
   441  	return 0
   442  }
   443  
   444  //*
   445  // 获取对方节点所连接的其他节点地址的请求包
   446  type P2PGetAddr struct {
   447  	Nonce                int64    `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
   448  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   449  	XXX_unrecognized     []byte   `json:"-"`
   450  	XXX_sizecache        int32    `json:"-"`
   451  }
   452  
   453  func (m *P2PGetAddr) Reset()         { *m = P2PGetAddr{} }
   454  func (m *P2PGetAddr) String() string { return proto.CompactTextString(m) }
   455  func (*P2PGetAddr) ProtoMessage()    {}
   456  func (*P2PGetAddr) Descriptor() ([]byte, []int) {
   457  	return fileDescriptor_e7fdddb109e6467a, []int{6}
   458  }
   459  
   460  func (m *P2PGetAddr) XXX_Unmarshal(b []byte) error {
   461  	return xxx_messageInfo_P2PGetAddr.Unmarshal(m, b)
   462  }
   463  func (m *P2PGetAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   464  	return xxx_messageInfo_P2PGetAddr.Marshal(b, m, deterministic)
   465  }
   466  func (m *P2PGetAddr) XXX_Merge(src proto.Message) {
   467  	xxx_messageInfo_P2PGetAddr.Merge(m, src)
   468  }
   469  func (m *P2PGetAddr) XXX_Size() int {
   470  	return xxx_messageInfo_P2PGetAddr.Size(m)
   471  }
   472  func (m *P2PGetAddr) XXX_DiscardUnknown() {
   473  	xxx_messageInfo_P2PGetAddr.DiscardUnknown(m)
   474  }
   475  
   476  var xxx_messageInfo_P2PGetAddr proto.InternalMessageInfo
   477  
   478  func (m *P2PGetAddr) GetNonce() int64 {
   479  	if m != nil {
   480  		return m.Nonce
   481  	}
   482  	return 0
   483  }
   484  
   485  //*
   486  // 返回请求地址列表的社保
   487  type P2PAddr struct {
   488  	Nonce int64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
   489  	///对方节点返回的其他节点信息
   490  	Addrlist             []string `protobuf:"bytes,2,rep,name=addrlist,proto3" json:"addrlist,omitempty"`
   491  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   492  	XXX_unrecognized     []byte   `json:"-"`
   493  	XXX_sizecache        int32    `json:"-"`
   494  }
   495  
   496  func (m *P2PAddr) Reset()         { *m = P2PAddr{} }
   497  func (m *P2PAddr) String() string { return proto.CompactTextString(m) }
   498  func (*P2PAddr) ProtoMessage()    {}
   499  func (*P2PAddr) Descriptor() ([]byte, []int) {
   500  	return fileDescriptor_e7fdddb109e6467a, []int{7}
   501  }
   502  
   503  func (m *P2PAddr) XXX_Unmarshal(b []byte) error {
   504  	return xxx_messageInfo_P2PAddr.Unmarshal(m, b)
   505  }
   506  func (m *P2PAddr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   507  	return xxx_messageInfo_P2PAddr.Marshal(b, m, deterministic)
   508  }
   509  func (m *P2PAddr) XXX_Merge(src proto.Message) {
   510  	xxx_messageInfo_P2PAddr.Merge(m, src)
   511  }
   512  func (m *P2PAddr) XXX_Size() int {
   513  	return xxx_messageInfo_P2PAddr.Size(m)
   514  }
   515  func (m *P2PAddr) XXX_DiscardUnknown() {
   516  	xxx_messageInfo_P2PAddr.DiscardUnknown(m)
   517  }
   518  
   519  var xxx_messageInfo_P2PAddr proto.InternalMessageInfo
   520  
   521  func (m *P2PAddr) GetNonce() int64 {
   522  	if m != nil {
   523  		return m.Nonce
   524  	}
   525  	return 0
   526  }
   527  
   528  func (m *P2PAddr) GetAddrlist() []string {
   529  	if m != nil {
   530  		return m.Addrlist
   531  	}
   532  	return nil
   533  }
   534  
   535  type P2PAddrList struct {
   536  	Nonce                int64          `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"`
   537  	Peerinfo             []*P2PPeerInfo `protobuf:"bytes,2,rep,name=peerinfo,proto3" json:"peerinfo,omitempty"`
   538  	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   539  	XXX_unrecognized     []byte         `json:"-"`
   540  	XXX_sizecache        int32          `json:"-"`
   541  }
   542  
   543  func (m *P2PAddrList) Reset()         { *m = P2PAddrList{} }
   544  func (m *P2PAddrList) String() string { return proto.CompactTextString(m) }
   545  func (*P2PAddrList) ProtoMessage()    {}
   546  func (*P2PAddrList) Descriptor() ([]byte, []int) {
   547  	return fileDescriptor_e7fdddb109e6467a, []int{8}
   548  }
   549  
   550  func (m *P2PAddrList) XXX_Unmarshal(b []byte) error {
   551  	return xxx_messageInfo_P2PAddrList.Unmarshal(m, b)
   552  }
   553  func (m *P2PAddrList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   554  	return xxx_messageInfo_P2PAddrList.Marshal(b, m, deterministic)
   555  }
   556  func (m *P2PAddrList) XXX_Merge(src proto.Message) {
   557  	xxx_messageInfo_P2PAddrList.Merge(m, src)
   558  }
   559  func (m *P2PAddrList) XXX_Size() int {
   560  	return xxx_messageInfo_P2PAddrList.Size(m)
   561  }
   562  func (m *P2PAddrList) XXX_DiscardUnknown() {
   563  	xxx_messageInfo_P2PAddrList.DiscardUnknown(m)
   564  }
   565  
   566  var xxx_messageInfo_P2PAddrList proto.InternalMessageInfo
   567  
   568  func (m *P2PAddrList) GetNonce() int64 {
   569  	if m != nil {
   570  		return m.Nonce
   571  	}
   572  	return 0
   573  }
   574  
   575  func (m *P2PAddrList) GetPeerinfo() []*P2PPeerInfo {
   576  	if m != nil {
   577  		return m.Peerinfo
   578  	}
   579  	return nil
   580  }
   581  
   582  //*
   583  // 节点外网信息
   584  type P2PExternalInfo struct {
   585  	///节点的外网地址
   586  	Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
   587  	//节点是否在外网
   588  	Isoutside            bool     `protobuf:"varint,2,opt,name=isoutside,proto3" json:"isoutside,omitempty"`
   589  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   590  	XXX_unrecognized     []byte   `json:"-"`
   591  	XXX_sizecache        int32    `json:"-"`
   592  }
   593  
   594  func (m *P2PExternalInfo) Reset()         { *m = P2PExternalInfo{} }
   595  func (m *P2PExternalInfo) String() string { return proto.CompactTextString(m) }
   596  func (*P2PExternalInfo) ProtoMessage()    {}
   597  func (*P2PExternalInfo) Descriptor() ([]byte, []int) {
   598  	return fileDescriptor_e7fdddb109e6467a, []int{9}
   599  }
   600  
   601  func (m *P2PExternalInfo) XXX_Unmarshal(b []byte) error {
   602  	return xxx_messageInfo_P2PExternalInfo.Unmarshal(m, b)
   603  }
   604  func (m *P2PExternalInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   605  	return xxx_messageInfo_P2PExternalInfo.Marshal(b, m, deterministic)
   606  }
   607  func (m *P2PExternalInfo) XXX_Merge(src proto.Message) {
   608  	xxx_messageInfo_P2PExternalInfo.Merge(m, src)
   609  }
   610  func (m *P2PExternalInfo) XXX_Size() int {
   611  	return xxx_messageInfo_P2PExternalInfo.Size(m)
   612  }
   613  func (m *P2PExternalInfo) XXX_DiscardUnknown() {
   614  	xxx_messageInfo_P2PExternalInfo.DiscardUnknown(m)
   615  }
   616  
   617  var xxx_messageInfo_P2PExternalInfo proto.InternalMessageInfo
   618  
   619  func (m *P2PExternalInfo) GetAddr() string {
   620  	if m != nil {
   621  		return m.Addr
   622  	}
   623  	return ""
   624  }
   625  
   626  func (m *P2PExternalInfo) GetIsoutside() bool {
   627  	if m != nil {
   628  		return m.Isoutside
   629  	}
   630  	return false
   631  }
   632  
   633  //*
   634  // 获取区间区块
   635  type P2PGetBlocks struct {
   636  	Version              int32    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
   637  	StartHeight          int64    `protobuf:"varint,2,opt,name=startHeight,proto3" json:"startHeight,omitempty"`
   638  	EndHeight            int64    `protobuf:"varint,3,opt,name=endHeight,proto3" json:"endHeight,omitempty"`
   639  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   640  	XXX_unrecognized     []byte   `json:"-"`
   641  	XXX_sizecache        int32    `json:"-"`
   642  }
   643  
   644  func (m *P2PGetBlocks) Reset()         { *m = P2PGetBlocks{} }
   645  func (m *P2PGetBlocks) String() string { return proto.CompactTextString(m) }
   646  func (*P2PGetBlocks) ProtoMessage()    {}
   647  func (*P2PGetBlocks) Descriptor() ([]byte, []int) {
   648  	return fileDescriptor_e7fdddb109e6467a, []int{10}
   649  }
   650  
   651  func (m *P2PGetBlocks) XXX_Unmarshal(b []byte) error {
   652  	return xxx_messageInfo_P2PGetBlocks.Unmarshal(m, b)
   653  }
   654  func (m *P2PGetBlocks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   655  	return xxx_messageInfo_P2PGetBlocks.Marshal(b, m, deterministic)
   656  }
   657  func (m *P2PGetBlocks) XXX_Merge(src proto.Message) {
   658  	xxx_messageInfo_P2PGetBlocks.Merge(m, src)
   659  }
   660  func (m *P2PGetBlocks) XXX_Size() int {
   661  	return xxx_messageInfo_P2PGetBlocks.Size(m)
   662  }
   663  func (m *P2PGetBlocks) XXX_DiscardUnknown() {
   664  	xxx_messageInfo_P2PGetBlocks.DiscardUnknown(m)
   665  }
   666  
   667  var xxx_messageInfo_P2PGetBlocks proto.InternalMessageInfo
   668  
   669  func (m *P2PGetBlocks) GetVersion() int32 {
   670  	if m != nil {
   671  		return m.Version
   672  	}
   673  	return 0
   674  }
   675  
   676  func (m *P2PGetBlocks) GetStartHeight() int64 {
   677  	if m != nil {
   678  		return m.StartHeight
   679  	}
   680  	return 0
   681  }
   682  
   683  func (m *P2PGetBlocks) GetEndHeight() int64 {
   684  	if m != nil {
   685  		return m.EndHeight
   686  	}
   687  	return 0
   688  }
   689  
   690  //*
   691  // 获取mempool
   692  type P2PGetMempool struct {
   693  	Version              int32    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
   694  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   695  	XXX_unrecognized     []byte   `json:"-"`
   696  	XXX_sizecache        int32    `json:"-"`
   697  }
   698  
   699  func (m *P2PGetMempool) Reset()         { *m = P2PGetMempool{} }
   700  func (m *P2PGetMempool) String() string { return proto.CompactTextString(m) }
   701  func (*P2PGetMempool) ProtoMessage()    {}
   702  func (*P2PGetMempool) Descriptor() ([]byte, []int) {
   703  	return fileDescriptor_e7fdddb109e6467a, []int{11}
   704  }
   705  
   706  func (m *P2PGetMempool) XXX_Unmarshal(b []byte) error {
   707  	return xxx_messageInfo_P2PGetMempool.Unmarshal(m, b)
   708  }
   709  func (m *P2PGetMempool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   710  	return xxx_messageInfo_P2PGetMempool.Marshal(b, m, deterministic)
   711  }
   712  func (m *P2PGetMempool) XXX_Merge(src proto.Message) {
   713  	xxx_messageInfo_P2PGetMempool.Merge(m, src)
   714  }
   715  func (m *P2PGetMempool) XXX_Size() int {
   716  	return xxx_messageInfo_P2PGetMempool.Size(m)
   717  }
   718  func (m *P2PGetMempool) XXX_DiscardUnknown() {
   719  	xxx_messageInfo_P2PGetMempool.DiscardUnknown(m)
   720  }
   721  
   722  var xxx_messageInfo_P2PGetMempool proto.InternalMessageInfo
   723  
   724  func (m *P2PGetMempool) GetVersion() int32 {
   725  	if m != nil {
   726  		return m.Version
   727  	}
   728  	return 0
   729  }
   730  
   731  type P2PInv struct {
   732  	Invs                 []*Inventory `protobuf:"bytes,1,rep,name=invs,proto3" json:"invs,omitempty"`
   733  	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   734  	XXX_unrecognized     []byte       `json:"-"`
   735  	XXX_sizecache        int32        `json:"-"`
   736  }
   737  
   738  func (m *P2PInv) Reset()         { *m = P2PInv{} }
   739  func (m *P2PInv) String() string { return proto.CompactTextString(m) }
   740  func (*P2PInv) ProtoMessage()    {}
   741  func (*P2PInv) Descriptor() ([]byte, []int) {
   742  	return fileDescriptor_e7fdddb109e6467a, []int{12}
   743  }
   744  
   745  func (m *P2PInv) XXX_Unmarshal(b []byte) error {
   746  	return xxx_messageInfo_P2PInv.Unmarshal(m, b)
   747  }
   748  func (m *P2PInv) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   749  	return xxx_messageInfo_P2PInv.Marshal(b, m, deterministic)
   750  }
   751  func (m *P2PInv) XXX_Merge(src proto.Message) {
   752  	xxx_messageInfo_P2PInv.Merge(m, src)
   753  }
   754  func (m *P2PInv) XXX_Size() int {
   755  	return xxx_messageInfo_P2PInv.Size(m)
   756  }
   757  func (m *P2PInv) XXX_DiscardUnknown() {
   758  	xxx_messageInfo_P2PInv.DiscardUnknown(m)
   759  }
   760  
   761  var xxx_messageInfo_P2PInv proto.InternalMessageInfo
   762  
   763  func (m *P2PInv) GetInvs() []*Inventory {
   764  	if m != nil {
   765  		return m.Invs
   766  	}
   767  	return nil
   768  }
   769  
   770  // ty=MSG_TX MSG_BLOCK
   771  type Inventory struct {
   772  	//类型,数据类型,MSG_TX MSG_BLOCK
   773  	Ty int32 `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
   774  	///哈希
   775  	Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
   776  	//高度
   777  	Height               int64    `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
   778  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   779  	XXX_unrecognized     []byte   `json:"-"`
   780  	XXX_sizecache        int32    `json:"-"`
   781  }
   782  
   783  func (m *Inventory) Reset()         { *m = Inventory{} }
   784  func (m *Inventory) String() string { return proto.CompactTextString(m) }
   785  func (*Inventory) ProtoMessage()    {}
   786  func (*Inventory) Descriptor() ([]byte, []int) {
   787  	return fileDescriptor_e7fdddb109e6467a, []int{13}
   788  }
   789  
   790  func (m *Inventory) XXX_Unmarshal(b []byte) error {
   791  	return xxx_messageInfo_Inventory.Unmarshal(m, b)
   792  }
   793  func (m *Inventory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   794  	return xxx_messageInfo_Inventory.Marshal(b, m, deterministic)
   795  }
   796  func (m *Inventory) XXX_Merge(src proto.Message) {
   797  	xxx_messageInfo_Inventory.Merge(m, src)
   798  }
   799  func (m *Inventory) XXX_Size() int {
   800  	return xxx_messageInfo_Inventory.Size(m)
   801  }
   802  func (m *Inventory) XXX_DiscardUnknown() {
   803  	xxx_messageInfo_Inventory.DiscardUnknown(m)
   804  }
   805  
   806  var xxx_messageInfo_Inventory proto.InternalMessageInfo
   807  
   808  func (m *Inventory) GetTy() int32 {
   809  	if m != nil {
   810  		return m.Ty
   811  	}
   812  	return 0
   813  }
   814  
   815  func (m *Inventory) GetHash() []byte {
   816  	if m != nil {
   817  		return m.Hash
   818  	}
   819  	return nil
   820  }
   821  
   822  func (m *Inventory) GetHeight() int64 {
   823  	if m != nil {
   824  		return m.Height
   825  	}
   826  	return 0
   827  }
   828  
   829  //*
   830  // 通过invs 下载数据
   831  type P2PGetData struct {
   832  	/// p2p版本
   833  	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
   834  	/// invs 数组
   835  	Invs                 []*Inventory `protobuf:"bytes,2,rep,name=invs,proto3" json:"invs,omitempty"`
   836  	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   837  	XXX_unrecognized     []byte       `json:"-"`
   838  	XXX_sizecache        int32        `json:"-"`
   839  }
   840  
   841  func (m *P2PGetData) Reset()         { *m = P2PGetData{} }
   842  func (m *P2PGetData) String() string { return proto.CompactTextString(m) }
   843  func (*P2PGetData) ProtoMessage()    {}
   844  func (*P2PGetData) Descriptor() ([]byte, []int) {
   845  	return fileDescriptor_e7fdddb109e6467a, []int{14}
   846  }
   847  
   848  func (m *P2PGetData) XXX_Unmarshal(b []byte) error {
   849  	return xxx_messageInfo_P2PGetData.Unmarshal(m, b)
   850  }
   851  func (m *P2PGetData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   852  	return xxx_messageInfo_P2PGetData.Marshal(b, m, deterministic)
   853  }
   854  func (m *P2PGetData) XXX_Merge(src proto.Message) {
   855  	xxx_messageInfo_P2PGetData.Merge(m, src)
   856  }
   857  func (m *P2PGetData) XXX_Size() int {
   858  	return xxx_messageInfo_P2PGetData.Size(m)
   859  }
   860  func (m *P2PGetData) XXX_DiscardUnknown() {
   861  	xxx_messageInfo_P2PGetData.DiscardUnknown(m)
   862  }
   863  
   864  var xxx_messageInfo_P2PGetData proto.InternalMessageInfo
   865  
   866  func (m *P2PGetData) GetVersion() int32 {
   867  	if m != nil {
   868  		return m.Version
   869  	}
   870  	return 0
   871  }
   872  
   873  func (m *P2PGetData) GetInvs() []*Inventory {
   874  	if m != nil {
   875  		return m.Invs
   876  	}
   877  	return nil
   878  }
   879  
   880  //
   881  type P2PRoute struct {
   882  	TTL                  int32    `protobuf:"varint,1,opt,name=TTL,proto3" json:"TTL,omitempty"`
   883  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   884  	XXX_unrecognized     []byte   `json:"-"`
   885  	XXX_sizecache        int32    `json:"-"`
   886  }
   887  
   888  func (m *P2PRoute) Reset()         { *m = P2PRoute{} }
   889  func (m *P2PRoute) String() string { return proto.CompactTextString(m) }
   890  func (*P2PRoute) ProtoMessage()    {}
   891  func (*P2PRoute) Descriptor() ([]byte, []int) {
   892  	return fileDescriptor_e7fdddb109e6467a, []int{15}
   893  }
   894  
   895  func (m *P2PRoute) XXX_Unmarshal(b []byte) error {
   896  	return xxx_messageInfo_P2PRoute.Unmarshal(m, b)
   897  }
   898  func (m *P2PRoute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   899  	return xxx_messageInfo_P2PRoute.Marshal(b, m, deterministic)
   900  }
   901  func (m *P2PRoute) XXX_Merge(src proto.Message) {
   902  	xxx_messageInfo_P2PRoute.Merge(m, src)
   903  }
   904  func (m *P2PRoute) XXX_Size() int {
   905  	return xxx_messageInfo_P2PRoute.Size(m)
   906  }
   907  func (m *P2PRoute) XXX_DiscardUnknown() {
   908  	xxx_messageInfo_P2PRoute.DiscardUnknown(m)
   909  }
   910  
   911  var xxx_messageInfo_P2PRoute proto.InternalMessageInfo
   912  
   913  func (m *P2PRoute) GetTTL() int32 {
   914  	if m != nil {
   915  		return m.TTL
   916  	}
   917  	return 0
   918  }
   919  
   920  //*
   921  // p2p 发送交易协议
   922  type P2PTx struct {
   923  	Tx                   *Transaction `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"`
   924  	Route                *P2PRoute    `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
   925  	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
   926  	XXX_unrecognized     []byte       `json:"-"`
   927  	XXX_sizecache        int32        `json:"-"`
   928  }
   929  
   930  func (m *P2PTx) Reset()         { *m = P2PTx{} }
   931  func (m *P2PTx) String() string { return proto.CompactTextString(m) }
   932  func (*P2PTx) ProtoMessage()    {}
   933  func (*P2PTx) Descriptor() ([]byte, []int) {
   934  	return fileDescriptor_e7fdddb109e6467a, []int{16}
   935  }
   936  
   937  func (m *P2PTx) XXX_Unmarshal(b []byte) error {
   938  	return xxx_messageInfo_P2PTx.Unmarshal(m, b)
   939  }
   940  func (m *P2PTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   941  	return xxx_messageInfo_P2PTx.Marshal(b, m, deterministic)
   942  }
   943  func (m *P2PTx) XXX_Merge(src proto.Message) {
   944  	xxx_messageInfo_P2PTx.Merge(m, src)
   945  }
   946  func (m *P2PTx) XXX_Size() int {
   947  	return xxx_messageInfo_P2PTx.Size(m)
   948  }
   949  func (m *P2PTx) XXX_DiscardUnknown() {
   950  	xxx_messageInfo_P2PTx.DiscardUnknown(m)
   951  }
   952  
   953  var xxx_messageInfo_P2PTx proto.InternalMessageInfo
   954  
   955  func (m *P2PTx) GetTx() *Transaction {
   956  	if m != nil {
   957  		return m.Tx
   958  	}
   959  	return nil
   960  }
   961  
   962  func (m *P2PTx) GetRoute() *P2PRoute {
   963  	if m != nil {
   964  		return m.Route
   965  	}
   966  	return nil
   967  }
   968  
   969  //*
   970  // p2p 发送区块协议
   971  type P2PBlock struct {
   972  	Block                *Block   `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
   973  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   974  	XXX_unrecognized     []byte   `json:"-"`
   975  	XXX_sizecache        int32    `json:"-"`
   976  }
   977  
   978  func (m *P2PBlock) Reset()         { *m = P2PBlock{} }
   979  func (m *P2PBlock) String() string { return proto.CompactTextString(m) }
   980  func (*P2PBlock) ProtoMessage()    {}
   981  func (*P2PBlock) Descriptor() ([]byte, []int) {
   982  	return fileDescriptor_e7fdddb109e6467a, []int{17}
   983  }
   984  
   985  func (m *P2PBlock) XXX_Unmarshal(b []byte) error {
   986  	return xxx_messageInfo_P2PBlock.Unmarshal(m, b)
   987  }
   988  func (m *P2PBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   989  	return xxx_messageInfo_P2PBlock.Marshal(b, m, deterministic)
   990  }
   991  func (m *P2PBlock) XXX_Merge(src proto.Message) {
   992  	xxx_messageInfo_P2PBlock.Merge(m, src)
   993  }
   994  func (m *P2PBlock) XXX_Size() int {
   995  	return xxx_messageInfo_P2PBlock.Size(m)
   996  }
   997  func (m *P2PBlock) XXX_DiscardUnknown() {
   998  	xxx_messageInfo_P2PBlock.DiscardUnknown(m)
   999  }
  1000  
  1001  var xxx_messageInfo_P2PBlock proto.InternalMessageInfo
  1002  
  1003  func (m *P2PBlock) GetBlock() *Block {
  1004  	if m != nil {
  1005  		return m.Block
  1006  	}
  1007  	return nil
  1008  }
  1009  
  1010  //*
  1011  // p2p 轻量级区块, 广播交易短哈希列表
  1012  type LightBlock struct {
  1013  	Size                 int64        `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"`
  1014  	Header               *Header      `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"`
  1015  	MinerTx              *Transaction `protobuf:"bytes,3,opt,name=minerTx,proto3" json:"minerTx,omitempty"`
  1016  	STxHashes            []string     `protobuf:"bytes,4,rep,name=sTxHashes,proto3" json:"sTxHashes,omitempty"`
  1017  	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
  1018  	XXX_unrecognized     []byte       `json:"-"`
  1019  	XXX_sizecache        int32        `json:"-"`
  1020  }
  1021  
  1022  func (m *LightBlock) Reset()         { *m = LightBlock{} }
  1023  func (m *LightBlock) String() string { return proto.CompactTextString(m) }
  1024  func (*LightBlock) ProtoMessage()    {}
  1025  func (*LightBlock) Descriptor() ([]byte, []int) {
  1026  	return fileDescriptor_e7fdddb109e6467a, []int{18}
  1027  }
  1028  
  1029  func (m *LightBlock) XXX_Unmarshal(b []byte) error {
  1030  	return xxx_messageInfo_LightBlock.Unmarshal(m, b)
  1031  }
  1032  func (m *LightBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1033  	return xxx_messageInfo_LightBlock.Marshal(b, m, deterministic)
  1034  }
  1035  func (m *LightBlock) XXX_Merge(src proto.Message) {
  1036  	xxx_messageInfo_LightBlock.Merge(m, src)
  1037  }
  1038  func (m *LightBlock) XXX_Size() int {
  1039  	return xxx_messageInfo_LightBlock.Size(m)
  1040  }
  1041  func (m *LightBlock) XXX_DiscardUnknown() {
  1042  	xxx_messageInfo_LightBlock.DiscardUnknown(m)
  1043  }
  1044  
  1045  var xxx_messageInfo_LightBlock proto.InternalMessageInfo
  1046  
  1047  func (m *LightBlock) GetSize() int64 {
  1048  	if m != nil {
  1049  		return m.Size
  1050  	}
  1051  	return 0
  1052  }
  1053  
  1054  func (m *LightBlock) GetHeader() *Header {
  1055  	if m != nil {
  1056  		return m.Header
  1057  	}
  1058  	return nil
  1059  }
  1060  
  1061  func (m *LightBlock) GetMinerTx() *Transaction {
  1062  	if m != nil {
  1063  		return m.MinerTx
  1064  	}
  1065  	return nil
  1066  }
  1067  
  1068  func (m *LightBlock) GetSTxHashes() []string {
  1069  	if m != nil {
  1070  		return m.STxHashes
  1071  	}
  1072  	return nil
  1073  }
  1074  
  1075  // 轻量级交易广播
  1076  type LightTx struct {
  1077  	TxHash               []byte    `protobuf:"bytes,1,opt,name=txHash,proto3" json:"txHash,omitempty"`
  1078  	Route                *P2PRoute `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
  1079  	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
  1080  	XXX_unrecognized     []byte    `json:"-"`
  1081  	XXX_sizecache        int32     `json:"-"`
  1082  }
  1083  
  1084  func (m *LightTx) Reset()         { *m = LightTx{} }
  1085  func (m *LightTx) String() string { return proto.CompactTextString(m) }
  1086  func (*LightTx) ProtoMessage()    {}
  1087  func (*LightTx) Descriptor() ([]byte, []int) {
  1088  	return fileDescriptor_e7fdddb109e6467a, []int{19}
  1089  }
  1090  
  1091  func (m *LightTx) XXX_Unmarshal(b []byte) error {
  1092  	return xxx_messageInfo_LightTx.Unmarshal(m, b)
  1093  }
  1094  func (m *LightTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1095  	return xxx_messageInfo_LightTx.Marshal(b, m, deterministic)
  1096  }
  1097  func (m *LightTx) XXX_Merge(src proto.Message) {
  1098  	xxx_messageInfo_LightTx.Merge(m, src)
  1099  }
  1100  func (m *LightTx) XXX_Size() int {
  1101  	return xxx_messageInfo_LightTx.Size(m)
  1102  }
  1103  func (m *LightTx) XXX_DiscardUnknown() {
  1104  	xxx_messageInfo_LightTx.DiscardUnknown(m)
  1105  }
  1106  
  1107  var xxx_messageInfo_LightTx proto.InternalMessageInfo
  1108  
  1109  func (m *LightTx) GetTxHash() []byte {
  1110  	if m != nil {
  1111  		return m.TxHash
  1112  	}
  1113  	return nil
  1114  }
  1115  
  1116  func (m *LightTx) GetRoute() *P2PRoute {
  1117  	if m != nil {
  1118  		return m.Route
  1119  	}
  1120  	return nil
  1121  }
  1122  
  1123  // 请求完整交易数据
  1124  type P2PTxReq struct {
  1125  	TxHash               []byte   `protobuf:"bytes,1,opt,name=txHash,proto3" json:"txHash,omitempty"`
  1126  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1127  	XXX_unrecognized     []byte   `json:"-"`
  1128  	XXX_sizecache        int32    `json:"-"`
  1129  }
  1130  
  1131  func (m *P2PTxReq) Reset()         { *m = P2PTxReq{} }
  1132  func (m *P2PTxReq) String() string { return proto.CompactTextString(m) }
  1133  func (*P2PTxReq) ProtoMessage()    {}
  1134  func (*P2PTxReq) Descriptor() ([]byte, []int) {
  1135  	return fileDescriptor_e7fdddb109e6467a, []int{20}
  1136  }
  1137  
  1138  func (m *P2PTxReq) XXX_Unmarshal(b []byte) error {
  1139  	return xxx_messageInfo_P2PTxReq.Unmarshal(m, b)
  1140  }
  1141  func (m *P2PTxReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1142  	return xxx_messageInfo_P2PTxReq.Marshal(b, m, deterministic)
  1143  }
  1144  func (m *P2PTxReq) XXX_Merge(src proto.Message) {
  1145  	xxx_messageInfo_P2PTxReq.Merge(m, src)
  1146  }
  1147  func (m *P2PTxReq) XXX_Size() int {
  1148  	return xxx_messageInfo_P2PTxReq.Size(m)
  1149  }
  1150  func (m *P2PTxReq) XXX_DiscardUnknown() {
  1151  	xxx_messageInfo_P2PTxReq.DiscardUnknown(m)
  1152  }
  1153  
  1154  var xxx_messageInfo_P2PTxReq proto.InternalMessageInfo
  1155  
  1156  func (m *P2PTxReq) GetTxHash() []byte {
  1157  	if m != nil {
  1158  		return m.TxHash
  1159  	}
  1160  	return nil
  1161  }
  1162  
  1163  // 请求区块内交易数据
  1164  type P2PBlockTxReq struct {
  1165  	BlockHash            string   `protobuf:"bytes,1,opt,name=blockHash,proto3" json:"blockHash,omitempty"`
  1166  	TxIndices            []int32  `protobuf:"varint,2,rep,packed,name=txIndices,proto3" json:"txIndices,omitempty"`
  1167  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1168  	XXX_unrecognized     []byte   `json:"-"`
  1169  	XXX_sizecache        int32    `json:"-"`
  1170  }
  1171  
  1172  func (m *P2PBlockTxReq) Reset()         { *m = P2PBlockTxReq{} }
  1173  func (m *P2PBlockTxReq) String() string { return proto.CompactTextString(m) }
  1174  func (*P2PBlockTxReq) ProtoMessage()    {}
  1175  func (*P2PBlockTxReq) Descriptor() ([]byte, []int) {
  1176  	return fileDescriptor_e7fdddb109e6467a, []int{21}
  1177  }
  1178  
  1179  func (m *P2PBlockTxReq) XXX_Unmarshal(b []byte) error {
  1180  	return xxx_messageInfo_P2PBlockTxReq.Unmarshal(m, b)
  1181  }
  1182  func (m *P2PBlockTxReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1183  	return xxx_messageInfo_P2PBlockTxReq.Marshal(b, m, deterministic)
  1184  }
  1185  func (m *P2PBlockTxReq) XXX_Merge(src proto.Message) {
  1186  	xxx_messageInfo_P2PBlockTxReq.Merge(m, src)
  1187  }
  1188  func (m *P2PBlockTxReq) XXX_Size() int {
  1189  	return xxx_messageInfo_P2PBlockTxReq.Size(m)
  1190  }
  1191  func (m *P2PBlockTxReq) XXX_DiscardUnknown() {
  1192  	xxx_messageInfo_P2PBlockTxReq.DiscardUnknown(m)
  1193  }
  1194  
  1195  var xxx_messageInfo_P2PBlockTxReq proto.InternalMessageInfo
  1196  
  1197  func (m *P2PBlockTxReq) GetBlockHash() string {
  1198  	if m != nil {
  1199  		return m.BlockHash
  1200  	}
  1201  	return ""
  1202  }
  1203  
  1204  func (m *P2PBlockTxReq) GetTxIndices() []int32 {
  1205  	if m != nil {
  1206  		return m.TxIndices
  1207  	}
  1208  	return nil
  1209  }
  1210  
  1211  // 区块交易数据返回
  1212  type P2PBlockTxReply struct {
  1213  	BlockHash            string         `protobuf:"bytes,1,opt,name=blockHash,proto3" json:"blockHash,omitempty"`
  1214  	TxIndices            []int32        `protobuf:"varint,2,rep,packed,name=txIndices,proto3" json:"txIndices,omitempty"`
  1215  	Txs                  []*Transaction `protobuf:"bytes,3,rep,name=txs,proto3" json:"txs,omitempty"`
  1216  	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
  1217  	XXX_unrecognized     []byte         `json:"-"`
  1218  	XXX_sizecache        int32          `json:"-"`
  1219  }
  1220  
  1221  func (m *P2PBlockTxReply) Reset()         { *m = P2PBlockTxReply{} }
  1222  func (m *P2PBlockTxReply) String() string { return proto.CompactTextString(m) }
  1223  func (*P2PBlockTxReply) ProtoMessage()    {}
  1224  func (*P2PBlockTxReply) Descriptor() ([]byte, []int) {
  1225  	return fileDescriptor_e7fdddb109e6467a, []int{22}
  1226  }
  1227  
  1228  func (m *P2PBlockTxReply) XXX_Unmarshal(b []byte) error {
  1229  	return xxx_messageInfo_P2PBlockTxReply.Unmarshal(m, b)
  1230  }
  1231  func (m *P2PBlockTxReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1232  	return xxx_messageInfo_P2PBlockTxReply.Marshal(b, m, deterministic)
  1233  }
  1234  func (m *P2PBlockTxReply) XXX_Merge(src proto.Message) {
  1235  	xxx_messageInfo_P2PBlockTxReply.Merge(m, src)
  1236  }
  1237  func (m *P2PBlockTxReply) XXX_Size() int {
  1238  	return xxx_messageInfo_P2PBlockTxReply.Size(m)
  1239  }
  1240  func (m *P2PBlockTxReply) XXX_DiscardUnknown() {
  1241  	xxx_messageInfo_P2PBlockTxReply.DiscardUnknown(m)
  1242  }
  1243  
  1244  var xxx_messageInfo_P2PBlockTxReply proto.InternalMessageInfo
  1245  
  1246  func (m *P2PBlockTxReply) GetBlockHash() string {
  1247  	if m != nil {
  1248  		return m.BlockHash
  1249  	}
  1250  	return ""
  1251  }
  1252  
  1253  func (m *P2PBlockTxReply) GetTxIndices() []int32 {
  1254  	if m != nil {
  1255  		return m.TxIndices
  1256  	}
  1257  	return nil
  1258  }
  1259  
  1260  func (m *P2PBlockTxReply) GetTxs() []*Transaction {
  1261  	if m != nil {
  1262  		return m.Txs
  1263  	}
  1264  	return nil
  1265  }
  1266  
  1267  // 节点收到区块或交易hash,
  1268  // 当在本地不存在时,需要请求重发完整交易或区块
  1269  // 采用统一结构减少消息类型
  1270  type P2PQueryData struct {
  1271  	// Types that are valid to be assigned to Value:
  1272  	//	*P2PQueryData_TxReq
  1273  	//	*P2PQueryData_BlockTxReq
  1274  	Value                isP2PQueryData_Value `protobuf_oneof:"value"`
  1275  	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
  1276  	XXX_unrecognized     []byte               `json:"-"`
  1277  	XXX_sizecache        int32                `json:"-"`
  1278  }
  1279  
  1280  func (m *P2PQueryData) Reset()         { *m = P2PQueryData{} }
  1281  func (m *P2PQueryData) String() string { return proto.CompactTextString(m) }
  1282  func (*P2PQueryData) ProtoMessage()    {}
  1283  func (*P2PQueryData) Descriptor() ([]byte, []int) {
  1284  	return fileDescriptor_e7fdddb109e6467a, []int{23}
  1285  }
  1286  
  1287  func (m *P2PQueryData) XXX_Unmarshal(b []byte) error {
  1288  	return xxx_messageInfo_P2PQueryData.Unmarshal(m, b)
  1289  }
  1290  func (m *P2PQueryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1291  	return xxx_messageInfo_P2PQueryData.Marshal(b, m, deterministic)
  1292  }
  1293  func (m *P2PQueryData) XXX_Merge(src proto.Message) {
  1294  	xxx_messageInfo_P2PQueryData.Merge(m, src)
  1295  }
  1296  func (m *P2PQueryData) XXX_Size() int {
  1297  	return xxx_messageInfo_P2PQueryData.Size(m)
  1298  }
  1299  func (m *P2PQueryData) XXX_DiscardUnknown() {
  1300  	xxx_messageInfo_P2PQueryData.DiscardUnknown(m)
  1301  }
  1302  
  1303  var xxx_messageInfo_P2PQueryData proto.InternalMessageInfo
  1304  
  1305  type isP2PQueryData_Value interface {
  1306  	isP2PQueryData_Value()
  1307  }
  1308  
  1309  type P2PQueryData_TxReq struct {
  1310  	TxReq *P2PTxReq `protobuf:"bytes,1,opt,name=txReq,proto3,oneof"`
  1311  }
  1312  
  1313  type P2PQueryData_BlockTxReq struct {
  1314  	BlockTxReq *P2PBlockTxReq `protobuf:"bytes,2,opt,name=blockTxReq,proto3,oneof"`
  1315  }
  1316  
  1317  func (*P2PQueryData_TxReq) isP2PQueryData_Value() {}
  1318  
  1319  func (*P2PQueryData_BlockTxReq) isP2PQueryData_Value() {}
  1320  
  1321  func (m *P2PQueryData) GetValue() isP2PQueryData_Value {
  1322  	if m != nil {
  1323  		return m.Value
  1324  	}
  1325  	return nil
  1326  }
  1327  
  1328  func (m *P2PQueryData) GetTxReq() *P2PTxReq {
  1329  	if x, ok := m.GetValue().(*P2PQueryData_TxReq); ok {
  1330  		return x.TxReq
  1331  	}
  1332  	return nil
  1333  }
  1334  
  1335  func (m *P2PQueryData) GetBlockTxReq() *P2PBlockTxReq {
  1336  	if x, ok := m.GetValue().(*P2PQueryData_BlockTxReq); ok {
  1337  		return x.BlockTxReq
  1338  	}
  1339  	return nil
  1340  }
  1341  
  1342  // XXX_OneofWrappers is for the internal use of the proto package.
  1343  func (*P2PQueryData) XXX_OneofWrappers() []interface{} {
  1344  	return []interface{}{
  1345  		(*P2PQueryData_TxReq)(nil),
  1346  		(*P2PQueryData_BlockTxReq)(nil),
  1347  	}
  1348  }
  1349  
  1350  //*
  1351  // p2p 协议和软件版本
  1352  type Versions struct {
  1353  	P2Pversion           int32    `protobuf:"varint,1,opt,name=p2pversion,proto3" json:"p2pversion,omitempty"`
  1354  	Softversion          string   `protobuf:"bytes,2,opt,name=softversion,proto3" json:"softversion,omitempty"`
  1355  	Peername             string   `protobuf:"bytes,3,opt,name=peername,proto3" json:"peername,omitempty"`
  1356  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1357  	XXX_unrecognized     []byte   `json:"-"`
  1358  	XXX_sizecache        int32    `json:"-"`
  1359  }
  1360  
  1361  func (m *Versions) Reset()         { *m = Versions{} }
  1362  func (m *Versions) String() string { return proto.CompactTextString(m) }
  1363  func (*Versions) ProtoMessage()    {}
  1364  func (*Versions) Descriptor() ([]byte, []int) {
  1365  	return fileDescriptor_e7fdddb109e6467a, []int{24}
  1366  }
  1367  
  1368  func (m *Versions) XXX_Unmarshal(b []byte) error {
  1369  	return xxx_messageInfo_Versions.Unmarshal(m, b)
  1370  }
  1371  func (m *Versions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1372  	return xxx_messageInfo_Versions.Marshal(b, m, deterministic)
  1373  }
  1374  func (m *Versions) XXX_Merge(src proto.Message) {
  1375  	xxx_messageInfo_Versions.Merge(m, src)
  1376  }
  1377  func (m *Versions) XXX_Size() int {
  1378  	return xxx_messageInfo_Versions.Size(m)
  1379  }
  1380  func (m *Versions) XXX_DiscardUnknown() {
  1381  	xxx_messageInfo_Versions.DiscardUnknown(m)
  1382  }
  1383  
  1384  var xxx_messageInfo_Versions proto.InternalMessageInfo
  1385  
  1386  func (m *Versions) GetP2Pversion() int32 {
  1387  	if m != nil {
  1388  		return m.P2Pversion
  1389  	}
  1390  	return 0
  1391  }
  1392  
  1393  func (m *Versions) GetSoftversion() string {
  1394  	if m != nil {
  1395  		return m.Softversion
  1396  	}
  1397  	return ""
  1398  }
  1399  
  1400  func (m *Versions) GetPeername() string {
  1401  	if m != nil {
  1402  		return m.Peername
  1403  	}
  1404  	return ""
  1405  }
  1406  
  1407  //*
  1408  // p2p 广播数据协议
  1409  type BroadCastData struct {
  1410  	// Types that are valid to be assigned to Value:
  1411  	//	*BroadCastData_Tx
  1412  	//	*BroadCastData_Block
  1413  	//	*BroadCastData_Ping
  1414  	//	*BroadCastData_Version
  1415  	//	*BroadCastData_LtTx
  1416  	//	*BroadCastData_LtBlock
  1417  	//	*BroadCastData_Query
  1418  	//	*BroadCastData_BlockRep
  1419  	Value                isBroadCastData_Value `protobuf_oneof:"value"`
  1420  	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
  1421  	XXX_unrecognized     []byte                `json:"-"`
  1422  	XXX_sizecache        int32                 `json:"-"`
  1423  }
  1424  
  1425  func (m *BroadCastData) Reset()         { *m = BroadCastData{} }
  1426  func (m *BroadCastData) String() string { return proto.CompactTextString(m) }
  1427  func (*BroadCastData) ProtoMessage()    {}
  1428  func (*BroadCastData) Descriptor() ([]byte, []int) {
  1429  	return fileDescriptor_e7fdddb109e6467a, []int{25}
  1430  }
  1431  
  1432  func (m *BroadCastData) XXX_Unmarshal(b []byte) error {
  1433  	return xxx_messageInfo_BroadCastData.Unmarshal(m, b)
  1434  }
  1435  func (m *BroadCastData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1436  	return xxx_messageInfo_BroadCastData.Marshal(b, m, deterministic)
  1437  }
  1438  func (m *BroadCastData) XXX_Merge(src proto.Message) {
  1439  	xxx_messageInfo_BroadCastData.Merge(m, src)
  1440  }
  1441  func (m *BroadCastData) XXX_Size() int {
  1442  	return xxx_messageInfo_BroadCastData.Size(m)
  1443  }
  1444  func (m *BroadCastData) XXX_DiscardUnknown() {
  1445  	xxx_messageInfo_BroadCastData.DiscardUnknown(m)
  1446  }
  1447  
  1448  var xxx_messageInfo_BroadCastData proto.InternalMessageInfo
  1449  
  1450  type isBroadCastData_Value interface {
  1451  	isBroadCastData_Value()
  1452  }
  1453  
  1454  type BroadCastData_Tx struct {
  1455  	Tx *P2PTx `protobuf:"bytes,1,opt,name=tx,proto3,oneof"`
  1456  }
  1457  
  1458  type BroadCastData_Block struct {
  1459  	Block *P2PBlock `protobuf:"bytes,2,opt,name=block,proto3,oneof"`
  1460  }
  1461  
  1462  type BroadCastData_Ping struct {
  1463  	Ping *P2PPing `protobuf:"bytes,3,opt,name=ping,proto3,oneof"`
  1464  }
  1465  
  1466  type BroadCastData_Version struct {
  1467  	Version *Versions `protobuf:"bytes,4,opt,name=version,proto3,oneof"`
  1468  }
  1469  
  1470  type BroadCastData_LtTx struct {
  1471  	LtTx *LightTx `protobuf:"bytes,5,opt,name=ltTx,proto3,oneof"`
  1472  }
  1473  
  1474  type BroadCastData_LtBlock struct {
  1475  	LtBlock *LightBlock `protobuf:"bytes,6,opt,name=ltBlock,proto3,oneof"`
  1476  }
  1477  
  1478  type BroadCastData_Query struct {
  1479  	Query *P2PQueryData `protobuf:"bytes,7,opt,name=query,proto3,oneof"`
  1480  }
  1481  
  1482  type BroadCastData_BlockRep struct {
  1483  	BlockRep *P2PBlockTxReply `protobuf:"bytes,8,opt,name=blockRep,proto3,oneof"`
  1484  }
  1485  
  1486  func (*BroadCastData_Tx) isBroadCastData_Value() {}
  1487  
  1488  func (*BroadCastData_Block) isBroadCastData_Value() {}
  1489  
  1490  func (*BroadCastData_Ping) isBroadCastData_Value() {}
  1491  
  1492  func (*BroadCastData_Version) isBroadCastData_Value() {}
  1493  
  1494  func (*BroadCastData_LtTx) isBroadCastData_Value() {}
  1495  
  1496  func (*BroadCastData_LtBlock) isBroadCastData_Value() {}
  1497  
  1498  func (*BroadCastData_Query) isBroadCastData_Value() {}
  1499  
  1500  func (*BroadCastData_BlockRep) isBroadCastData_Value() {}
  1501  
  1502  func (m *BroadCastData) GetValue() isBroadCastData_Value {
  1503  	if m != nil {
  1504  		return m.Value
  1505  	}
  1506  	return nil
  1507  }
  1508  
  1509  func (m *BroadCastData) GetTx() *P2PTx {
  1510  	if x, ok := m.GetValue().(*BroadCastData_Tx); ok {
  1511  		return x.Tx
  1512  	}
  1513  	return nil
  1514  }
  1515  
  1516  func (m *BroadCastData) GetBlock() *P2PBlock {
  1517  	if x, ok := m.GetValue().(*BroadCastData_Block); ok {
  1518  		return x.Block
  1519  	}
  1520  	return nil
  1521  }
  1522  
  1523  func (m *BroadCastData) GetPing() *P2PPing {
  1524  	if x, ok := m.GetValue().(*BroadCastData_Ping); ok {
  1525  		return x.Ping
  1526  	}
  1527  	return nil
  1528  }
  1529  
  1530  func (m *BroadCastData) GetVersion() *Versions {
  1531  	if x, ok := m.GetValue().(*BroadCastData_Version); ok {
  1532  		return x.Version
  1533  	}
  1534  	return nil
  1535  }
  1536  
  1537  func (m *BroadCastData) GetLtTx() *LightTx {
  1538  	if x, ok := m.GetValue().(*BroadCastData_LtTx); ok {
  1539  		return x.LtTx
  1540  	}
  1541  	return nil
  1542  }
  1543  
  1544  func (m *BroadCastData) GetLtBlock() *LightBlock {
  1545  	if x, ok := m.GetValue().(*BroadCastData_LtBlock); ok {
  1546  		return x.LtBlock
  1547  	}
  1548  	return nil
  1549  }
  1550  
  1551  func (m *BroadCastData) GetQuery() *P2PQueryData {
  1552  	if x, ok := m.GetValue().(*BroadCastData_Query); ok {
  1553  		return x.Query
  1554  	}
  1555  	return nil
  1556  }
  1557  
  1558  func (m *BroadCastData) GetBlockRep() *P2PBlockTxReply {
  1559  	if x, ok := m.GetValue().(*BroadCastData_BlockRep); ok {
  1560  		return x.BlockRep
  1561  	}
  1562  	return nil
  1563  }
  1564  
  1565  // XXX_OneofWrappers is for the internal use of the proto package.
  1566  func (*BroadCastData) XXX_OneofWrappers() []interface{} {
  1567  	return []interface{}{
  1568  		(*BroadCastData_Tx)(nil),
  1569  		(*BroadCastData_Block)(nil),
  1570  		(*BroadCastData_Ping)(nil),
  1571  		(*BroadCastData_Version)(nil),
  1572  		(*BroadCastData_LtTx)(nil),
  1573  		(*BroadCastData_LtBlock)(nil),
  1574  		(*BroadCastData_Query)(nil),
  1575  		(*BroadCastData_BlockRep)(nil),
  1576  	}
  1577  }
  1578  
  1579  //*
  1580  // p2p 获取区块区间头部信息协议
  1581  type P2PGetHeaders struct {
  1582  	Version              int32    `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
  1583  	StartHeight          int64    `protobuf:"varint,2,opt,name=startHeight,proto3" json:"startHeight,omitempty"`
  1584  	EndHeight            int64    `protobuf:"varint,3,opt,name=endHeight,proto3" json:"endHeight,omitempty"`
  1585  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1586  	XXX_unrecognized     []byte   `json:"-"`
  1587  	XXX_sizecache        int32    `json:"-"`
  1588  }
  1589  
  1590  func (m *P2PGetHeaders) Reset()         { *m = P2PGetHeaders{} }
  1591  func (m *P2PGetHeaders) String() string { return proto.CompactTextString(m) }
  1592  func (*P2PGetHeaders) ProtoMessage()    {}
  1593  func (*P2PGetHeaders) Descriptor() ([]byte, []int) {
  1594  	return fileDescriptor_e7fdddb109e6467a, []int{26}
  1595  }
  1596  
  1597  func (m *P2PGetHeaders) XXX_Unmarshal(b []byte) error {
  1598  	return xxx_messageInfo_P2PGetHeaders.Unmarshal(m, b)
  1599  }
  1600  func (m *P2PGetHeaders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1601  	return xxx_messageInfo_P2PGetHeaders.Marshal(b, m, deterministic)
  1602  }
  1603  func (m *P2PGetHeaders) XXX_Merge(src proto.Message) {
  1604  	xxx_messageInfo_P2PGetHeaders.Merge(m, src)
  1605  }
  1606  func (m *P2PGetHeaders) XXX_Size() int {
  1607  	return xxx_messageInfo_P2PGetHeaders.Size(m)
  1608  }
  1609  func (m *P2PGetHeaders) XXX_DiscardUnknown() {
  1610  	xxx_messageInfo_P2PGetHeaders.DiscardUnknown(m)
  1611  }
  1612  
  1613  var xxx_messageInfo_P2PGetHeaders proto.InternalMessageInfo
  1614  
  1615  func (m *P2PGetHeaders) GetVersion() int32 {
  1616  	if m != nil {
  1617  		return m.Version
  1618  	}
  1619  	return 0
  1620  }
  1621  
  1622  func (m *P2PGetHeaders) GetStartHeight() int64 {
  1623  	if m != nil {
  1624  		return m.StartHeight
  1625  	}
  1626  	return 0
  1627  }
  1628  
  1629  func (m *P2PGetHeaders) GetEndHeight() int64 {
  1630  	if m != nil {
  1631  		return m.EndHeight
  1632  	}
  1633  	return 0
  1634  }
  1635  
  1636  //*
  1637  // p2p 区块头传输协议
  1638  type P2PHeaders struct {
  1639  	Headers              []*Header `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
  1640  	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
  1641  	XXX_unrecognized     []byte    `json:"-"`
  1642  	XXX_sizecache        int32     `json:"-"`
  1643  }
  1644  
  1645  func (m *P2PHeaders) Reset()         { *m = P2PHeaders{} }
  1646  func (m *P2PHeaders) String() string { return proto.CompactTextString(m) }
  1647  func (*P2PHeaders) ProtoMessage()    {}
  1648  func (*P2PHeaders) Descriptor() ([]byte, []int) {
  1649  	return fileDescriptor_e7fdddb109e6467a, []int{27}
  1650  }
  1651  
  1652  func (m *P2PHeaders) XXX_Unmarshal(b []byte) error {
  1653  	return xxx_messageInfo_P2PHeaders.Unmarshal(m, b)
  1654  }
  1655  func (m *P2PHeaders) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1656  	return xxx_messageInfo_P2PHeaders.Marshal(b, m, deterministic)
  1657  }
  1658  func (m *P2PHeaders) XXX_Merge(src proto.Message) {
  1659  	xxx_messageInfo_P2PHeaders.Merge(m, src)
  1660  }
  1661  func (m *P2PHeaders) XXX_Size() int {
  1662  	return xxx_messageInfo_P2PHeaders.Size(m)
  1663  }
  1664  func (m *P2PHeaders) XXX_DiscardUnknown() {
  1665  	xxx_messageInfo_P2PHeaders.DiscardUnknown(m)
  1666  }
  1667  
  1668  var xxx_messageInfo_P2PHeaders proto.InternalMessageInfo
  1669  
  1670  func (m *P2PHeaders) GetHeaders() []*Header {
  1671  	if m != nil {
  1672  		return m.Headers
  1673  	}
  1674  	return nil
  1675  }
  1676  
  1677  //*
  1678  // inv 请求协议
  1679  type InvData struct {
  1680  	// Types that are valid to be assigned to Value:
  1681  	//	*InvData_Tx
  1682  	//	*InvData_Block
  1683  	Value                isInvData_Value `protobuf_oneof:"value"`
  1684  	Ty                   int32           `protobuf:"varint,3,opt,name=ty,proto3" json:"ty,omitempty"`
  1685  	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
  1686  	XXX_unrecognized     []byte          `json:"-"`
  1687  	XXX_sizecache        int32           `json:"-"`
  1688  }
  1689  
  1690  func (m *InvData) Reset()         { *m = InvData{} }
  1691  func (m *InvData) String() string { return proto.CompactTextString(m) }
  1692  func (*InvData) ProtoMessage()    {}
  1693  func (*InvData) Descriptor() ([]byte, []int) {
  1694  	return fileDescriptor_e7fdddb109e6467a, []int{28}
  1695  }
  1696  
  1697  func (m *InvData) XXX_Unmarshal(b []byte) error {
  1698  	return xxx_messageInfo_InvData.Unmarshal(m, b)
  1699  }
  1700  func (m *InvData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1701  	return xxx_messageInfo_InvData.Marshal(b, m, deterministic)
  1702  }
  1703  func (m *InvData) XXX_Merge(src proto.Message) {
  1704  	xxx_messageInfo_InvData.Merge(m, src)
  1705  }
  1706  func (m *InvData) XXX_Size() int {
  1707  	return xxx_messageInfo_InvData.Size(m)
  1708  }
  1709  func (m *InvData) XXX_DiscardUnknown() {
  1710  	xxx_messageInfo_InvData.DiscardUnknown(m)
  1711  }
  1712  
  1713  var xxx_messageInfo_InvData proto.InternalMessageInfo
  1714  
  1715  type isInvData_Value interface {
  1716  	isInvData_Value()
  1717  }
  1718  
  1719  type InvData_Tx struct {
  1720  	Tx *Transaction `protobuf:"bytes,1,opt,name=tx,proto3,oneof"`
  1721  }
  1722  
  1723  type InvData_Block struct {
  1724  	Block *Block `protobuf:"bytes,2,opt,name=block,proto3,oneof"`
  1725  }
  1726  
  1727  func (*InvData_Tx) isInvData_Value() {}
  1728  
  1729  func (*InvData_Block) isInvData_Value() {}
  1730  
  1731  func (m *InvData) GetValue() isInvData_Value {
  1732  	if m != nil {
  1733  		return m.Value
  1734  	}
  1735  	return nil
  1736  }
  1737  
  1738  func (m *InvData) GetTx() *Transaction {
  1739  	if x, ok := m.GetValue().(*InvData_Tx); ok {
  1740  		return x.Tx
  1741  	}
  1742  	return nil
  1743  }
  1744  
  1745  func (m *InvData) GetBlock() *Block {
  1746  	if x, ok := m.GetValue().(*InvData_Block); ok {
  1747  		return x.Block
  1748  	}
  1749  	return nil
  1750  }
  1751  
  1752  func (m *InvData) GetTy() int32 {
  1753  	if m != nil {
  1754  		return m.Ty
  1755  	}
  1756  	return 0
  1757  }
  1758  
  1759  // XXX_OneofWrappers is for the internal use of the proto package.
  1760  func (*InvData) XXX_OneofWrappers() []interface{} {
  1761  	return []interface{}{
  1762  		(*InvData_Tx)(nil),
  1763  		(*InvData_Block)(nil),
  1764  	}
  1765  }
  1766  
  1767  //*
  1768  // inv 返回数据
  1769  type InvDatas struct {
  1770  	Items                []*InvData `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
  1771  	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
  1772  	XXX_unrecognized     []byte     `json:"-"`
  1773  	XXX_sizecache        int32      `json:"-"`
  1774  }
  1775  
  1776  func (m *InvDatas) Reset()         { *m = InvDatas{} }
  1777  func (m *InvDatas) String() string { return proto.CompactTextString(m) }
  1778  func (*InvDatas) ProtoMessage()    {}
  1779  func (*InvDatas) Descriptor() ([]byte, []int) {
  1780  	return fileDescriptor_e7fdddb109e6467a, []int{29}
  1781  }
  1782  
  1783  func (m *InvDatas) XXX_Unmarshal(b []byte) error {
  1784  	return xxx_messageInfo_InvDatas.Unmarshal(m, b)
  1785  }
  1786  func (m *InvDatas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1787  	return xxx_messageInfo_InvDatas.Marshal(b, m, deterministic)
  1788  }
  1789  func (m *InvDatas) XXX_Merge(src proto.Message) {
  1790  	xxx_messageInfo_InvDatas.Merge(m, src)
  1791  }
  1792  func (m *InvDatas) XXX_Size() int {
  1793  	return xxx_messageInfo_InvDatas.Size(m)
  1794  }
  1795  func (m *InvDatas) XXX_DiscardUnknown() {
  1796  	xxx_messageInfo_InvDatas.DiscardUnknown(m)
  1797  }
  1798  
  1799  var xxx_messageInfo_InvDatas proto.InternalMessageInfo
  1800  
  1801  func (m *InvDatas) GetItems() []*InvData {
  1802  	if m != nil {
  1803  		return m.Items
  1804  	}
  1805  	return nil
  1806  }
  1807  
  1808  //*
  1809  // peer 信息
  1810  type Peer struct {
  1811  	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
  1812  	Port                 int32    `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
  1813  	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
  1814  	Self                 bool     `protobuf:"varint,4,opt,name=self,proto3" json:"self,omitempty"`
  1815  	MempoolSize          int32    `protobuf:"varint,5,opt,name=mempoolSize,proto3" json:"mempoolSize,omitempty"`
  1816  	Header               *Header  `protobuf:"bytes,6,opt,name=header,proto3" json:"header,omitempty"`
  1817  	Version              string   `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"`
  1818  	LocalDBVersion       string   `protobuf:"bytes,8,opt,name=localDBVersion,proto3" json:"localDBVersion,omitempty"`
  1819  	StoreDBVersion       string   `protobuf:"bytes,9,opt,name=storeDBVersion,proto3" json:"storeDBVersion,omitempty"`
  1820  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1821  	XXX_unrecognized     []byte   `json:"-"`
  1822  	XXX_sizecache        int32    `json:"-"`
  1823  }
  1824  
  1825  func (m *Peer) Reset()         { *m = Peer{} }
  1826  func (m *Peer) String() string { return proto.CompactTextString(m) }
  1827  func (*Peer) ProtoMessage()    {}
  1828  func (*Peer) Descriptor() ([]byte, []int) {
  1829  	return fileDescriptor_e7fdddb109e6467a, []int{30}
  1830  }
  1831  
  1832  func (m *Peer) XXX_Unmarshal(b []byte) error {
  1833  	return xxx_messageInfo_Peer.Unmarshal(m, b)
  1834  }
  1835  func (m *Peer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1836  	return xxx_messageInfo_Peer.Marshal(b, m, deterministic)
  1837  }
  1838  func (m *Peer) XXX_Merge(src proto.Message) {
  1839  	xxx_messageInfo_Peer.Merge(m, src)
  1840  }
  1841  func (m *Peer) XXX_Size() int {
  1842  	return xxx_messageInfo_Peer.Size(m)
  1843  }
  1844  func (m *Peer) XXX_DiscardUnknown() {
  1845  	xxx_messageInfo_Peer.DiscardUnknown(m)
  1846  }
  1847  
  1848  var xxx_messageInfo_Peer proto.InternalMessageInfo
  1849  
  1850  func (m *Peer) GetAddr() string {
  1851  	if m != nil {
  1852  		return m.Addr
  1853  	}
  1854  	return ""
  1855  }
  1856  
  1857  func (m *Peer) GetPort() int32 {
  1858  	if m != nil {
  1859  		return m.Port
  1860  	}
  1861  	return 0
  1862  }
  1863  
  1864  func (m *Peer) GetName() string {
  1865  	if m != nil {
  1866  		return m.Name
  1867  	}
  1868  	return ""
  1869  }
  1870  
  1871  func (m *Peer) GetSelf() bool {
  1872  	if m != nil {
  1873  		return m.Self
  1874  	}
  1875  	return false
  1876  }
  1877  
  1878  func (m *Peer) GetMempoolSize() int32 {
  1879  	if m != nil {
  1880  		return m.MempoolSize
  1881  	}
  1882  	return 0
  1883  }
  1884  
  1885  func (m *Peer) GetHeader() *Header {
  1886  	if m != nil {
  1887  		return m.Header
  1888  	}
  1889  	return nil
  1890  }
  1891  
  1892  func (m *Peer) GetVersion() string {
  1893  	if m != nil {
  1894  		return m.Version
  1895  	}
  1896  	return ""
  1897  }
  1898  
  1899  func (m *Peer) GetLocalDBVersion() string {
  1900  	if m != nil {
  1901  		return m.LocalDBVersion
  1902  	}
  1903  	return ""
  1904  }
  1905  
  1906  func (m *Peer) GetStoreDBVersion() string {
  1907  	if m != nil {
  1908  		return m.StoreDBVersion
  1909  	}
  1910  	return ""
  1911  }
  1912  
  1913  //*
  1914  // peer 列表
  1915  type PeerList struct {
  1916  	Peers                []*Peer  `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
  1917  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1918  	XXX_unrecognized     []byte   `json:"-"`
  1919  	XXX_sizecache        int32    `json:"-"`
  1920  }
  1921  
  1922  func (m *PeerList) Reset()         { *m = PeerList{} }
  1923  func (m *PeerList) String() string { return proto.CompactTextString(m) }
  1924  func (*PeerList) ProtoMessage()    {}
  1925  func (*PeerList) Descriptor() ([]byte, []int) {
  1926  	return fileDescriptor_e7fdddb109e6467a, []int{31}
  1927  }
  1928  
  1929  func (m *PeerList) XXX_Unmarshal(b []byte) error {
  1930  	return xxx_messageInfo_PeerList.Unmarshal(m, b)
  1931  }
  1932  func (m *PeerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1933  	return xxx_messageInfo_PeerList.Marshal(b, m, deterministic)
  1934  }
  1935  func (m *PeerList) XXX_Merge(src proto.Message) {
  1936  	xxx_messageInfo_PeerList.Merge(m, src)
  1937  }
  1938  func (m *PeerList) XXX_Size() int {
  1939  	return xxx_messageInfo_PeerList.Size(m)
  1940  }
  1941  func (m *PeerList) XXX_DiscardUnknown() {
  1942  	xxx_messageInfo_PeerList.DiscardUnknown(m)
  1943  }
  1944  
  1945  var xxx_messageInfo_PeerList proto.InternalMessageInfo
  1946  
  1947  func (m *PeerList) GetPeers() []*Peer {
  1948  	if m != nil {
  1949  		return m.Peers
  1950  	}
  1951  	return nil
  1952  }
  1953  
  1954  //*
  1955  // p2p get peer req
  1956  type P2PGetPeerReq struct {
  1957  	P2PType              string   `protobuf:"bytes,1,opt,name=p2pType,proto3" json:"p2pType,omitempty"`
  1958  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  1959  	XXX_unrecognized     []byte   `json:"-"`
  1960  	XXX_sizecache        int32    `json:"-"`
  1961  }
  1962  
  1963  func (m *P2PGetPeerReq) Reset()         { *m = P2PGetPeerReq{} }
  1964  func (m *P2PGetPeerReq) String() string { return proto.CompactTextString(m) }
  1965  func (*P2PGetPeerReq) ProtoMessage()    {}
  1966  func (*P2PGetPeerReq) Descriptor() ([]byte, []int) {
  1967  	return fileDescriptor_e7fdddb109e6467a, []int{32}
  1968  }
  1969  
  1970  func (m *P2PGetPeerReq) XXX_Unmarshal(b []byte) error {
  1971  	return xxx_messageInfo_P2PGetPeerReq.Unmarshal(m, b)
  1972  }
  1973  func (m *P2PGetPeerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  1974  	return xxx_messageInfo_P2PGetPeerReq.Marshal(b, m, deterministic)
  1975  }
  1976  func (m *P2PGetPeerReq) XXX_Merge(src proto.Message) {
  1977  	xxx_messageInfo_P2PGetPeerReq.Merge(m, src)
  1978  }
  1979  func (m *P2PGetPeerReq) XXX_Size() int {
  1980  	return xxx_messageInfo_P2PGetPeerReq.Size(m)
  1981  }
  1982  func (m *P2PGetPeerReq) XXX_DiscardUnknown() {
  1983  	xxx_messageInfo_P2PGetPeerReq.DiscardUnknown(m)
  1984  }
  1985  
  1986  var xxx_messageInfo_P2PGetPeerReq proto.InternalMessageInfo
  1987  
  1988  func (m *P2PGetPeerReq) GetP2PType() string {
  1989  	if m != nil {
  1990  		return m.P2PType
  1991  	}
  1992  	return ""
  1993  }
  1994  
  1995  //*
  1996  // p2p get net info req
  1997  type P2PGetNetInfoReq struct {
  1998  	P2PType              string   `protobuf:"bytes,1,opt,name=p2pType,proto3" json:"p2pType,omitempty"`
  1999  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2000  	XXX_unrecognized     []byte   `json:"-"`
  2001  	XXX_sizecache        int32    `json:"-"`
  2002  }
  2003  
  2004  func (m *P2PGetNetInfoReq) Reset()         { *m = P2PGetNetInfoReq{} }
  2005  func (m *P2PGetNetInfoReq) String() string { return proto.CompactTextString(m) }
  2006  func (*P2PGetNetInfoReq) ProtoMessage()    {}
  2007  func (*P2PGetNetInfoReq) Descriptor() ([]byte, []int) {
  2008  	return fileDescriptor_e7fdddb109e6467a, []int{33}
  2009  }
  2010  
  2011  func (m *P2PGetNetInfoReq) XXX_Unmarshal(b []byte) error {
  2012  	return xxx_messageInfo_P2PGetNetInfoReq.Unmarshal(m, b)
  2013  }
  2014  func (m *P2PGetNetInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2015  	return xxx_messageInfo_P2PGetNetInfoReq.Marshal(b, m, deterministic)
  2016  }
  2017  func (m *P2PGetNetInfoReq) XXX_Merge(src proto.Message) {
  2018  	xxx_messageInfo_P2PGetNetInfoReq.Merge(m, src)
  2019  }
  2020  func (m *P2PGetNetInfoReq) XXX_Size() int {
  2021  	return xxx_messageInfo_P2PGetNetInfoReq.Size(m)
  2022  }
  2023  func (m *P2PGetNetInfoReq) XXX_DiscardUnknown() {
  2024  	xxx_messageInfo_P2PGetNetInfoReq.DiscardUnknown(m)
  2025  }
  2026  
  2027  var xxx_messageInfo_P2PGetNetInfoReq proto.InternalMessageInfo
  2028  
  2029  func (m *P2PGetNetInfoReq) GetP2PType() string {
  2030  	if m != nil {
  2031  		return m.P2PType
  2032  	}
  2033  	return ""
  2034  }
  2035  
  2036  //*
  2037  //当前节点的网络信息
  2038  type NodeNetInfo struct {
  2039  	Externaladdr         string   `protobuf:"bytes,1,opt,name=externaladdr,proto3" json:"externaladdr,omitempty"`
  2040  	Localaddr            string   `protobuf:"bytes,2,opt,name=localaddr,proto3" json:"localaddr,omitempty"`
  2041  	Service              bool     `protobuf:"varint,3,opt,name=service,proto3" json:"service,omitempty"`
  2042  	Outbounds            int32    `protobuf:"varint,4,opt,name=outbounds,proto3" json:"outbounds,omitempty"`
  2043  	Inbounds             int32    `protobuf:"varint,5,opt,name=inbounds,proto3" json:"inbounds,omitempty"`
  2044  	Routingtable         int32    `protobuf:"varint,6,opt,name=routingtable,proto3" json:"routingtable,omitempty"`
  2045  	Peerstore            int32    `protobuf:"varint,7,opt,name=peerstore,proto3" json:"peerstore,omitempty"`
  2046  	Ratein               string   `protobuf:"bytes,8,opt,name=ratein,proto3" json:"ratein,omitempty"`
  2047  	Rateout              string   `protobuf:"bytes,9,opt,name=rateout,proto3" json:"rateout,omitempty"`
  2048  	Ratetotal            string   `protobuf:"bytes,10,opt,name=ratetotal,proto3" json:"ratetotal,omitempty"`
  2049  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2050  	XXX_unrecognized     []byte   `json:"-"`
  2051  	XXX_sizecache        int32    `json:"-"`
  2052  }
  2053  
  2054  func (m *NodeNetInfo) Reset()         { *m = NodeNetInfo{} }
  2055  func (m *NodeNetInfo) String() string { return proto.CompactTextString(m) }
  2056  func (*NodeNetInfo) ProtoMessage()    {}
  2057  func (*NodeNetInfo) Descriptor() ([]byte, []int) {
  2058  	return fileDescriptor_e7fdddb109e6467a, []int{34}
  2059  }
  2060  
  2061  func (m *NodeNetInfo) XXX_Unmarshal(b []byte) error {
  2062  	return xxx_messageInfo_NodeNetInfo.Unmarshal(m, b)
  2063  }
  2064  func (m *NodeNetInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2065  	return xxx_messageInfo_NodeNetInfo.Marshal(b, m, deterministic)
  2066  }
  2067  func (m *NodeNetInfo) XXX_Merge(src proto.Message) {
  2068  	xxx_messageInfo_NodeNetInfo.Merge(m, src)
  2069  }
  2070  func (m *NodeNetInfo) XXX_Size() int {
  2071  	return xxx_messageInfo_NodeNetInfo.Size(m)
  2072  }
  2073  func (m *NodeNetInfo) XXX_DiscardUnknown() {
  2074  	xxx_messageInfo_NodeNetInfo.DiscardUnknown(m)
  2075  }
  2076  
  2077  var xxx_messageInfo_NodeNetInfo proto.InternalMessageInfo
  2078  
  2079  func (m *NodeNetInfo) GetExternaladdr() string {
  2080  	if m != nil {
  2081  		return m.Externaladdr
  2082  	}
  2083  	return ""
  2084  }
  2085  
  2086  func (m *NodeNetInfo) GetLocaladdr() string {
  2087  	if m != nil {
  2088  		return m.Localaddr
  2089  	}
  2090  	return ""
  2091  }
  2092  
  2093  func (m *NodeNetInfo) GetService() bool {
  2094  	if m != nil {
  2095  		return m.Service
  2096  	}
  2097  	return false
  2098  }
  2099  
  2100  func (m *NodeNetInfo) GetOutbounds() int32 {
  2101  	if m != nil {
  2102  		return m.Outbounds
  2103  	}
  2104  	return 0
  2105  }
  2106  
  2107  func (m *NodeNetInfo) GetInbounds() int32 {
  2108  	if m != nil {
  2109  		return m.Inbounds
  2110  	}
  2111  	return 0
  2112  }
  2113  
  2114  func (m *NodeNetInfo) GetRoutingtable() int32 {
  2115  	if m != nil {
  2116  		return m.Routingtable
  2117  	}
  2118  	return 0
  2119  }
  2120  
  2121  func (m *NodeNetInfo) GetPeerstore() int32 {
  2122  	if m != nil {
  2123  		return m.Peerstore
  2124  	}
  2125  	return 0
  2126  }
  2127  
  2128  func (m *NodeNetInfo) GetRatein() string {
  2129  	if m != nil {
  2130  		return m.Ratein
  2131  	}
  2132  	return ""
  2133  }
  2134  
  2135  func (m *NodeNetInfo) GetRateout() string {
  2136  	if m != nil {
  2137  		return m.Rateout
  2138  	}
  2139  	return ""
  2140  }
  2141  
  2142  func (m *NodeNetInfo) GetRatetotal() string {
  2143  	if m != nil {
  2144  		return m.Ratetotal
  2145  	}
  2146  	return ""
  2147  }
  2148  
  2149  type PeersReply struct {
  2150  	Peers                []*PeersInfo `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
  2151  	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
  2152  	XXX_unrecognized     []byte       `json:"-"`
  2153  	XXX_sizecache        int32        `json:"-"`
  2154  }
  2155  
  2156  func (m *PeersReply) Reset()         { *m = PeersReply{} }
  2157  func (m *PeersReply) String() string { return proto.CompactTextString(m) }
  2158  func (*PeersReply) ProtoMessage()    {}
  2159  func (*PeersReply) Descriptor() ([]byte, []int) {
  2160  	return fileDescriptor_e7fdddb109e6467a, []int{35}
  2161  }
  2162  
  2163  func (m *PeersReply) XXX_Unmarshal(b []byte) error {
  2164  	return xxx_messageInfo_PeersReply.Unmarshal(m, b)
  2165  }
  2166  func (m *PeersReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2167  	return xxx_messageInfo_PeersReply.Marshal(b, m, deterministic)
  2168  }
  2169  func (m *PeersReply) XXX_Merge(src proto.Message) {
  2170  	xxx_messageInfo_PeersReply.Merge(m, src)
  2171  }
  2172  func (m *PeersReply) XXX_Size() int {
  2173  	return xxx_messageInfo_PeersReply.Size(m)
  2174  }
  2175  func (m *PeersReply) XXX_DiscardUnknown() {
  2176  	xxx_messageInfo_PeersReply.DiscardUnknown(m)
  2177  }
  2178  
  2179  var xxx_messageInfo_PeersReply proto.InternalMessageInfo
  2180  
  2181  func (m *PeersReply) GetPeers() []*PeersInfo {
  2182  	if m != nil {
  2183  		return m.Peers
  2184  	}
  2185  	return nil
  2186  }
  2187  
  2188  type PeersInfo struct {
  2189  	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  2190  	Ip                   string   `protobuf:"bytes,2,opt,name=ip,proto3" json:"ip,omitempty"`
  2191  	Port                 int32    `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
  2192  	Softversion          string   `protobuf:"bytes,4,opt,name=softversion,proto3" json:"softversion,omitempty"`
  2193  	P2Pversion           int32    `protobuf:"varint,5,opt,name=p2pversion,proto3" json:"p2pversion,omitempty"`
  2194  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
  2195  	XXX_unrecognized     []byte   `json:"-"`
  2196  	XXX_sizecache        int32    `json:"-"`
  2197  }
  2198  
  2199  func (m *PeersInfo) Reset()         { *m = PeersInfo{} }
  2200  func (m *PeersInfo) String() string { return proto.CompactTextString(m) }
  2201  func (*PeersInfo) ProtoMessage()    {}
  2202  func (*PeersInfo) Descriptor() ([]byte, []int) {
  2203  	return fileDescriptor_e7fdddb109e6467a, []int{36}
  2204  }
  2205  
  2206  func (m *PeersInfo) XXX_Unmarshal(b []byte) error {
  2207  	return xxx_messageInfo_PeersInfo.Unmarshal(m, b)
  2208  }
  2209  func (m *PeersInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  2210  	return xxx_messageInfo_PeersInfo.Marshal(b, m, deterministic)
  2211  }
  2212  func (m *PeersInfo) XXX_Merge(src proto.Message) {
  2213  	xxx_messageInfo_PeersInfo.Merge(m, src)
  2214  }
  2215  func (m *PeersInfo) XXX_Size() int {
  2216  	return xxx_messageInfo_PeersInfo.Size(m)
  2217  }
  2218  func (m *PeersInfo) XXX_DiscardUnknown() {
  2219  	xxx_messageInfo_PeersInfo.DiscardUnknown(m)
  2220  }
  2221  
  2222  var xxx_messageInfo_PeersInfo proto.InternalMessageInfo
  2223  
  2224  func (m *PeersInfo) GetName() string {
  2225  	if m != nil {
  2226  		return m.Name
  2227  	}
  2228  	return ""
  2229  }
  2230  
  2231  func (m *PeersInfo) GetIp() string {
  2232  	if m != nil {
  2233  		return m.Ip
  2234  	}
  2235  	return ""
  2236  }
  2237  
  2238  func (m *PeersInfo) GetPort() int32 {
  2239  	if m != nil {
  2240  		return m.Port
  2241  	}
  2242  	return 0
  2243  }
  2244  
  2245  func (m *PeersInfo) GetSoftversion() string {
  2246  	if m != nil {
  2247  		return m.Softversion
  2248  	}
  2249  	return ""
  2250  }
  2251  
  2252  func (m *PeersInfo) GetP2Pversion() int32 {
  2253  	if m != nil {
  2254  		return m.P2Pversion
  2255  	}
  2256  	return 0
  2257  }
  2258  
  2259  func init() {
  2260  	proto.RegisterType((*P2PGetPeerInfo)(nil), "types.P2PGetPeerInfo")
  2261  	proto.RegisterType((*P2PPeerInfo)(nil), "types.P2PPeerInfo")
  2262  	proto.RegisterType((*P2PVersion)(nil), "types.P2PVersion")
  2263  	proto.RegisterType((*P2PVerAck)(nil), "types.P2PVerAck")
  2264  	proto.RegisterType((*P2PPing)(nil), "types.P2PPing")
  2265  	proto.RegisterType((*P2PPong)(nil), "types.P2PPong")
  2266  	proto.RegisterType((*P2PGetAddr)(nil), "types.P2PGetAddr")
  2267  	proto.RegisterType((*P2PAddr)(nil), "types.P2PAddr")
  2268  	proto.RegisterType((*P2PAddrList)(nil), "types.P2PAddrList")
  2269  	proto.RegisterType((*P2PExternalInfo)(nil), "types.P2PExternalInfo")
  2270  	proto.RegisterType((*P2PGetBlocks)(nil), "types.P2PGetBlocks")
  2271  	proto.RegisterType((*P2PGetMempool)(nil), "types.P2PGetMempool")
  2272  	proto.RegisterType((*P2PInv)(nil), "types.P2PInv")
  2273  	proto.RegisterType((*Inventory)(nil), "types.Inventory")
  2274  	proto.RegisterType((*P2PGetData)(nil), "types.P2PGetData")
  2275  	proto.RegisterType((*P2PRoute)(nil), "types.P2PRoute")
  2276  	proto.RegisterType((*P2PTx)(nil), "types.P2PTx")
  2277  	proto.RegisterType((*P2PBlock)(nil), "types.P2PBlock")
  2278  	proto.RegisterType((*LightBlock)(nil), "types.LightBlock")
  2279  	proto.RegisterType((*LightTx)(nil), "types.LightTx")
  2280  	proto.RegisterType((*P2PTxReq)(nil), "types.P2PTxReq")
  2281  	proto.RegisterType((*P2PBlockTxReq)(nil), "types.P2PBlockTxReq")
  2282  	proto.RegisterType((*P2PBlockTxReply)(nil), "types.P2PBlockTxReply")
  2283  	proto.RegisterType((*P2PQueryData)(nil), "types.P2PQueryData")
  2284  	proto.RegisterType((*Versions)(nil), "types.Versions")
  2285  	proto.RegisterType((*BroadCastData)(nil), "types.BroadCastData")
  2286  	proto.RegisterType((*P2PGetHeaders)(nil), "types.P2PGetHeaders")
  2287  	proto.RegisterType((*P2PHeaders)(nil), "types.P2PHeaders")
  2288  	proto.RegisterType((*InvData)(nil), "types.InvData")
  2289  	proto.RegisterType((*InvDatas)(nil), "types.InvDatas")
  2290  	proto.RegisterType((*Peer)(nil), "types.Peer")
  2291  	proto.RegisterType((*PeerList)(nil), "types.PeerList")
  2292  	proto.RegisterType((*P2PGetPeerReq)(nil), "types.P2PGetPeerReq")
  2293  	proto.RegisterType((*P2PGetNetInfoReq)(nil), "types.P2PGetNetInfoReq")
  2294  	proto.RegisterType((*NodeNetInfo)(nil), "types.NodeNetInfo")
  2295  	proto.RegisterType((*PeersReply)(nil), "types.PeersReply")
  2296  	proto.RegisterType((*PeersInfo)(nil), "types.PeersInfo")
  2297  }
  2298  
  2299  func init() {
  2300  	proto.RegisterFile("p2p.proto", fileDescriptor_e7fdddb109e6467a)
  2301  }
  2302  
  2303  var fileDescriptor_e7fdddb109e6467a = []byte{
  2304  	// 1701 bytes of a gzipped FileDescriptorProto
  2305  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x8f, 0x1b, 0xb7,
  2306  	0x15, 0x1f, 0xfd, 0x99, 0x95, 0xf4, 0xb4, 0xd6, 0xae, 0x19, 0x37, 0x10, 0x04, 0x37, 0x71, 0x09,
  2307  	0x27, 0x76, 0xeb, 0x58, 0x76, 0x66, 0x53, 0x17, 0x68, 0x7a, 0xd9, 0x75, 0x5a, 0x6b, 0xd1, 0xad,
  2308  	0x31, 0xe5, 0xaa, 0x3d, 0xf4, 0x36, 0x2b, 0x71, 0xa5, 0x81, 0x47, 0x9c, 0xd9, 0x19, 0x4a, 0x90,
  2309  	0x72, 0xef, 0xa1, 0x40, 0x6f, 0xfd, 0x2c, 0xfd, 0x56, 0xf9, 0x08, 0x3d, 0x14, 0x7c, 0x24, 0xe7,
  2310  	0x8f, 0xa4, 0x55, 0x8d, 0x06, 0xb9, 0x91, 0xbf, 0xf7, 0xf8, 0xc8, 0xf7, 0xff, 0xcd, 0x40, 0x27,
  2311  	0xf1, 0x92, 0x61, 0x92, 0xc6, 0x32, 0x26, 0xae, 0xdc, 0x24, 0x3c, 0x1b, 0x3c, 0x94, 0x69, 0x20,
  2312  	0xb2, 0x60, 0x22, 0xc3, 0x58, 0x68, 0xca, 0xe0, 0x78, 0x12, 0x2f, 0x16, 0xf9, 0xee, 0xf4, 0x26,
  2313  	0x8a, 0x27, 0x1f, 0x26, 0xf3, 0x20, 0x34, 0x08, 0xfd, 0x15, 0xf4, 0x7c, 0xcf, 0x7f, 0xc7, 0xa5,
  2314  	0xcf, 0x79, 0x7a, 0x29, 0x6e, 0x63, 0xd2, 0x87, 0xd6, 0x8a, 0xa7, 0x59, 0x18, 0x8b, 0x7e, 0xed,
  2315  	0x49, 0xed, 0xb9, 0xcb, 0xec, 0x96, 0xfe, 0xa7, 0x06, 0x5d, 0xdf, 0xf3, 0x73, 0x4e, 0x02, 0xcd,
  2316  	0x60, 0x3a, 0x4d, 0x91, 0xad, 0xc3, 0x70, 0xad, 0xb0, 0x24, 0x4e, 0x65, 0xbf, 0x8e, 0x47, 0x71,
  2317  	0xad, 0x30, 0x11, 0x2c, 0x78, 0xbf, 0xa1, 0xf9, 0xd4, 0x9a, 0x3c, 0x81, 0xee, 0x82, 0x2f, 0x92,
  2318  	0x38, 0x8e, 0xae, 0xc3, 0xef, 0x79, 0xbf, 0x89, 0xec, 0x65, 0x88, 0x7c, 0x01, 0x47, 0x73, 0x1e,
  2319  	0x4c, 0x79, 0xda, 0x77, 0x9f, 0xd4, 0x9e, 0x77, 0xbd, 0x07, 0x43, 0x54, 0x72, 0x38, 0x42, 0x90,
  2320  	0x19, 0x62, 0xf9, 0xb9, 0x47, 0x28, 0xdf, 0x6e, 0xc9, 0x97, 0xd0, 0x8b, 0xe2, 0x49, 0x10, 0x7d,
  2321  	0x77, 0xf1, 0x57, 0xc3, 0xd0, 0x42, 0x86, 0x2d, 0x54, 0xf1, 0x65, 0x32, 0x4e, 0x79, 0xc1, 0xd7,
  2322  	0xd6, 0x7c, 0x55, 0x94, 0xfe, 0x50, 0x03, 0xf0, 0x3d, 0xdf, 0x1e, 0xbb, 0xd7, 0x4e, 0x8a, 0x92,
  2323  	0xf1, 0x74, 0x15, 0x4e, 0x38, 0x9a, 0xa1, 0xc1, 0xec, 0x96, 0x3c, 0x86, 0x8e, 0x0c, 0x17, 0x3c,
  2324  	0x93, 0xc1, 0x22, 0x41, 0x73, 0x34, 0x58, 0x01, 0x90, 0x01, 0xb4, 0x95, 0x0d, 0x19, 0x9f, 0xac,
  2325  	0xd0, 0x20, 0x1d, 0x96, 0xef, 0x2d, 0xed, 0x0f, 0x69, 0xbc, 0x40, 0x7b, 0x18, 0x9a, 0xda, 0x93,
  2326  	0x47, 0xe0, 0x8a, 0x58, 0x4c, 0x38, 0x1a, 0xa0, 0xc1, 0xf4, 0x46, 0xdd, 0xb5, 0xcc, 0x78, 0x7a,
  2327  	0x3e, 0xe3, 0x42, 0x1a, 0xcd, 0x0b, 0x40, 0xd9, 0x3f, 0x93, 0x41, 0x2a, 0x47, 0x3c, 0x9c, 0xcd,
  2328  	0x25, 0x6a, 0xdc, 0x60, 0x65, 0x88, 0xfe, 0x05, 0x3a, 0x5a, 0xdb, 0xf3, 0xc9, 0x87, 0xff, 0x4b,
  2329  	0xd9, 0xfc, 0x59, 0x8d, 0xd2, 0xb3, 0xe8, 0x02, 0x5a, 0x2a, 0x86, 0x42, 0x31, 0x2b, 0x18, 0x6a,
  2330  	0xe5, 0x77, 0xdb, 0xa8, 0xaa, 0xef, 0x89, 0xaa, 0x46, 0x29, 0xaa, 0x9e, 0x42, 0x33, 0x0b, 0x67,
  2331  	0x02, 0x2d, 0xd5, 0xf5, 0x4e, 0x4d, 0x74, 0x5c, 0x87, 0x33, 0x11, 0xc8, 0x65, 0xca, 0x19, 0x52,
  2332  	0xe9, 0xe7, 0xfa, 0xba, 0xf8, 0xbe, 0xeb, 0x28, 0x45, 0xa7, 0xbe, 0xe3, 0xf2, 0x5c, 0x5d, 0xb4,
  2333  	0x9f, 0xe7, 0x5b, 0x14, 0x72, 0x3f, 0x83, 0xf5, 0x4e, 0x14, 0x66, 0x2a, 0xf2, 0x1b, 0xd6, 0x3b,
  2334  	0x6a, 0x4f, 0xaf, 0x31, 0x69, 0xd4, 0xe1, 0xab, 0x30, 0x93, 0xf7, 0x08, 0x18, 0x42, 0x3b, 0xe1,
  2335  	0x3c, 0x0d, 0xc5, 0x6d, 0x8c, 0x02, 0xba, 0x1e, 0x31, 0x0a, 0x95, 0x12, 0x8e, 0xe5, 0x3c, 0xf4,
  2336  	0x2d, 0x9c, 0xf8, 0x9e, 0xff, 0xfb, 0xb5, 0xe4, 0xa9, 0x08, 0xa2, 0x7b, 0xb3, 0xf1, 0x31, 0x74,
  2337  	0xc2, 0x2c, 0x5e, 0xca, 0x2c, 0x9c, 0x6a, 0xf7, 0xb4, 0x59, 0x01, 0xd0, 0x39, 0x1c, 0x6b, 0xd5,
  2338  	0x2f, 0x54, 0x55, 0xc8, 0x0e, 0x38, 0x79, 0x2b, 0x5a, 0xea, 0x3b, 0xd1, 0xa2, 0x6e, 0xe2, 0x62,
  2339  	0x6a, 0xe8, 0x26, 0xb2, 0x73, 0x80, 0xfe, 0x12, 0x1e, 0xe8, 0x9b, 0xfe, 0xa4, 0x13, 0xfc, 0x40,
  2340  	0x91, 0x19, 0xc2, 0x91, 0xef, 0xf9, 0x97, 0x62, 0xa5, 0x1c, 0x1c, 0x8a, 0x55, 0xd6, 0xaf, 0xa1,
  2341  	0x3d, 0xac, 0x83, 0x2f, 0xc5, 0x8a, 0x0b, 0x19, 0xa7, 0x1b, 0x86, 0x54, 0xfa, 0x0e, 0x3a, 0x39,
  2342  	0x44, 0x7a, 0x50, 0x97, 0x1b, 0x23, 0xb1, 0x2e, 0x37, 0xca, 0x26, 0xf3, 0x20, 0x9b, 0xe3, 0x83,
  2343  	0x8f, 0x19, 0xae, 0xc9, 0xa7, 0xaa, 0xae, 0x94, 0x9e, 0x69, 0x76, 0xf4, 0xca, 0x06, 0xc2, 0x77,
  2344  	0x81, 0x0c, 0x0e, 0xd8, 0xc2, 0x3e, 0xab, 0x7e, 0xf0, 0x59, 0x8f, 0xa1, 0xed, 0x7b, 0x3e, 0x8b,
  2345  	0x97, 0x92, 0x93, 0x53, 0x68, 0x8c, 0xc7, 0x57, 0x46, 0x8e, 0x5a, 0x52, 0x06, 0xae, 0xef, 0xf9,
  2346  	0xe3, 0x35, 0xa1, 0x50, 0x97, 0x6b, 0xa4, 0x14, 0x1e, 0x1f, 0x17, 0x45, 0x9c, 0xd5, 0xe5, 0x9a,
  2347  	0x7c, 0x01, 0x6e, 0xaa, 0xe4, 0xa0, 0x16, 0x5d, 0xef, 0xa4, 0x08, 0x0c, 0x14, 0xcf, 0x34, 0x95,
  2348  	0x0e, 0xf1, 0x46, 0x74, 0x25, 0xa1, 0xe0, 0x62, 0xa5, 0x37, 0x92, 0x8f, 0xcd, 0x11, 0x24, 0x32,
  2349  	0x4d, 0xa2, 0xff, 0xaa, 0x01, 0x5c, 0x29, 0xcd, 0xf5, 0x11, 0xa2, 0xd2, 0xe9, 0x7b, 0x1b, 0x96,
  2350  	0xb8, 0x2e, 0x95, 0xe0, 0xfa, 0xa1, 0x12, 0xfc, 0x15, 0xb4, 0x16, 0xa1, 0xe0, 0xe9, 0x78, 0x8d,
  2351  	0x26, 0xdd, 0xaf, 0x89, 0x65, 0x51, 0x91, 0x92, 0x8d, 0xd7, 0xa3, 0x20, 0x9b, 0xf3, 0xac, 0xdf,
  2352  	0xc4, 0x64, 0x29, 0x00, 0x3a, 0x82, 0x16, 0x3e, 0x6a, 0xbc, 0x56, 0x8e, 0x92, 0x08, 0xe3, 0x9b,
  2353  	0x8e, 0x99, 0xd9, 0x7d, 0xac, 0x3d, 0x28, 0xda, 0x63, 0xbc, 0x66, 0xfc, 0xee, 0x3e, 0x51, 0xf4,
  2354  	0x8f, 0x18, 0x97, 0x68, 0x00, 0xcd, 0xf8, 0x18, 0x3a, 0x68, 0x9d, 0x9c, 0xb7, 0xc3, 0x0a, 0x00,
  2355  	0xcb, 0xf7, 0xfa, 0x52, 0x4c, 0xc3, 0x09, 0xd7, 0xfe, 0x77, 0x59, 0x01, 0xd0, 0x0c, 0x73, 0x32,
  2356  	0x17, 0x96, 0x44, 0x9b, 0x1f, 0x23, 0x8e, 0x3c, 0x85, 0x86, 0x5c, 0x67, 0xfd, 0x46, 0xa5, 0x1a,
  2357  	0x94, 0x2d, 0xaa, 0xc8, 0x74, 0x8d, 0x39, 0xfc, 0xe7, 0x25, 0x4f, 0x37, 0x18, 0xb7, 0xcf, 0xc0,
  2358  	0x95, 0x4a, 0x13, 0xe3, 0xf9, 0x92, 0x71, 0x50, 0xc1, 0x91, 0xc3, 0x34, 0x9d, 0xbc, 0x01, 0xb8,
  2359  	0xc9, 0xf5, 0x36, 0xa6, 0x7c, 0x54, 0x70, 0x17, 0x36, 0x19, 0x39, 0xac, 0xc4, 0x79, 0xd1, 0x02,
  2360  	0x77, 0x15, 0x44, 0x4b, 0x55, 0x3d, 0xda, 0xa6, 0x15, 0x66, 0xe4, 0x33, 0x80, 0xc4, 0x4b, 0xaa,
  2361  	0x09, 0x53, 0x42, 0xb0, 0x7e, 0xc4, 0xb7, 0xd2, 0x32, 0xe8, 0xd2, 0x5e, 0x86, 0x54, 0x05, 0x55,
  2362  	0xc5, 0xad, 0x34, 0x27, 0xe4, 0x7b, 0xfa, 0x43, 0x1d, 0x1e, 0x5c, 0xa4, 0x71, 0x30, 0x7d, 0x1b,
  2363  	0x64, 0x3a, 0x3b, 0x3f, 0x2b, 0xa5, 0xcd, 0x71, 0x59, 0xc5, 0x91, 0x83, 0x29, 0xf3, 0xcc, 0xc6,
  2364  	0xff, 0x4e, 0x88, 0xa0, 0x5e, 0xca, 0x0a, 0x48, 0x57, 0xc9, 0x9c, 0x84, 0x62, 0x66, 0xe2, 0xb6,
  2365  	0x57, 0xaa, 0xb9, 0xa1, 0x98, 0x8d, 0x1c, 0x86, 0x54, 0xf2, 0xa2, 0x28, 0x06, 0xcd, 0x8a, 0x40,
  2366  	0x6b, 0x80, 0x91, 0x53, 0xa9, 0x0f, 0x91, 0x1c, 0xaf, 0xcd, 0xd4, 0x62, 0x45, 0x9a, 0xa0, 0x56,
  2367  	0x22, 0x15, 0x95, 0xbc, 0x84, 0x56, 0xa4, 0x33, 0x0f, 0xbb, 0x76, 0xd7, 0x7b, 0x58, 0x66, 0xb4,
  2368  	0xaf, 0xb4, 0x3c, 0xe4, 0x05, 0xb8, 0x77, 0xca, 0xc7, 0xd8, 0xc8, 0xbb, 0xde, 0x27, 0xc5, 0x43,
  2369  	0x73, 0xd7, 0x2b, 0xa5, 0x90, 0x87, 0x7c, 0x03, 0x6d, 0xd4, 0x8e, 0xf1, 0x04, 0x1b, 0x7b, 0xd7,
  2370  	0xfb, 0x74, 0x8f, 0x63, 0x93, 0x68, 0x33, 0x72, 0x58, 0xce, 0x59, 0x38, 0x36, 0xb4, 0xc5, 0x5a,
  2371  	0xa7, 0xf9, 0x4f, 0xd9, 0x17, 0x7e, 0x8d, 0x35, 0xd7, 0xde, 0xf3, 0x0c, 0x5a, 0xba, 0xa2, 0xd8,
  2372  	0x9a, 0xbf, 0x55, 0x6f, 0x2c, 0x95, 0x0a, 0x68, 0x5d, 0x8a, 0x15, 0x46, 0xc2, 0xd3, 0xc3, 0x05,
  2373  	0xd4, 0xc4, 0xc3, 0xd3, 0x6a, 0x3c, 0x54, 0xea, 0x61, 0x11, 0x0c, 0xba, 0x7b, 0x34, 0x6c, 0xf7,
  2374  	0x28, 0x2c, 0xf2, 0x1a, 0xda, 0xe6, 0x3e, 0x95, 0x96, 0x6e, 0x28, 0xf9, 0xc2, 0x3e, 0xb1, 0x57,
  2375  	0xd4, 0x7f, 0x45, 0x67, 0x9a, 0x48, 0xff, 0x51, 0x87, 0xa6, 0x6a, 0xdb, 0x3f, 0x6a, 0x46, 0x56,
  2376  	0x25, 0x99, 0x47, 0xb7, 0x18, 0x73, 0x6d, 0x86, 0xeb, 0xed, 0xb9, 0xd9, 0x3d, 0x34, 0x37, 0x1f,
  2377  	0x7d, 0xe4, 0xdc, 0xdc, 0xfa, 0x5f, 0x73, 0x73, 0xfb, 0x23, 0xe7, 0xe6, 0xce, 0xde, 0xb9, 0xf9,
  2378  	0x25, 0xb4, 0x95, 0x29, 0x70, 0xfa, 0xf9, 0x05, 0xb8, 0x2a, 0xad, 0xad, 0xf5, 0xba, 0x36, 0x2e,
  2379  	0x39, 0x4f, 0x99, 0xa6, 0x14, 0xb3, 0x02, 0x82, 0xfc, 0x4e, 0xbd, 0x34, 0xf1, 0x92, 0xf1, 0x26,
  2380  	0xe1, 0xc6, 0x8a, 0x76, 0x4b, 0xbf, 0x82, 0x53, 0xcd, 0xfa, 0x9e, 0x4b, 0x1c, 0x90, 0x0e, 0x72,
  2381  	0xff, 0xbb, 0x0e, 0xdd, 0xf7, 0xf1, 0x94, 0x1b, 0x66, 0x42, 0xe1, 0x98, 0x9b, 0x01, 0xaa, 0xe4,
  2382  	0xa2, 0x0a, 0xa6, 0xc2, 0x17, 0xb5, 0x2e, 0x4d, 0xa4, 0x05, 0x50, 0x9e, 0x7d, 0x1b, 0xe8, 0xa3,
  2383  	0xf2, 0xa0, 0x1f, 0x2f, 0xe5, 0x4d, 0xbc, 0x14, 0xd3, 0xcc, 0x7c, 0xdc, 0x14, 0x80, 0x2a, 0x76,
  2384  	0xa1, 0x30, 0x44, 0xed, 0xc1, 0x7c, 0xaf, 0x5e, 0xa5, 0xfa, 0x57, 0x28, 0x66, 0x32, 0xb8, 0x89,
  2385  	0xf4, 0x4c, 0xef, 0xb2, 0x0a, 0xa6, 0xa4, 0xa3, 0xad, 0x94, 0x9d, 0xd1, 0x7b, 0x2e, 0x2b, 0x00,
  2386  	0xd5, 0xec, 0xd2, 0x40, 0xf2, 0xd0, 0xfa, 0xcd, 0xec, 0xd4, 0x6b, 0xd5, 0x2a, 0x5e, 0x4a, 0xe3,
  2387  	0x28, 0xbb, 0x55, 0xf2, 0xd4, 0x52, 0xc6, 0x32, 0x88, 0xfa, 0xa0, 0xb5, 0xcc, 0x01, 0xfa, 0x0d,
  2388  	0x80, 0x72, 0x45, 0xa6, 0x5b, 0xda, 0x97, 0x55, 0x0f, 0x9e, 0x96, 0x3c, 0x98, 0xa1, 0x0f, 0x8c,
  2389  	0x1b, 0xff, 0x5e, 0x83, 0x4e, 0x0e, 0xe6, 0xe1, 0x5d, 0x2b, 0x85, 0x77, 0x0f, 0xea, 0x61, 0x62,
  2390  	0x8c, 0x5a, 0x0f, 0x93, 0xbd, 0x43, 0xfe, 0x56, 0xe3, 0x68, 0xee, 0x36, 0x8e, 0x6a, 0xeb, 0x71,
  2391  	0xb7, 0x5b, 0x8f, 0xf7, 0xcf, 0x16, 0x74, 0x13, 0x2f, 0x99, 0x59, 0xcf, 0xbc, 0x80, 0x6e, 0xde,
  2392  	0x4b, 0xc6, 0x6b, 0x52, 0xe9, 0x1e, 0x03, 0xbb, 0x43, 0x55, 0xa9, 0x43, 0xbe, 0x86, 0x5e, 0xce,
  2393  	0xac, 0x0b, 0xf1, 0x76, 0x2b, 0xd9, 0x39, 0xf2, 0x1c, 0x9a, 0xf8, 0x71, 0xb3, 0xd5, 0x4b, 0x06,
  2394  	0xe5, 0x7d, 0x2c, 0x66, 0xd4, 0x21, 0x43, 0x68, 0xd9, 0xcf, 0x8e, 0x87, 0x05, 0xd1, 0x40, 0x65,
  2395  	0x7e, 0xb5, 0xa7, 0x0e, 0x79, 0x03, 0x5d, 0x43, 0xc4, 0x54, 0xda, 0x73, 0x86, 0x54, 0xcf, 0x28,
  2396  	0x36, 0xea, 0x90, 0xd7, 0xd0, 0xb2, 0x29, 0x5b, 0x3a, 0x63, 0xa0, 0xc1, 0x69, 0x05, 0x3a, 0x9f,
  2397  	0x7c, 0xa0, 0x0e, 0xf1, 0xf2, 0xd6, 0xee, 0xed, 0x3b, 0xb2, 0x0b, 0x51, 0x87, 0xbc, 0x84, 0xee,
  2398  	0x75, 0x7c, 0x2b, 0xed, 0x4d, 0xdb, 0xea, 0xef, 0x5a, 0xb6, 0x53, 0x7c, 0x78, 0x7c, 0x52, 0x51,
  2399  	0x45, 0x83, 0x83, 0x07, 0x05, 0x78, 0x29, 0x56, 0xd4, 0x21, 0x67, 0x00, 0xfa, 0x0b, 0xc2, 0x57,
  2400  	0x5f, 0x10, 0x8f, 0x2a, 0x67, 0xcc, 0x77, 0xc5, 0xee, 0xa1, 0xaf, 0xd1, 0xc8, 0xd8, 0x2a, 0xaa,
  2401  	0x06, 0x53, 0xd0, 0xe0, 0xa4, 0x5a, 0xbd, 0x33, 0xea, 0xbc, 0xae, 0x91, 0xdf, 0xe0, 0x3d, 0xb6,
  2402  	0x29, 0x55, 0xef, 0x31, 0x68, 0xd9, 0x04, 0x06, 0xa2, 0x0e, 0xf9, 0x2d, 0x3a, 0x28, 0xff, 0x3d,
  2403  	0xf2, 0xb3, 0xca, 0x49, 0x0b, 0x0f, 0xf6, 0x7c, 0xd8, 0x51, 0x87, 0x7c, 0x0b, 0xa7, 0xd7, 0x3c,
  2404  	0x5d, 0xf1, 0xf4, 0x5a, 0xa6, 0x3c, 0x58, 0x30, 0x1e, 0x4c, 0xf3, 0xab, 0x2b, 0xb3, 0x4f, 0xae,
  2405  	0x22, 0xe3, 0x77, 0xef, 0xc3, 0x88, 0x3a, 0xcf, 0x6b, 0xe4, 0x77, 0xd5, 0xc3, 0xd7, 0x5c, 0x4c,
  2406  	0x77, 0x1c, 0xb0, 0x57, 0x18, 0xea, 0x7b, 0x06, 0xbd, 0xb7, 0x71, 0x14, 0xf1, 0x89, 0xbc, 0x14,
  2407  	0x98, 0xb1, 0x3b, 0x67, 0x4f, 0x4a, 0x49, 0x6e, 0x82, 0xea, 0x0d, 0x9c, 0x54, 0x0f, 0x79, 0x3b,
  2408  	0xa7, 0x1e, 0x96, 0x4b, 0x83, 0xf1, 0xfb, 0xc5, 0xe7, 0x7f, 0xfb, 0xf9, 0x2c, 0x94, 0xf3, 0xe5,
  2409  	0xcd, 0x70, 0x12, 0x2f, 0x5e, 0x9d, 0x9d, 0x4d, 0xc4, 0x2b, 0xfc, 0x1d, 0x75, 0x76, 0xf6, 0x0a,
  2410  	0xb9, 0x6f, 0x8e, 0xf0, 0xbf, 0xd4, 0xd9, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x19, 0x3b,
  2411  	0x8b, 0xde, 0x12, 0x00, 0x00,
  2412  }
  2413  
  2414  // Reference imports to suppress errors if they are not otherwise used.
  2415  var _ context.Context
  2416  var _ grpc.ClientConnInterface
  2417  
  2418  // This is a compile-time assertion to ensure that this generated file
  2419  // is compatible with the grpc package it is being compiled against.
  2420  const _ = grpc.SupportPackageIsVersion6
  2421  
  2422  // P2PgserviceClient is the client API for P2Pgservice service.
  2423  //
  2424  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  2425  type P2PgserviceClient interface {
  2426  	//广播交易
  2427  	BroadCastTx(ctx context.Context, in *P2PTx, opts ...grpc.CallOption) (*Reply, error)
  2428  	//广播区块
  2429  	BroadCastBlock(ctx context.Context, in *P2PBlock, opts ...grpc.CallOption) (*Reply, error)
  2430  	// PING
  2431  	Ping(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*P2PPong, error)
  2432  	//获取地址
  2433  	GetAddr(ctx context.Context, in *P2PGetAddr, opts ...grpc.CallOption) (*P2PAddr, error)
  2434  	GetAddrList(ctx context.Context, in *P2PGetAddr, opts ...grpc.CallOption) (*P2PAddrList, error)
  2435  	//版本
  2436  	Version(ctx context.Context, in *P2PVersion, opts ...grpc.CallOption) (*P2PVerAck, error)
  2437  	//获取p2p协议的版本号
  2438  	Version2(ctx context.Context, in *P2PVersion, opts ...grpc.CallOption) (*P2PVersion, error)
  2439  	//获取软件的版本号
  2440  	SoftVersion(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*Reply, error)
  2441  	//获取区块,最高200
  2442  	GetBlocks(ctx context.Context, in *P2PGetBlocks, opts ...grpc.CallOption) (*P2PInv, error)
  2443  	//获取mempool
  2444  	GetMemPool(ctx context.Context, in *P2PGetMempool, opts ...grpc.CallOption) (*P2PInv, error)
  2445  	//获取数据
  2446  	GetData(ctx context.Context, in *P2PGetData, opts ...grpc.CallOption) (P2Pgservice_GetDataClient, error)
  2447  	//获取头部
  2448  	GetHeaders(ctx context.Context, in *P2PGetHeaders, opts ...grpc.CallOption) (*P2PHeaders, error)
  2449  	//获取 peerinfo
  2450  	GetPeerInfo(ctx context.Context, in *P2PGetPeerInfo, opts ...grpc.CallOption) (*P2PPeerInfo, error)
  2451  	// grpc server 读客户端发送来的数据
  2452  	ServerStreamRead(ctx context.Context, opts ...grpc.CallOption) (P2Pgservice_ServerStreamReadClient, error)
  2453  	// grpc server 发送数据给客户端
  2454  	ServerStreamSend(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (P2Pgservice_ServerStreamSendClient, error)
  2455  	// grpc 收集inpeers
  2456  	CollectInPeers(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*PeerList, error)
  2457  	CollectInPeers2(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*PeersReply, error)
  2458  }
  2459  
  2460  type p2PgserviceClient struct {
  2461  	cc grpc.ClientConnInterface
  2462  }
  2463  
  2464  func NewP2PgserviceClient(cc grpc.ClientConnInterface) P2PgserviceClient {
  2465  	return &p2PgserviceClient{cc}
  2466  }
  2467  
  2468  func (c *p2PgserviceClient) BroadCastTx(ctx context.Context, in *P2PTx, opts ...grpc.CallOption) (*Reply, error) {
  2469  	out := new(Reply)
  2470  	err := c.cc.Invoke(ctx, "/types.p2pgservice/BroadCastTx", in, out, opts...)
  2471  	if err != nil {
  2472  		return nil, err
  2473  	}
  2474  	return out, nil
  2475  }
  2476  
  2477  func (c *p2PgserviceClient) BroadCastBlock(ctx context.Context, in *P2PBlock, opts ...grpc.CallOption) (*Reply, error) {
  2478  	out := new(Reply)
  2479  	err := c.cc.Invoke(ctx, "/types.p2pgservice/BroadCastBlock", in, out, opts...)
  2480  	if err != nil {
  2481  		return nil, err
  2482  	}
  2483  	return out, nil
  2484  }
  2485  
  2486  func (c *p2PgserviceClient) Ping(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*P2PPong, error) {
  2487  	out := new(P2PPong)
  2488  	err := c.cc.Invoke(ctx, "/types.p2pgservice/Ping", in, out, opts...)
  2489  	if err != nil {
  2490  		return nil, err
  2491  	}
  2492  	return out, nil
  2493  }
  2494  
  2495  func (c *p2PgserviceClient) GetAddr(ctx context.Context, in *P2PGetAddr, opts ...grpc.CallOption) (*P2PAddr, error) {
  2496  	out := new(P2PAddr)
  2497  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetAddr", in, out, opts...)
  2498  	if err != nil {
  2499  		return nil, err
  2500  	}
  2501  	return out, nil
  2502  }
  2503  
  2504  func (c *p2PgserviceClient) GetAddrList(ctx context.Context, in *P2PGetAddr, opts ...grpc.CallOption) (*P2PAddrList, error) {
  2505  	out := new(P2PAddrList)
  2506  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetAddrList", in, out, opts...)
  2507  	if err != nil {
  2508  		return nil, err
  2509  	}
  2510  	return out, nil
  2511  }
  2512  
  2513  func (c *p2PgserviceClient) Version(ctx context.Context, in *P2PVersion, opts ...grpc.CallOption) (*P2PVerAck, error) {
  2514  	out := new(P2PVerAck)
  2515  	err := c.cc.Invoke(ctx, "/types.p2pgservice/Version", in, out, opts...)
  2516  	if err != nil {
  2517  		return nil, err
  2518  	}
  2519  	return out, nil
  2520  }
  2521  
  2522  func (c *p2PgserviceClient) Version2(ctx context.Context, in *P2PVersion, opts ...grpc.CallOption) (*P2PVersion, error) {
  2523  	out := new(P2PVersion)
  2524  	err := c.cc.Invoke(ctx, "/types.p2pgservice/Version2", in, out, opts...)
  2525  	if err != nil {
  2526  		return nil, err
  2527  	}
  2528  	return out, nil
  2529  }
  2530  
  2531  func (c *p2PgserviceClient) SoftVersion(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*Reply, error) {
  2532  	out := new(Reply)
  2533  	err := c.cc.Invoke(ctx, "/types.p2pgservice/SoftVersion", in, out, opts...)
  2534  	if err != nil {
  2535  		return nil, err
  2536  	}
  2537  	return out, nil
  2538  }
  2539  
  2540  func (c *p2PgserviceClient) GetBlocks(ctx context.Context, in *P2PGetBlocks, opts ...grpc.CallOption) (*P2PInv, error) {
  2541  	out := new(P2PInv)
  2542  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetBlocks", in, out, opts...)
  2543  	if err != nil {
  2544  		return nil, err
  2545  	}
  2546  	return out, nil
  2547  }
  2548  
  2549  func (c *p2PgserviceClient) GetMemPool(ctx context.Context, in *P2PGetMempool, opts ...grpc.CallOption) (*P2PInv, error) {
  2550  	out := new(P2PInv)
  2551  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetMemPool", in, out, opts...)
  2552  	if err != nil {
  2553  		return nil, err
  2554  	}
  2555  	return out, nil
  2556  }
  2557  
  2558  func (c *p2PgserviceClient) GetData(ctx context.Context, in *P2PGetData, opts ...grpc.CallOption) (P2Pgservice_GetDataClient, error) {
  2559  	stream, err := c.cc.NewStream(ctx, &_P2Pgservice_serviceDesc.Streams[0], "/types.p2pgservice/GetData", opts...)
  2560  	if err != nil {
  2561  		return nil, err
  2562  	}
  2563  	x := &p2PgserviceGetDataClient{stream}
  2564  	if err := x.ClientStream.SendMsg(in); err != nil {
  2565  		return nil, err
  2566  	}
  2567  	if err := x.ClientStream.CloseSend(); err != nil {
  2568  		return nil, err
  2569  	}
  2570  	return x, nil
  2571  }
  2572  
  2573  type P2Pgservice_GetDataClient interface {
  2574  	Recv() (*InvDatas, error)
  2575  	grpc.ClientStream
  2576  }
  2577  
  2578  type p2PgserviceGetDataClient struct {
  2579  	grpc.ClientStream
  2580  }
  2581  
  2582  func (x *p2PgserviceGetDataClient) Recv() (*InvDatas, error) {
  2583  	m := new(InvDatas)
  2584  	if err := x.ClientStream.RecvMsg(m); err != nil {
  2585  		return nil, err
  2586  	}
  2587  	return m, nil
  2588  }
  2589  
  2590  func (c *p2PgserviceClient) GetHeaders(ctx context.Context, in *P2PGetHeaders, opts ...grpc.CallOption) (*P2PHeaders, error) {
  2591  	out := new(P2PHeaders)
  2592  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetHeaders", in, out, opts...)
  2593  	if err != nil {
  2594  		return nil, err
  2595  	}
  2596  	return out, nil
  2597  }
  2598  
  2599  func (c *p2PgserviceClient) GetPeerInfo(ctx context.Context, in *P2PGetPeerInfo, opts ...grpc.CallOption) (*P2PPeerInfo, error) {
  2600  	out := new(P2PPeerInfo)
  2601  	err := c.cc.Invoke(ctx, "/types.p2pgservice/GetPeerInfo", in, out, opts...)
  2602  	if err != nil {
  2603  		return nil, err
  2604  	}
  2605  	return out, nil
  2606  }
  2607  
  2608  func (c *p2PgserviceClient) ServerStreamRead(ctx context.Context, opts ...grpc.CallOption) (P2Pgservice_ServerStreamReadClient, error) {
  2609  	stream, err := c.cc.NewStream(ctx, &_P2Pgservice_serviceDesc.Streams[1], "/types.p2pgservice/ServerStreamRead", opts...)
  2610  	if err != nil {
  2611  		return nil, err
  2612  	}
  2613  	x := &p2PgserviceServerStreamReadClient{stream}
  2614  	return x, nil
  2615  }
  2616  
  2617  type P2Pgservice_ServerStreamReadClient interface {
  2618  	Send(*BroadCastData) error
  2619  	CloseAndRecv() (*ReqNil, error)
  2620  	grpc.ClientStream
  2621  }
  2622  
  2623  type p2PgserviceServerStreamReadClient struct {
  2624  	grpc.ClientStream
  2625  }
  2626  
  2627  func (x *p2PgserviceServerStreamReadClient) Send(m *BroadCastData) error {
  2628  	return x.ClientStream.SendMsg(m)
  2629  }
  2630  
  2631  func (x *p2PgserviceServerStreamReadClient) CloseAndRecv() (*ReqNil, error) {
  2632  	if err := x.ClientStream.CloseSend(); err != nil {
  2633  		return nil, err
  2634  	}
  2635  	m := new(ReqNil)
  2636  	if err := x.ClientStream.RecvMsg(m); err != nil {
  2637  		return nil, err
  2638  	}
  2639  	return m, nil
  2640  }
  2641  
  2642  func (c *p2PgserviceClient) ServerStreamSend(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (P2Pgservice_ServerStreamSendClient, error) {
  2643  	stream, err := c.cc.NewStream(ctx, &_P2Pgservice_serviceDesc.Streams[2], "/types.p2pgservice/ServerStreamSend", opts...)
  2644  	if err != nil {
  2645  		return nil, err
  2646  	}
  2647  	x := &p2PgserviceServerStreamSendClient{stream}
  2648  	if err := x.ClientStream.SendMsg(in); err != nil {
  2649  		return nil, err
  2650  	}
  2651  	if err := x.ClientStream.CloseSend(); err != nil {
  2652  		return nil, err
  2653  	}
  2654  	return x, nil
  2655  }
  2656  
  2657  type P2Pgservice_ServerStreamSendClient interface {
  2658  	Recv() (*BroadCastData, error)
  2659  	grpc.ClientStream
  2660  }
  2661  
  2662  type p2PgserviceServerStreamSendClient struct {
  2663  	grpc.ClientStream
  2664  }
  2665  
  2666  func (x *p2PgserviceServerStreamSendClient) Recv() (*BroadCastData, error) {
  2667  	m := new(BroadCastData)
  2668  	if err := x.ClientStream.RecvMsg(m); err != nil {
  2669  		return nil, err
  2670  	}
  2671  	return m, nil
  2672  }
  2673  
  2674  func (c *p2PgserviceClient) CollectInPeers(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*PeerList, error) {
  2675  	out := new(PeerList)
  2676  	err := c.cc.Invoke(ctx, "/types.p2pgservice/CollectInPeers", in, out, opts...)
  2677  	if err != nil {
  2678  		return nil, err
  2679  	}
  2680  	return out, nil
  2681  }
  2682  
  2683  func (c *p2PgserviceClient) CollectInPeers2(ctx context.Context, in *P2PPing, opts ...grpc.CallOption) (*PeersReply, error) {
  2684  	out := new(PeersReply)
  2685  	err := c.cc.Invoke(ctx, "/types.p2pgservice/CollectInPeers2", in, out, opts...)
  2686  	if err != nil {
  2687  		return nil, err
  2688  	}
  2689  	return out, nil
  2690  }
  2691  
  2692  // P2PgserviceServer is the server API for P2Pgservice service.
  2693  type P2PgserviceServer interface {
  2694  	//广播交易
  2695  	BroadCastTx(context.Context, *P2PTx) (*Reply, error)
  2696  	//广播区块
  2697  	BroadCastBlock(context.Context, *P2PBlock) (*Reply, error)
  2698  	// PING
  2699  	Ping(context.Context, *P2PPing) (*P2PPong, error)
  2700  	//获取地址
  2701  	GetAddr(context.Context, *P2PGetAddr) (*P2PAddr, error)
  2702  	GetAddrList(context.Context, *P2PGetAddr) (*P2PAddrList, error)
  2703  	//版本
  2704  	Version(context.Context, *P2PVersion) (*P2PVerAck, error)
  2705  	//获取p2p协议的版本号
  2706  	Version2(context.Context, *P2PVersion) (*P2PVersion, error)
  2707  	//获取软件的版本号
  2708  	SoftVersion(context.Context, *P2PPing) (*Reply, error)
  2709  	//获取区块,最高200
  2710  	GetBlocks(context.Context, *P2PGetBlocks) (*P2PInv, error)
  2711  	//获取mempool
  2712  	GetMemPool(context.Context, *P2PGetMempool) (*P2PInv, error)
  2713  	//获取数据
  2714  	GetData(*P2PGetData, P2Pgservice_GetDataServer) error
  2715  	//获取头部
  2716  	GetHeaders(context.Context, *P2PGetHeaders) (*P2PHeaders, error)
  2717  	//获取 peerinfo
  2718  	GetPeerInfo(context.Context, *P2PGetPeerInfo) (*P2PPeerInfo, error)
  2719  	// grpc server 读客户端发送来的数据
  2720  	ServerStreamRead(P2Pgservice_ServerStreamReadServer) error
  2721  	// grpc server 发送数据给客户端
  2722  	ServerStreamSend(*P2PPing, P2Pgservice_ServerStreamSendServer) error
  2723  	// grpc 收集inpeers
  2724  	CollectInPeers(context.Context, *P2PPing) (*PeerList, error)
  2725  	CollectInPeers2(context.Context, *P2PPing) (*PeersReply, error)
  2726  }
  2727  
  2728  // UnimplementedP2PgserviceServer can be embedded to have forward compatible implementations.
  2729  type UnimplementedP2PgserviceServer struct {
  2730  }
  2731  
  2732  func (*UnimplementedP2PgserviceServer) BroadCastTx(ctx context.Context, req *P2PTx) (*Reply, error) {
  2733  	return nil, status.Errorf(codes.Unimplemented, "method BroadCastTx not implemented")
  2734  }
  2735  func (*UnimplementedP2PgserviceServer) BroadCastBlock(ctx context.Context, req *P2PBlock) (*Reply, error) {
  2736  	return nil, status.Errorf(codes.Unimplemented, "method BroadCastBlock not implemented")
  2737  }
  2738  func (*UnimplementedP2PgserviceServer) Ping(ctx context.Context, req *P2PPing) (*P2PPong, error) {
  2739  	return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
  2740  }
  2741  func (*UnimplementedP2PgserviceServer) GetAddr(ctx context.Context, req *P2PGetAddr) (*P2PAddr, error) {
  2742  	return nil, status.Errorf(codes.Unimplemented, "method GetAddr not implemented")
  2743  }
  2744  func (*UnimplementedP2PgserviceServer) GetAddrList(ctx context.Context, req *P2PGetAddr) (*P2PAddrList, error) {
  2745  	return nil, status.Errorf(codes.Unimplemented, "method GetAddrList not implemented")
  2746  }
  2747  func (*UnimplementedP2PgserviceServer) Version(ctx context.Context, req *P2PVersion) (*P2PVerAck, error) {
  2748  	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
  2749  }
  2750  func (*UnimplementedP2PgserviceServer) Version2(ctx context.Context, req *P2PVersion) (*P2PVersion, error) {
  2751  	return nil, status.Errorf(codes.Unimplemented, "method Version2 not implemented")
  2752  }
  2753  func (*UnimplementedP2PgserviceServer) SoftVersion(ctx context.Context, req *P2PPing) (*Reply, error) {
  2754  	return nil, status.Errorf(codes.Unimplemented, "method SoftVersion not implemented")
  2755  }
  2756  func (*UnimplementedP2PgserviceServer) GetBlocks(ctx context.Context, req *P2PGetBlocks) (*P2PInv, error) {
  2757  	return nil, status.Errorf(codes.Unimplemented, "method GetBlocks not implemented")
  2758  }
  2759  func (*UnimplementedP2PgserviceServer) GetMemPool(ctx context.Context, req *P2PGetMempool) (*P2PInv, error) {
  2760  	return nil, status.Errorf(codes.Unimplemented, "method GetMemPool not implemented")
  2761  }
  2762  func (*UnimplementedP2PgserviceServer) GetData(req *P2PGetData, srv P2Pgservice_GetDataServer) error {
  2763  	return status.Errorf(codes.Unimplemented, "method GetData not implemented")
  2764  }
  2765  func (*UnimplementedP2PgserviceServer) GetHeaders(ctx context.Context, req *P2PGetHeaders) (*P2PHeaders, error) {
  2766  	return nil, status.Errorf(codes.Unimplemented, "method GetHeaders not implemented")
  2767  }
  2768  func (*UnimplementedP2PgserviceServer) GetPeerInfo(ctx context.Context, req *P2PGetPeerInfo) (*P2PPeerInfo, error) {
  2769  	return nil, status.Errorf(codes.Unimplemented, "method GetPeerInfo not implemented")
  2770  }
  2771  func (*UnimplementedP2PgserviceServer) ServerStreamRead(srv P2Pgservice_ServerStreamReadServer) error {
  2772  	return status.Errorf(codes.Unimplemented, "method ServerStreamRead not implemented")
  2773  }
  2774  func (*UnimplementedP2PgserviceServer) ServerStreamSend(req *P2PPing, srv P2Pgservice_ServerStreamSendServer) error {
  2775  	return status.Errorf(codes.Unimplemented, "method ServerStreamSend not implemented")
  2776  }
  2777  func (*UnimplementedP2PgserviceServer) CollectInPeers(ctx context.Context, req *P2PPing) (*PeerList, error) {
  2778  	return nil, status.Errorf(codes.Unimplemented, "method CollectInPeers not implemented")
  2779  }
  2780  func (*UnimplementedP2PgserviceServer) CollectInPeers2(ctx context.Context, req *P2PPing) (*PeersReply, error) {
  2781  	return nil, status.Errorf(codes.Unimplemented, "method CollectInPeers2 not implemented")
  2782  }
  2783  
  2784  func RegisterP2PgserviceServer(s *grpc.Server, srv P2PgserviceServer) {
  2785  	s.RegisterService(&_P2Pgservice_serviceDesc, srv)
  2786  }
  2787  
  2788  func _P2Pgservice_BroadCastTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2789  	in := new(P2PTx)
  2790  	if err := dec(in); err != nil {
  2791  		return nil, err
  2792  	}
  2793  	if interceptor == nil {
  2794  		return srv.(P2PgserviceServer).BroadCastTx(ctx, in)
  2795  	}
  2796  	info := &grpc.UnaryServerInfo{
  2797  		Server:     srv,
  2798  		FullMethod: "/types.p2pgservice/BroadCastTx",
  2799  	}
  2800  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2801  		return srv.(P2PgserviceServer).BroadCastTx(ctx, req.(*P2PTx))
  2802  	}
  2803  	return interceptor(ctx, in, info, handler)
  2804  }
  2805  
  2806  func _P2Pgservice_BroadCastBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2807  	in := new(P2PBlock)
  2808  	if err := dec(in); err != nil {
  2809  		return nil, err
  2810  	}
  2811  	if interceptor == nil {
  2812  		return srv.(P2PgserviceServer).BroadCastBlock(ctx, in)
  2813  	}
  2814  	info := &grpc.UnaryServerInfo{
  2815  		Server:     srv,
  2816  		FullMethod: "/types.p2pgservice/BroadCastBlock",
  2817  	}
  2818  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2819  		return srv.(P2PgserviceServer).BroadCastBlock(ctx, req.(*P2PBlock))
  2820  	}
  2821  	return interceptor(ctx, in, info, handler)
  2822  }
  2823  
  2824  func _P2Pgservice_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2825  	in := new(P2PPing)
  2826  	if err := dec(in); err != nil {
  2827  		return nil, err
  2828  	}
  2829  	if interceptor == nil {
  2830  		return srv.(P2PgserviceServer).Ping(ctx, in)
  2831  	}
  2832  	info := &grpc.UnaryServerInfo{
  2833  		Server:     srv,
  2834  		FullMethod: "/types.p2pgservice/Ping",
  2835  	}
  2836  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2837  		return srv.(P2PgserviceServer).Ping(ctx, req.(*P2PPing))
  2838  	}
  2839  	return interceptor(ctx, in, info, handler)
  2840  }
  2841  
  2842  func _P2Pgservice_GetAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2843  	in := new(P2PGetAddr)
  2844  	if err := dec(in); err != nil {
  2845  		return nil, err
  2846  	}
  2847  	if interceptor == nil {
  2848  		return srv.(P2PgserviceServer).GetAddr(ctx, in)
  2849  	}
  2850  	info := &grpc.UnaryServerInfo{
  2851  		Server:     srv,
  2852  		FullMethod: "/types.p2pgservice/GetAddr",
  2853  	}
  2854  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2855  		return srv.(P2PgserviceServer).GetAddr(ctx, req.(*P2PGetAddr))
  2856  	}
  2857  	return interceptor(ctx, in, info, handler)
  2858  }
  2859  
  2860  func _P2Pgservice_GetAddrList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2861  	in := new(P2PGetAddr)
  2862  	if err := dec(in); err != nil {
  2863  		return nil, err
  2864  	}
  2865  	if interceptor == nil {
  2866  		return srv.(P2PgserviceServer).GetAddrList(ctx, in)
  2867  	}
  2868  	info := &grpc.UnaryServerInfo{
  2869  		Server:     srv,
  2870  		FullMethod: "/types.p2pgservice/GetAddrList",
  2871  	}
  2872  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2873  		return srv.(P2PgserviceServer).GetAddrList(ctx, req.(*P2PGetAddr))
  2874  	}
  2875  	return interceptor(ctx, in, info, handler)
  2876  }
  2877  
  2878  func _P2Pgservice_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2879  	in := new(P2PVersion)
  2880  	if err := dec(in); err != nil {
  2881  		return nil, err
  2882  	}
  2883  	if interceptor == nil {
  2884  		return srv.(P2PgserviceServer).Version(ctx, in)
  2885  	}
  2886  	info := &grpc.UnaryServerInfo{
  2887  		Server:     srv,
  2888  		FullMethod: "/types.p2pgservice/Version",
  2889  	}
  2890  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2891  		return srv.(P2PgserviceServer).Version(ctx, req.(*P2PVersion))
  2892  	}
  2893  	return interceptor(ctx, in, info, handler)
  2894  }
  2895  
  2896  func _P2Pgservice_Version2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2897  	in := new(P2PVersion)
  2898  	if err := dec(in); err != nil {
  2899  		return nil, err
  2900  	}
  2901  	if interceptor == nil {
  2902  		return srv.(P2PgserviceServer).Version2(ctx, in)
  2903  	}
  2904  	info := &grpc.UnaryServerInfo{
  2905  		Server:     srv,
  2906  		FullMethod: "/types.p2pgservice/Version2",
  2907  	}
  2908  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2909  		return srv.(P2PgserviceServer).Version2(ctx, req.(*P2PVersion))
  2910  	}
  2911  	return interceptor(ctx, in, info, handler)
  2912  }
  2913  
  2914  func _P2Pgservice_SoftVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2915  	in := new(P2PPing)
  2916  	if err := dec(in); err != nil {
  2917  		return nil, err
  2918  	}
  2919  	if interceptor == nil {
  2920  		return srv.(P2PgserviceServer).SoftVersion(ctx, in)
  2921  	}
  2922  	info := &grpc.UnaryServerInfo{
  2923  		Server:     srv,
  2924  		FullMethod: "/types.p2pgservice/SoftVersion",
  2925  	}
  2926  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2927  		return srv.(P2PgserviceServer).SoftVersion(ctx, req.(*P2PPing))
  2928  	}
  2929  	return interceptor(ctx, in, info, handler)
  2930  }
  2931  
  2932  func _P2Pgservice_GetBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2933  	in := new(P2PGetBlocks)
  2934  	if err := dec(in); err != nil {
  2935  		return nil, err
  2936  	}
  2937  	if interceptor == nil {
  2938  		return srv.(P2PgserviceServer).GetBlocks(ctx, in)
  2939  	}
  2940  	info := &grpc.UnaryServerInfo{
  2941  		Server:     srv,
  2942  		FullMethod: "/types.p2pgservice/GetBlocks",
  2943  	}
  2944  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2945  		return srv.(P2PgserviceServer).GetBlocks(ctx, req.(*P2PGetBlocks))
  2946  	}
  2947  	return interceptor(ctx, in, info, handler)
  2948  }
  2949  
  2950  func _P2Pgservice_GetMemPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2951  	in := new(P2PGetMempool)
  2952  	if err := dec(in); err != nil {
  2953  		return nil, err
  2954  	}
  2955  	if interceptor == nil {
  2956  		return srv.(P2PgserviceServer).GetMemPool(ctx, in)
  2957  	}
  2958  	info := &grpc.UnaryServerInfo{
  2959  		Server:     srv,
  2960  		FullMethod: "/types.p2pgservice/GetMemPool",
  2961  	}
  2962  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  2963  		return srv.(P2PgserviceServer).GetMemPool(ctx, req.(*P2PGetMempool))
  2964  	}
  2965  	return interceptor(ctx, in, info, handler)
  2966  }
  2967  
  2968  func _P2Pgservice_GetData_Handler(srv interface{}, stream grpc.ServerStream) error {
  2969  	m := new(P2PGetData)
  2970  	if err := stream.RecvMsg(m); err != nil {
  2971  		return err
  2972  	}
  2973  	return srv.(P2PgserviceServer).GetData(m, &p2PgserviceGetDataServer{stream})
  2974  }
  2975  
  2976  type P2Pgservice_GetDataServer interface {
  2977  	Send(*InvDatas) error
  2978  	grpc.ServerStream
  2979  }
  2980  
  2981  type p2PgserviceGetDataServer struct {
  2982  	grpc.ServerStream
  2983  }
  2984  
  2985  func (x *p2PgserviceGetDataServer) Send(m *InvDatas) error {
  2986  	return x.ServerStream.SendMsg(m)
  2987  }
  2988  
  2989  func _P2Pgservice_GetHeaders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  2990  	in := new(P2PGetHeaders)
  2991  	if err := dec(in); err != nil {
  2992  		return nil, err
  2993  	}
  2994  	if interceptor == nil {
  2995  		return srv.(P2PgserviceServer).GetHeaders(ctx, in)
  2996  	}
  2997  	info := &grpc.UnaryServerInfo{
  2998  		Server:     srv,
  2999  		FullMethod: "/types.p2pgservice/GetHeaders",
  3000  	}
  3001  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3002  		return srv.(P2PgserviceServer).GetHeaders(ctx, req.(*P2PGetHeaders))
  3003  	}
  3004  	return interceptor(ctx, in, info, handler)
  3005  }
  3006  
  3007  func _P2Pgservice_GetPeerInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3008  	in := new(P2PGetPeerInfo)
  3009  	if err := dec(in); err != nil {
  3010  		return nil, err
  3011  	}
  3012  	if interceptor == nil {
  3013  		return srv.(P2PgserviceServer).GetPeerInfo(ctx, in)
  3014  	}
  3015  	info := &grpc.UnaryServerInfo{
  3016  		Server:     srv,
  3017  		FullMethod: "/types.p2pgservice/GetPeerInfo",
  3018  	}
  3019  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3020  		return srv.(P2PgserviceServer).GetPeerInfo(ctx, req.(*P2PGetPeerInfo))
  3021  	}
  3022  	return interceptor(ctx, in, info, handler)
  3023  }
  3024  
  3025  func _P2Pgservice_ServerStreamRead_Handler(srv interface{}, stream grpc.ServerStream) error {
  3026  	return srv.(P2PgserviceServer).ServerStreamRead(&p2PgserviceServerStreamReadServer{stream})
  3027  }
  3028  
  3029  type P2Pgservice_ServerStreamReadServer interface {
  3030  	SendAndClose(*ReqNil) error
  3031  	Recv() (*BroadCastData, error)
  3032  	grpc.ServerStream
  3033  }
  3034  
  3035  type p2PgserviceServerStreamReadServer struct {
  3036  	grpc.ServerStream
  3037  }
  3038  
  3039  func (x *p2PgserviceServerStreamReadServer) SendAndClose(m *ReqNil) error {
  3040  	return x.ServerStream.SendMsg(m)
  3041  }
  3042  
  3043  func (x *p2PgserviceServerStreamReadServer) Recv() (*BroadCastData, error) {
  3044  	m := new(BroadCastData)
  3045  	if err := x.ServerStream.RecvMsg(m); err != nil {
  3046  		return nil, err
  3047  	}
  3048  	return m, nil
  3049  }
  3050  
  3051  func _P2Pgservice_ServerStreamSend_Handler(srv interface{}, stream grpc.ServerStream) error {
  3052  	m := new(P2PPing)
  3053  	if err := stream.RecvMsg(m); err != nil {
  3054  		return err
  3055  	}
  3056  	return srv.(P2PgserviceServer).ServerStreamSend(m, &p2PgserviceServerStreamSendServer{stream})
  3057  }
  3058  
  3059  type P2Pgservice_ServerStreamSendServer interface {
  3060  	Send(*BroadCastData) error
  3061  	grpc.ServerStream
  3062  }
  3063  
  3064  type p2PgserviceServerStreamSendServer struct {
  3065  	grpc.ServerStream
  3066  }
  3067  
  3068  func (x *p2PgserviceServerStreamSendServer) Send(m *BroadCastData) error {
  3069  	return x.ServerStream.SendMsg(m)
  3070  }
  3071  
  3072  func _P2Pgservice_CollectInPeers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3073  	in := new(P2PPing)
  3074  	if err := dec(in); err != nil {
  3075  		return nil, err
  3076  	}
  3077  	if interceptor == nil {
  3078  		return srv.(P2PgserviceServer).CollectInPeers(ctx, in)
  3079  	}
  3080  	info := &grpc.UnaryServerInfo{
  3081  		Server:     srv,
  3082  		FullMethod: "/types.p2pgservice/CollectInPeers",
  3083  	}
  3084  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3085  		return srv.(P2PgserviceServer).CollectInPeers(ctx, req.(*P2PPing))
  3086  	}
  3087  	return interceptor(ctx, in, info, handler)
  3088  }
  3089  
  3090  func _P2Pgservice_CollectInPeers2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  3091  	in := new(P2PPing)
  3092  	if err := dec(in); err != nil {
  3093  		return nil, err
  3094  	}
  3095  	if interceptor == nil {
  3096  		return srv.(P2PgserviceServer).CollectInPeers2(ctx, in)
  3097  	}
  3098  	info := &grpc.UnaryServerInfo{
  3099  		Server:     srv,
  3100  		FullMethod: "/types.p2pgservice/CollectInPeers2",
  3101  	}
  3102  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  3103  		return srv.(P2PgserviceServer).CollectInPeers2(ctx, req.(*P2PPing))
  3104  	}
  3105  	return interceptor(ctx, in, info, handler)
  3106  }
  3107  
  3108  var _P2Pgservice_serviceDesc = grpc.ServiceDesc{
  3109  	ServiceName: "types.p2pgservice",
  3110  	HandlerType: (*P2PgserviceServer)(nil),
  3111  	Methods: []grpc.MethodDesc{
  3112  		{
  3113  			MethodName: "BroadCastTx",
  3114  			Handler:    _P2Pgservice_BroadCastTx_Handler,
  3115  		},
  3116  		{
  3117  			MethodName: "BroadCastBlock",
  3118  			Handler:    _P2Pgservice_BroadCastBlock_Handler,
  3119  		},
  3120  		{
  3121  			MethodName: "Ping",
  3122  			Handler:    _P2Pgservice_Ping_Handler,
  3123  		},
  3124  		{
  3125  			MethodName: "GetAddr",
  3126  			Handler:    _P2Pgservice_GetAddr_Handler,
  3127  		},
  3128  		{
  3129  			MethodName: "GetAddrList",
  3130  			Handler:    _P2Pgservice_GetAddrList_Handler,
  3131  		},
  3132  		{
  3133  			MethodName: "Version",
  3134  			Handler:    _P2Pgservice_Version_Handler,
  3135  		},
  3136  		{
  3137  			MethodName: "Version2",
  3138  			Handler:    _P2Pgservice_Version2_Handler,
  3139  		},
  3140  		{
  3141  			MethodName: "SoftVersion",
  3142  			Handler:    _P2Pgservice_SoftVersion_Handler,
  3143  		},
  3144  		{
  3145  			MethodName: "GetBlocks",
  3146  			Handler:    _P2Pgservice_GetBlocks_Handler,
  3147  		},
  3148  		{
  3149  			MethodName: "GetMemPool",
  3150  			Handler:    _P2Pgservice_GetMemPool_Handler,
  3151  		},
  3152  		{
  3153  			MethodName: "GetHeaders",
  3154  			Handler:    _P2Pgservice_GetHeaders_Handler,
  3155  		},
  3156  		{
  3157  			MethodName: "GetPeerInfo",
  3158  			Handler:    _P2Pgservice_GetPeerInfo_Handler,
  3159  		},
  3160  		{
  3161  			MethodName: "CollectInPeers",
  3162  			Handler:    _P2Pgservice_CollectInPeers_Handler,
  3163  		},
  3164  		{
  3165  			MethodName: "CollectInPeers2",
  3166  			Handler:    _P2Pgservice_CollectInPeers2_Handler,
  3167  		},
  3168  	},
  3169  	Streams: []grpc.StreamDesc{
  3170  		{
  3171  			StreamName:    "GetData",
  3172  			Handler:       _P2Pgservice_GetData_Handler,
  3173  			ServerStreams: true,
  3174  		},
  3175  		{
  3176  			StreamName:    "ServerStreamRead",
  3177  			Handler:       _P2Pgservice_ServerStreamRead_Handler,
  3178  			ClientStreams: true,
  3179  		},
  3180  		{
  3181  			StreamName:    "ServerStreamSend",
  3182  			Handler:       _P2Pgservice_ServerStreamSend_Handler,
  3183  			ServerStreams: true,
  3184  		},
  3185  	},
  3186  	Metadata: "p2p.proto",
  3187  }