From 8eaff1baf4a9a5e2e7ec24214b3db74e1bd5d47e Mon Sep 17 00:00:00 2001 From: kehiy Date: Tue, 16 Jul 2024 19:57:20 +0330 Subject: [PATCH 1/6] feat(gRPC): adding is pruned and pruning height in node info API --- state/facade.go | 2 + state/mock.go | 8 + state/state.go | 18 + store/interface.go | 1 + store/mock.go | 4 + store/store.go | 4 + www/grpc/gen/dart/network.pb.dart | 212 +- www/grpc/gen/dart/network.pbjson.dart | 32 +- www/grpc/gen/docs/grpc.md | 14 + www/grpc/gen/docs/json-rpc.md | 14 + www/grpc/gen/go/network.pb.go | 398 +- .../pactus/network/NetworkOuterClass.java | 6295 +++++++++-------- www/grpc/gen/js/network_pb.js | 488 +- www/grpc/gen/python/network_pb2.py | 18 +- www/grpc/gen/rust/pactus.rs | 38 +- www/grpc/gen/rust/pactus.serde.rs | 38 + www/grpc/network.go | 2 + www/grpc/proto/network.proto | 28 +- www/grpc/swagger-ui/pactus.swagger.json | 9 + www/http/network.go | 2 + 20 files changed, 4023 insertions(+), 3602 deletions(-) diff --git a/state/facade.go b/state/facade.go index 7e44233fb..a7bb09399 100644 --- a/state/facade.go +++ b/state/facade.go @@ -55,4 +55,6 @@ type Facade interface { PublicKey(addr crypto.Address) (crypto.PublicKey, error) AvailabilityScore(valNum int32) float64 AllPendingTxs() []*tx.Tx + IsPruned() bool + PruningHeight() uint32 } diff --git a/state/mock.go b/state/mock.go index 6cc5c08d5..944b43571 100644 --- a/state/mock.go +++ b/state/mock.go @@ -267,3 +267,11 @@ func (*MockState) AvailabilityScore(_ int32) float64 { func (*MockState) AllPendingTxs() []*tx.Tx { return make([]*tx.Tx, 0) } + +func (m *MockState) IsPruned() bool { + return m.TestStore.IsPruned() +} + +func (m *MockState) PruningHeight() uint32 { + return m.TestStore.LastCert.Height() - m.TestStore.RetentionBlocks() +} diff --git a/state/state.go b/state/state.go index 1da7dad13..6d74d38df 100644 --- a/state/state.go +++ b/state/state.go @@ -762,3 +762,21 @@ func (st *state) AllPendingTxs() []*tx.Tx { return st.txPool.AllPendingTxs() } + +func (st *state) IsPruned() bool { + st.lk.RLock() + defer st.lk.RUnlock() + + return st.store.IsPruned() +} + +func (st *state) PruningHeight() uint32 { + if !st.store.IsPruned() { + return 0 + } + + lh := st.store.LastCertificate().Height() + rb := st.store.RetentionBlocks() + + return lh - rb +} diff --git a/store/interface.go b/store/interface.go index 88eff391e..ac765f90a 100644 --- a/store/interface.go +++ b/store/interface.go @@ -99,6 +99,7 @@ type Reader interface { LastCertificate() *certificate.BlockCertificate IsBanned(addr crypto.Address) bool IsPruned() bool + RetentionBlocks() uint32 } type Store interface { diff --git a/store/mock.go b/store/mock.go index 14fa31a6c..65916e427 100644 --- a/store/mock.go +++ b/store/mock.go @@ -297,3 +297,7 @@ func (*MockStore) Prune(_ func(_ bool, _ uint32) bool) error { func (*MockStore) IsPruned() bool { return false } + +func (*MockStore) RetentionBlocks() uint32 { + return 1 +} diff --git a/store/store.go b/store/store.go index c70749de3..2d487fbad 100644 --- a/store/store.go +++ b/store/store.go @@ -487,3 +487,7 @@ func (s *store) pruneBlock(blockHeight uint32) (bool, error) { return true, nil } + +func (s *store) RetentionBlocks() uint32 { + return s.config.RetentionDays +} diff --git a/www/grpc/gen/dart/network.pb.dart b/www/grpc/gen/dart/network.pb.dart index 6f61b6a97..0c77b9908 100644 --- a/www/grpc/gen/dart/network.pb.dart +++ b/www/grpc/gen/dart/network.pb.dart @@ -200,81 +200,6 @@ class GetNodeInfoRequest extends $pb.GeneratedMessage { static GetNodeInfoRequest? _defaultInstance; } -class ConnectionInfo extends $pb.GeneratedMessage { - static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ConnectionInfo', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'pactus'), createEmptyInstance: create) - ..a<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) - ..a<$fixnum.Int64>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'inboundConnections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) - ..a<$fixnum.Int64>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'outboundConnections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) - ..hasRequiredFields = false - ; - - ConnectionInfo._() : super(); - factory ConnectionInfo({ - $fixnum.Int64? connections, - $fixnum.Int64? inboundConnections, - $fixnum.Int64? outboundConnections, - }) { - final _result = create(); - if (connections != null) { - _result.connections = connections; - } - if (inboundConnections != null) { - _result.inboundConnections = inboundConnections; - } - if (outboundConnections != null) { - _result.outboundConnections = outboundConnections; - } - return _result; - } - factory ConnectionInfo.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory ConnectionInfo.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' - 'Will be removed in next major version') - ConnectionInfo clone() => ConnectionInfo()..mergeFromMessage(this); - @$core.Deprecated( - 'Using this can add significant overhead to your binary. ' - 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' - 'Will be removed in next major version') - ConnectionInfo copyWith(void Function(ConnectionInfo) updates) => super.copyWith((message) => updates(message as ConnectionInfo)) as ConnectionInfo; // ignore: deprecated_member_use - $pb.BuilderInfo get info_ => _i; - @$core.pragma('dart2js:noInline') - static ConnectionInfo create() => ConnectionInfo._(); - ConnectionInfo createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); - @$core.pragma('dart2js:noInline') - static ConnectionInfo getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static ConnectionInfo? _defaultInstance; - - @$pb.TagNumber(1) - $fixnum.Int64 get connections => $_getI64(0); - @$pb.TagNumber(1) - set connections($fixnum.Int64 v) { $_setInt64(0, v); } - @$pb.TagNumber(1) - $core.bool hasConnections() => $_has(0); - @$pb.TagNumber(1) - void clearConnections() => clearField(1); - - @$pb.TagNumber(2) - $fixnum.Int64 get inboundConnections => $_getI64(1); - @$pb.TagNumber(2) - set inboundConnections($fixnum.Int64 v) { $_setInt64(1, v); } - @$pb.TagNumber(2) - $core.bool hasInboundConnections() => $_has(1); - @$pb.TagNumber(2) - void clearInboundConnections() => clearField(2); - - @$pb.TagNumber(3) - $fixnum.Int64 get outboundConnections => $_getI64(2); - @$pb.TagNumber(3) - set outboundConnections($fixnum.Int64 v) { $_setInt64(2, v); } - @$pb.TagNumber(3) - $core.bool hasOutboundConnections() => $_has(2); - @$pb.TagNumber(3) - void clearOutboundConnections() => clearField(3); -} - class GetNodeInfoResponse extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'GetNodeInfoResponse', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'pactus'), createEmptyInstance: create) ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'moniker') @@ -286,8 +211,10 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { ..aOS(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'servicesNames') ..pPS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'localAddrs') ..pPS(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'protocols') - ..a<$core.double>(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'clockOffset', $pb.PbFieldType.OD) - ..aOM(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionInfo', subBuilder: ConnectionInfo.create) + ..aOB(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isPruned') + ..a<$core.int>(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pruningHeight', $pb.PbFieldType.O3) + ..a<$core.double>(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'clockOffset', $pb.PbFieldType.OD) + ..aOM(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionInfo', subBuilder: ConnectionInfo.create) ..hasRequiredFields = false ; @@ -302,6 +229,8 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { $core.String? servicesNames, $core.Iterable<$core.String>? localAddrs, $core.Iterable<$core.String>? protocols, + $core.bool? isPruned, + $core.int? pruningHeight, $core.double? clockOffset, ConnectionInfo? connectionInfo, }) { @@ -333,6 +262,12 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { if (protocols != null) { _result.protocols.addAll(protocols); } + if (isPruned != null) { + _result.isPruned = isPruned; + } + if (pruningHeight != null) { + _result.pruningHeight = pruningHeight; + } if (clockOffset != null) { _result.clockOffset = clockOffset; } @@ -431,25 +366,43 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { @$pb.TagNumber(9) $core.List<$core.String> get protocols => $_getList(8); + @$pb.TagNumber(10) + $core.bool get isPruned => $_getBF(9); + @$pb.TagNumber(10) + set isPruned($core.bool v) { $_setBool(9, v); } + @$pb.TagNumber(10) + $core.bool hasIsPruned() => $_has(9); + @$pb.TagNumber(10) + void clearIsPruned() => clearField(10); + + @$pb.TagNumber(11) + $core.int get pruningHeight => $_getIZ(10); + @$pb.TagNumber(11) + set pruningHeight($core.int v) { $_setSignedInt32(10, v); } + @$pb.TagNumber(11) + $core.bool hasPruningHeight() => $_has(10); + @$pb.TagNumber(11) + void clearPruningHeight() => clearField(11); + + @$pb.TagNumber(12) + $core.double get clockOffset => $_getN(11); + @$pb.TagNumber(12) + set clockOffset($core.double v) { $_setDouble(11, v); } + @$pb.TagNumber(12) + $core.bool hasClockOffset() => $_has(11); + @$pb.TagNumber(12) + void clearClockOffset() => clearField(12); + @$pb.TagNumber(13) - $core.double get clockOffset => $_getN(9); + ConnectionInfo get connectionInfo => $_getN(12); @$pb.TagNumber(13) - set clockOffset($core.double v) { $_setDouble(9, v); } + set connectionInfo(ConnectionInfo v) { setField(13, v); } @$pb.TagNumber(13) - $core.bool hasClockOffset() => $_has(9); + $core.bool hasConnectionInfo() => $_has(12); @$pb.TagNumber(13) - void clearClockOffset() => clearField(13); - - @$pb.TagNumber(14) - ConnectionInfo get connectionInfo => $_getN(10); - @$pb.TagNumber(14) - set connectionInfo(ConnectionInfo v) { setField(14, v); } - @$pb.TagNumber(14) - $core.bool hasConnectionInfo() => $_has(10); - @$pb.TagNumber(14) - void clearConnectionInfo() => clearField(14); - @$pb.TagNumber(14) - ConnectionInfo ensureConnectionInfo() => $_ensure(10); + void clearConnectionInfo() => clearField(13); + @$pb.TagNumber(13) + ConnectionInfo ensureConnectionInfo() => $_ensure(12); } class PeerInfo extends $pb.GeneratedMessage { @@ -735,6 +688,81 @@ class PeerInfo extends $pb.GeneratedMessage { void clearCompletedSessions() => clearField(20); } +class ConnectionInfo extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ConnectionInfo', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'pactus'), createEmptyInstance: create) + ..a<$fixnum.Int64>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) + ..a<$fixnum.Int64>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'inboundConnections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) + ..a<$fixnum.Int64>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'outboundConnections', $pb.PbFieldType.OU6, defaultOrMaker: $fixnum.Int64.ZERO) + ..hasRequiredFields = false + ; + + ConnectionInfo._() : super(); + factory ConnectionInfo({ + $fixnum.Int64? connections, + $fixnum.Int64? inboundConnections, + $fixnum.Int64? outboundConnections, + }) { + final _result = create(); + if (connections != null) { + _result.connections = connections; + } + if (inboundConnections != null) { + _result.inboundConnections = inboundConnections; + } + if (outboundConnections != null) { + _result.outboundConnections = outboundConnections; + } + return _result; + } + factory ConnectionInfo.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory ConnectionInfo.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' + 'Will be removed in next major version') + ConnectionInfo clone() => ConnectionInfo()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + ConnectionInfo copyWith(void Function(ConnectionInfo) updates) => super.copyWith((message) => updates(message as ConnectionInfo)) as ConnectionInfo; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static ConnectionInfo create() => ConnectionInfo._(); + ConnectionInfo createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static ConnectionInfo getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static ConnectionInfo? _defaultInstance; + + @$pb.TagNumber(1) + $fixnum.Int64 get connections => $_getI64(0); + @$pb.TagNumber(1) + set connections($fixnum.Int64 v) { $_setInt64(0, v); } + @$pb.TagNumber(1) + $core.bool hasConnections() => $_has(0); + @$pb.TagNumber(1) + void clearConnections() => clearField(1); + + @$pb.TagNumber(2) + $fixnum.Int64 get inboundConnections => $_getI64(1); + @$pb.TagNumber(2) + set inboundConnections($fixnum.Int64 v) { $_setInt64(1, v); } + @$pb.TagNumber(2) + $core.bool hasInboundConnections() => $_has(1); + @$pb.TagNumber(2) + void clearInboundConnections() => clearField(2); + + @$pb.TagNumber(3) + $fixnum.Int64 get outboundConnections => $_getI64(2); + @$pb.TagNumber(3) + set outboundConnections($fixnum.Int64 v) { $_setInt64(2, v); } + @$pb.TagNumber(3) + $core.bool hasOutboundConnections() => $_has(2); + @$pb.TagNumber(3) + void clearOutboundConnections() => clearField(3); +} + class NetworkApi { $pb.RpcClient _client; NetworkApi(this._client); diff --git a/www/grpc/gen/dart/network.pbjson.dart b/www/grpc/gen/dart/network.pbjson.dart index bbebe63f5..9e0685796 100644 --- a/www/grpc/gen/dart/network.pbjson.dart +++ b/www/grpc/gen/dart/network.pbjson.dart @@ -62,18 +62,6 @@ const GetNodeInfoRequest$json = const { /// Descriptor for `GetNodeInfoRequest`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List getNodeInfoRequestDescriptor = $convert.base64Decode('ChJHZXROb2RlSW5mb1JlcXVlc3Q='); -@$core.Deprecated('Use connectionInfoDescriptor instead') -const ConnectionInfo$json = const { - '1': 'ConnectionInfo', - '2': const [ - const {'1': 'connections', '3': 1, '4': 1, '5': 4, '10': 'connections'}, - const {'1': 'inbound_connections', '3': 2, '4': 1, '5': 4, '10': 'inboundConnections'}, - const {'1': 'outbound_connections', '3': 3, '4': 1, '5': 4, '10': 'outboundConnections'}, - ], -}; - -/// Descriptor for `ConnectionInfo`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List connectionInfoDescriptor = $convert.base64Decode('Cg5Db25uZWN0aW9uSW5mbxIgCgtjb25uZWN0aW9ucxgBIAEoBFILY29ubmVjdGlvbnMSLwoTaW5ib3VuZF9jb25uZWN0aW9ucxgCIAEoBFISaW5ib3VuZENvbm5lY3Rpb25zEjEKFG91dGJvdW5kX2Nvbm5lY3Rpb25zGAMgASgEUhNvdXRib3VuZENvbm5lY3Rpb25z'); @$core.Deprecated('Use getNodeInfoResponseDescriptor instead') const GetNodeInfoResponse$json = const { '1': 'GetNodeInfoResponse', @@ -87,13 +75,15 @@ const GetNodeInfoResponse$json = const { const {'1': 'services_names', '3': 7, '4': 1, '5': 9, '10': 'servicesNames'}, const {'1': 'local_addrs', '3': 8, '4': 3, '5': 9, '10': 'localAddrs'}, const {'1': 'protocols', '3': 9, '4': 3, '5': 9, '10': 'protocols'}, - const {'1': 'clock_offset', '3': 13, '4': 1, '5': 1, '10': 'clockOffset'}, - const {'1': 'connection_info', '3': 14, '4': 1, '5': 11, '6': '.pactus.ConnectionInfo', '10': 'connectionInfo'}, + const {'1': 'is_pruned', '3': 10, '4': 1, '5': 8, '10': 'isPruned'}, + const {'1': 'pruning_height', '3': 11, '4': 1, '5': 5, '10': 'pruningHeight'}, + const {'1': 'clock_offset', '3': 12, '4': 1, '5': 1, '10': 'clockOffset'}, + const {'1': 'connection_info', '3': 13, '4': 1, '5': 11, '6': '.pactus.ConnectionInfo', '10': 'connectionInfo'}, ], }; /// Descriptor for `GetNodeInfoResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEiEKDGNsb2NrX29mZnNldBgNIAEoAVILY2xvY2tPZmZzZXQSPwoPY29ubmVjdGlvbl9pbmZvGA4gASgLMhYucGFjdHVzLkNvbm5lY3Rpb25JbmZvUg5jb25uZWN0aW9uSW5mbw=='); +final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEhsKCWlzX3BydW5lZBgKIAEoCFIIaXNQcnVuZWQSJQoOcHJ1bmluZ19oZWlnaHQYCyABKAVSDXBydW5pbmdIZWlnaHQSIQoMY2xvY2tfb2Zmc2V0GAwgASgBUgtjbG9ja09mZnNldBI/Cg9jb25uZWN0aW9uX2luZm8YDSABKAsyFi5wYWN0dXMuQ29ubmVjdGlvbkluZm9SDmNvbm5lY3Rpb25JbmZv'); @$core.Deprecated('Use peerInfoDescriptor instead') const PeerInfo$json = const { '1': 'PeerInfo', @@ -144,6 +134,18 @@ const PeerInfo_ReceivedBytesEntry$json = const { /// Descriptor for `PeerInfo`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List peerInfoDescriptor = $convert.base64Decode('CghQZWVySW5mbxIWCgZzdGF0dXMYASABKAVSBnN0YXR1cxIYCgdtb25pa2VyGAIgASgJUgdtb25pa2VyEhQKBWFnZW50GAMgASgJUgVhZ2VudBIXCgdwZWVyX2lkGAQgASgJUgZwZWVySWQSJQoOY29uc2Vuc3VzX2tleXMYBSADKAlSDWNvbnNlbnN1c0tleXMSLwoTY29uc2Vuc3VzX2FkZHJlc3NlcxgGIAMoCVISY29uc2Vuc3VzQWRkcmVzc2VzEhoKCHNlcnZpY2VzGAcgASgNUghzZXJ2aWNlcxImCg9sYXN0X2Jsb2NrX2hhc2gYCCABKAlSDWxhc3RCbG9ja0hhc2gSFgoGaGVpZ2h0GAkgASgNUgZoZWlnaHQSKQoQcmVjZWl2ZWRfYnVuZGxlcxgKIAEoBVIPcmVjZWl2ZWRCdW5kbGVzEicKD2ludmFsaWRfYnVuZGxlcxgLIAEoBVIOaW52YWxpZEJ1bmRsZXMSGwoJbGFzdF9zZW50GAwgASgDUghsYXN0U2VudBIjCg1sYXN0X3JlY2VpdmVkGA0gASgDUgxsYXN0UmVjZWl2ZWQSPgoKc2VudF9ieXRlcxgOIAMoCzIfLnBhY3R1cy5QZWVySW5mby5TZW50Qnl0ZXNFbnRyeVIJc2VudEJ5dGVzEkoKDnJlY2VpdmVkX2J5dGVzGA8gAygLMiMucGFjdHVzLlBlZXJJbmZvLlJlY2VpdmVkQnl0ZXNFbnRyeVINcmVjZWl2ZWRCeXRlcxIYCgdhZGRyZXNzGBAgASgJUgdhZGRyZXNzEhwKCWRpcmVjdGlvbhgRIAEoCVIJZGlyZWN0aW9uEhwKCXByb3RvY29scxgSIAMoCVIJcHJvdG9jb2xzEiUKDnRvdGFsX3Nlc3Npb25zGBMgASgFUg10b3RhbFNlc3Npb25zEi0KEmNvbXBsZXRlZF9zZXNzaW9ucxgUIAEoBVIRY29tcGxldGVkU2Vzc2lvbnMaPAoOU2VudEJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpAChJSZWNlaXZlZEJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4AQ=='); +@$core.Deprecated('Use connectionInfoDescriptor instead') +const ConnectionInfo$json = const { + '1': 'ConnectionInfo', + '2': const [ + const {'1': 'connections', '3': 1, '4': 1, '5': 4, '10': 'connections'}, + const {'1': 'inbound_connections', '3': 2, '4': 1, '5': 4, '10': 'inboundConnections'}, + const {'1': 'outbound_connections', '3': 3, '4': 1, '5': 4, '10': 'outboundConnections'}, + ], +}; + +/// Descriptor for `ConnectionInfo`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List connectionInfoDescriptor = $convert.base64Decode('Cg5Db25uZWN0aW9uSW5mbxIgCgtjb25uZWN0aW9ucxgBIAEoBFILY29ubmVjdGlvbnMSLwoTaW5ib3VuZF9jb25uZWN0aW9ucxgCIAEoBFISaW5ib3VuZENvbm5lY3Rpb25zEjEKFG91dGJvdW5kX2Nvbm5lY3Rpb25zGAMgASgEUhNvdXRib3VuZENvbm5lY3Rpb25z'); const $core.Map<$core.String, $core.dynamic> NetworkServiceBase$json = const { '1': 'Network', '2': const [ diff --git a/www/grpc/gen/docs/grpc.md b/www/grpc/gen/docs/grpc.md index 79f76ae0b..3ace6ec53 100644 --- a/www/grpc/gen/docs/grpc.md +++ b/www/grpc/gen/docs/grpc.md @@ -2388,6 +2388,20 @@ Message has no fields. List of protocols supported by the node. + + + is_pruned + bool + + Type of node pruned or full. + + + + pruning_height + int32 + + The height of pruning. + clock_offset diff --git a/www/grpc/gen/docs/json-rpc.md b/www/grpc/gen/docs/json-rpc.md index 92c3e61ef..cf8b8b1b5 100644 --- a/www/grpc/gen/docs/json-rpc.md +++ b/www/grpc/gen/docs/json-rpc.md @@ -2389,6 +2389,20 @@ Parameters has no fields. List of protocols supported by the node. + + + is_pruned + boolean + + Type of node pruned or full. + + + + pruning_height + numeric + + The height of pruning. + clock_offset diff --git a/www/grpc/gen/go/network.pb.go b/www/grpc/gen/go/network.pb.go index 9df0b1890..be8720826 100644 --- a/www/grpc/gen/go/network.pb.go +++ b/www/grpc/gen/go/network.pb.go @@ -212,73 +212,6 @@ func (*GetNodeInfoRequest) Descriptor() ([]byte, []int) { return file_network_proto_rawDescGZIP(), []int{2} } -// Response message containing information about the node's connections. -type ConnectionInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total number of connections. - Connections uint64 `protobuf:"varint,1,opt,name=connections,proto3" json:"connections,omitempty"` - // Number of inbound connections. - InboundConnections uint64 `protobuf:"varint,2,opt,name=inbound_connections,json=inboundConnections,proto3" json:"inbound_connections,omitempty"` - // Number of outbound connections. - OutboundConnections uint64 `protobuf:"varint,3,opt,name=outbound_connections,json=outboundConnections,proto3" json:"outbound_connections,omitempty"` -} - -func (x *ConnectionInfo) Reset() { - *x = ConnectionInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_network_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConnectionInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConnectionInfo) ProtoMessage() {} - -func (x *ConnectionInfo) ProtoReflect() protoreflect.Message { - mi := &file_network_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ConnectionInfo.ProtoReflect.Descriptor instead. -func (*ConnectionInfo) Descriptor() ([]byte, []int) { - return file_network_proto_rawDescGZIP(), []int{3} -} - -func (x *ConnectionInfo) GetConnections() uint64 { - if x != nil { - return x.Connections - } - return 0 -} - -func (x *ConnectionInfo) GetInboundConnections() uint64 { - if x != nil { - return x.InboundConnections - } - return 0 -} - -func (x *ConnectionInfo) GetOutboundConnections() uint64 { - if x != nil { - return x.OutboundConnections - } - return 0 -} - // Response message containing information about a specific node in the network. type GetNodeInfoResponse struct { state protoimpl.MessageState @@ -303,16 +236,20 @@ type GetNodeInfoResponse struct { LocalAddrs []string `protobuf:"bytes,8,rep,name=local_addrs,json=localAddrs,proto3" json:"local_addrs,omitempty"` // List of protocols supported by the node. Protocols []string `protobuf:"bytes,9,rep,name=protocols,proto3" json:"protocols,omitempty"` + // Type of node pruned or full. + IsPruned bool `protobuf:"varint,10,opt,name=is_pruned,json=isPruned,proto3" json:"is_pruned,omitempty"` + // The height of pruning. + PruningHeight int32 `protobuf:"varint,11,opt,name=pruning_height,json=pruningHeight,proto3" json:"pruning_height,omitempty"` // Clock offset of the node. - ClockOffset float64 `protobuf:"fixed64,13,opt,name=clock_offset,json=clockOffset,proto3" json:"clock_offset,omitempty"` + ClockOffset float64 `protobuf:"fixed64,12,opt,name=clock_offset,json=clockOffset,proto3" json:"clock_offset,omitempty"` // Information about the node's connections. - ConnectionInfo *ConnectionInfo `protobuf:"bytes,14,opt,name=connection_info,json=connectionInfo,proto3" json:"connection_info,omitempty"` + ConnectionInfo *ConnectionInfo `protobuf:"bytes,13,opt,name=connection_info,json=connectionInfo,proto3" json:"connection_info,omitempty"` } func (x *GetNodeInfoResponse) Reset() { *x = GetNodeInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_network_proto_msgTypes[4] + mi := &file_network_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -325,7 +262,7 @@ func (x *GetNodeInfoResponse) String() string { func (*GetNodeInfoResponse) ProtoMessage() {} func (x *GetNodeInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_network_proto_msgTypes[4] + mi := &file_network_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -338,7 +275,7 @@ func (x *GetNodeInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeInfoResponse.ProtoReflect.Descriptor instead. func (*GetNodeInfoResponse) Descriptor() ([]byte, []int) { - return file_network_proto_rawDescGZIP(), []int{4} + return file_network_proto_rawDescGZIP(), []int{3} } func (x *GetNodeInfoResponse) GetMoniker() string { @@ -404,6 +341,20 @@ func (x *GetNodeInfoResponse) GetProtocols() []string { return nil } +func (x *GetNodeInfoResponse) GetIsPruned() bool { + if x != nil { + return x.IsPruned + } + return false +} + +func (x *GetNodeInfoResponse) GetPruningHeight() int32 { + if x != nil { + return x.PruningHeight + } + return 0 +} + func (x *GetNodeInfoResponse) GetClockOffset() float64 { if x != nil { return x.ClockOffset @@ -469,7 +420,7 @@ type PeerInfo struct { func (x *PeerInfo) Reset() { *x = PeerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_network_proto_msgTypes[5] + mi := &file_network_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -482,7 +433,7 @@ func (x *PeerInfo) String() string { func (*PeerInfo) ProtoMessage() {} func (x *PeerInfo) ProtoReflect() protoreflect.Message { - mi := &file_network_proto_msgTypes[5] + mi := &file_network_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -495,7 +446,7 @@ func (x *PeerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerInfo.ProtoReflect.Descriptor instead. func (*PeerInfo) Descriptor() ([]byte, []int) { - return file_network_proto_rawDescGZIP(), []int{5} + return file_network_proto_rawDescGZIP(), []int{4} } func (x *PeerInfo) GetStatus() int32 { @@ -638,6 +589,73 @@ func (x *PeerInfo) GetCompletedSessions() int32 { return 0 } +// Response message containing information about the node's connections. +type ConnectionInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total number of connections. + Connections uint64 `protobuf:"varint,1,opt,name=connections,proto3" json:"connections,omitempty"` + // Number of inbound connections. + InboundConnections uint64 `protobuf:"varint,2,opt,name=inbound_connections,json=inboundConnections,proto3" json:"inbound_connections,omitempty"` + // Number of outbound connections. + OutboundConnections uint64 `protobuf:"varint,3,opt,name=outbound_connections,json=outboundConnections,proto3" json:"outbound_connections,omitempty"` +} + +func (x *ConnectionInfo) Reset() { + *x = ConnectionInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_network_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectionInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectionInfo) ProtoMessage() {} + +func (x *ConnectionInfo) ProtoReflect() protoreflect.Message { + mi := &file_network_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectionInfo.ProtoReflect.Descriptor instead. +func (*ConnectionInfo) Descriptor() ([]byte, []int) { + return file_network_proto_rawDescGZIP(), []int{5} +} + +func (x *ConnectionInfo) GetConnections() uint64 { + if x != nil { + return x.Connections + } + return 0 +} + +func (x *ConnectionInfo) GetInboundConnections() uint64 { + if x != nil { + return x.InboundConnections + } + return 0 +} + +func (x *ConnectionInfo) GetOutboundConnections() uint64 { + if x != nil { + return x.OutboundConnections + } + return 0 +} + var File_network_proto protoreflect.FileDescriptor var file_network_proto_rawDesc = []byte{ @@ -682,112 +700,116 @@ var file_network_proto_rawDesc = []byte{ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x96, - 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x12, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x13, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x21, 0x0a, - 0x0c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x3f, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x61, 0x63, 0x74, - 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0xed, 0x06, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcb, + 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, - 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, - 0x53, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, - 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, - 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x40, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x32, 0xa2, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1d, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, + 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x72, 0x75, 0x6e, 0x65, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x75, 0x6e, 0x69, + 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x06, 0x0a, + 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, + 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x12, + 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, + 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, + 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, + 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, + 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, + 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, + 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x13, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xa2, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x4f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, - 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, 0x77, 0x77, 0x2f, 0x67, - 0x72, 0x70, 0x63, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x0a, 0x0e, 0x70, 0x61, + 0x63, 0x74, 0x75, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5a, 0x30, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, + 0x77, 0x77, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -807,25 +829,25 @@ var file_network_proto_goTypes = []any{ (*GetNetworkInfoRequest)(nil), // 0: pactus.GetNetworkInfoRequest (*GetNetworkInfoResponse)(nil), // 1: pactus.GetNetworkInfoResponse (*GetNodeInfoRequest)(nil), // 2: pactus.GetNodeInfoRequest - (*ConnectionInfo)(nil), // 3: pactus.ConnectionInfo - (*GetNodeInfoResponse)(nil), // 4: pactus.GetNodeInfoResponse - (*PeerInfo)(nil), // 5: pactus.PeerInfo + (*GetNodeInfoResponse)(nil), // 3: pactus.GetNodeInfoResponse + (*PeerInfo)(nil), // 4: pactus.PeerInfo + (*ConnectionInfo)(nil), // 5: pactus.ConnectionInfo nil, // 6: pactus.GetNetworkInfoResponse.SentBytesEntry nil, // 7: pactus.GetNetworkInfoResponse.ReceivedBytesEntry nil, // 8: pactus.PeerInfo.SentBytesEntry nil, // 9: pactus.PeerInfo.ReceivedBytesEntry } var file_network_proto_depIdxs = []int32{ - 5, // 0: pactus.GetNetworkInfoResponse.connected_peers:type_name -> pactus.PeerInfo + 4, // 0: pactus.GetNetworkInfoResponse.connected_peers:type_name -> pactus.PeerInfo 6, // 1: pactus.GetNetworkInfoResponse.sent_bytes:type_name -> pactus.GetNetworkInfoResponse.SentBytesEntry 7, // 2: pactus.GetNetworkInfoResponse.received_bytes:type_name -> pactus.GetNetworkInfoResponse.ReceivedBytesEntry - 3, // 3: pactus.GetNodeInfoResponse.connection_info:type_name -> pactus.ConnectionInfo + 5, // 3: pactus.GetNodeInfoResponse.connection_info:type_name -> pactus.ConnectionInfo 8, // 4: pactus.PeerInfo.sent_bytes:type_name -> pactus.PeerInfo.SentBytesEntry 9, // 5: pactus.PeerInfo.received_bytes:type_name -> pactus.PeerInfo.ReceivedBytesEntry 0, // 6: pactus.Network.GetNetworkInfo:input_type -> pactus.GetNetworkInfoRequest 2, // 7: pactus.Network.GetNodeInfo:input_type -> pactus.GetNodeInfoRequest 1, // 8: pactus.Network.GetNetworkInfo:output_type -> pactus.GetNetworkInfoResponse - 4, // 9: pactus.Network.GetNodeInfo:output_type -> pactus.GetNodeInfoResponse + 3, // 9: pactus.Network.GetNodeInfo:output_type -> pactus.GetNodeInfoResponse 8, // [8:10] is the sub-list for method output_type 6, // [6:8] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name @@ -876,7 +898,7 @@ func file_network_proto_init() { } } file_network_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ConnectionInfo); i { + switch v := v.(*GetNodeInfoResponse); i { case 0: return &v.state case 1: @@ -888,7 +910,7 @@ func file_network_proto_init() { } } file_network_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*GetNodeInfoResponse); i { + switch v := v.(*PeerInfo); i { case 0: return &v.state case 1: @@ -900,7 +922,7 @@ func file_network_proto_init() { } } file_network_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*PeerInfo); i { + switch v := v.(*ConnectionInfo); i { case 0: return &v.state case 1: diff --git a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java index c4c5376fe..2dfd0a969 100644 --- a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java +++ b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java @@ -3003,2007 +3003,1517 @@ public pactus.network.NetworkOuterClass.GetNodeInfoRequest getDefaultInstanceFor } - public interface ConnectionInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:pactus.ConnectionInfo) + public interface GetNodeInfoResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:pactus.GetNodeInfoResponse) com.google.protobuf.MessageOrBuilder { /** *
-     * Total number of connections.
+     * Moniker of the node.
      * 
* - * uint64 connections = 1 [json_name = "connections"]; - * @return The connections. + * string moniker = 1 [json_name = "moniker"]; + * @return The moniker. */ - long getConnections(); - + java.lang.String getMoniker(); /** *
-     * Number of inbound connections.
+     * Moniker of the node.
      * 
* - * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; - * @return The inboundConnections. + * string moniker = 1 [json_name = "moniker"]; + * @return The bytes for moniker. */ - long getInboundConnections(); + com.google.protobuf.ByteString + getMonikerBytes(); /** *
-     * Number of outbound connections.
+     * Agent information of the node.
      * 
* - * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; - * @return The outboundConnections. + * string agent = 2 [json_name = "agent"]; + * @return The agent. */ - long getOutboundConnections(); - } - /** - *
-   * Response message containing information about the node's connections.
-   * 
- * - * Protobuf type {@code pactus.ConnectionInfo} - */ - public static final class ConnectionInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:pactus.ConnectionInfo) - ConnectionInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use ConnectionInfo.newBuilder() to construct. - private ConnectionInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ConnectionInfo() { - } + java.lang.String getAgent(); + /** + *
+     * Agent information of the node.
+     * 
+ * + * string agent = 2 [json_name = "agent"]; + * @return The bytes for agent. + */ + com.google.protobuf.ByteString + getAgentBytes(); - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ConnectionInfo(); - } + /** + *
+     * Peer ID of the node.
+     * 
+ * + * string peer_id = 3 [json_name = "peerId"]; + * @return The peerId. + */ + java.lang.String getPeerId(); + /** + *
+     * Peer ID of the node.
+     * 
+ * + * string peer_id = 3 [json_name = "peerId"]; + * @return The bytes for peerId. + */ + com.google.protobuf.ByteString + getPeerIdBytes(); - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; - } + /** + *
+     * Timestamp when the node started.
+     * 
+ * + * uint64 started_at = 4 [json_name = "startedAt"]; + * @return The startedAt. + */ + long getStartedAt(); - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - pactus.network.NetworkOuterClass.ConnectionInfo.class, pactus.network.NetworkOuterClass.ConnectionInfo.Builder.class); - } + /** + *
+     * Reachability status of the node.
+     * 
+ * + * string reachability = 5 [json_name = "reachability"]; + * @return The reachability. + */ + java.lang.String getReachability(); + /** + *
+     * Reachability status of the node.
+     * 
+ * + * string reachability = 5 [json_name = "reachability"]; + * @return The bytes for reachability. + */ + com.google.protobuf.ByteString + getReachabilityBytes(); - public static final int CONNECTIONS_FIELD_NUMBER = 1; - private long connections_; /** *
-     * Total number of connections.
+     * A bitfield indicating the services provided by the node.
      * 
* - * uint64 connections = 1 [json_name = "connections"]; - * @return The connections. + * int32 services = 6 [json_name = "services"]; + * @return The services. */ - @java.lang.Override - public long getConnections() { - return connections_; - } + int getServices(); - public static final int INBOUND_CONNECTIONS_FIELD_NUMBER = 2; - private long inboundConnections_; /** *
-     * Number of inbound connections.
+     * Names of services provided by the node.
      * 
* - * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; - * @return The inboundConnections. + * string services_names = 7 [json_name = "servicesNames"]; + * @return The servicesNames. */ - @java.lang.Override - public long getInboundConnections() { - return inboundConnections_; - } + java.lang.String getServicesNames(); + /** + *
+     * Names of services provided by the node.
+     * 
+ * + * string services_names = 7 [json_name = "servicesNames"]; + * @return The bytes for servicesNames. + */ + com.google.protobuf.ByteString + getServicesNamesBytes(); - public static final int OUTBOUND_CONNECTIONS_FIELD_NUMBER = 3; - private long outboundConnections_; /** *
-     * Number of outbound connections.
+     * List of addresses associated with the node.
      * 
* - * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; - * @return The outboundConnections. + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @return A list containing the localAddrs. */ - @java.lang.Override - public long getOutboundConnections() { - return outboundConnections_; - } + java.util.List + getLocalAddrsList(); + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @return The count of localAddrs. + */ + int getLocalAddrsCount(); + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @param index The index of the element to return. + * @return The localAddrs at the given index. + */ + java.lang.String getLocalAddrs(int index); + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @param index The index of the value to return. + * @return The bytes of the localAddrs at the given index. + */ + com.google.protobuf.ByteString + getLocalAddrsBytes(int index); - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @return A list containing the protocols. + */ + java.util.List + getProtocolsList(); + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @return The count of protocols. + */ + int getProtocolsCount(); + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @param index The index of the element to return. + * @return The protocols at the given index. + */ + java.lang.String getProtocols(int index); + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @param index The index of the value to return. + * @return The bytes of the protocols at the given index. + */ + com.google.protobuf.ByteString + getProtocolsBytes(int index); - memoizedIsInitialized = 1; - return true; - } + /** + *
+     * Type of node pruned or full.
+     * 
+ * + * bool is_pruned = 10 [json_name = "isPruned"]; + * @return The isPruned. + */ + boolean getIsPruned(); - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (connections_ != 0L) { - output.writeUInt64(1, connections_); - } - if (inboundConnections_ != 0L) { - output.writeUInt64(2, inboundConnections_); - } - if (outboundConnections_ != 0L) { - output.writeUInt64(3, outboundConnections_); - } - getUnknownFields().writeTo(output); - } + /** + *
+     * The height of pruning.
+     * 
+ * + * int32 pruning_height = 11 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + int getPruningHeight(); - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + /** + *
+     * Clock offset of the node.
+     * 
+ * + * double clock_offset = 12 [json_name = "clockOffset"]; + * @return The clockOffset. + */ + double getClockOffset(); - size = 0; - if (connections_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, connections_); - } - if (inboundConnections_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, inboundConnections_); - } - if (outboundConnections_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, outboundConnections_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; + /** + *
+     * Information about the node's connections.
+     * 
+ * + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * @return Whether the connectionInfo field is set. + */ + boolean hasConnectionInfo(); + /** + *
+     * Information about the node's connections.
+     * 
+ * + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * @return The connectionInfo. + */ + pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo(); + /** + *
+     * Information about the node's connections.
+     * 
+ * + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + */ + pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder(); + } + /** + *
+   * Response message containing information about a specific node in the network.
+   * 
+ * + * Protobuf type {@code pactus.GetNodeInfoResponse} + */ + public static final class GetNodeInfoResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pactus.GetNodeInfoResponse) + GetNodeInfoResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetNodeInfoResponse.newBuilder() to construct. + private GetNodeInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof pactus.network.NetworkOuterClass.ConnectionInfo)) { - return super.equals(obj); - } - pactus.network.NetworkOuterClass.ConnectionInfo other = (pactus.network.NetworkOuterClass.ConnectionInfo) obj; - - if (getConnections() - != other.getConnections()) return false; - if (getInboundConnections() - != other.getInboundConnections()) return false; - if (getOutboundConnections() - != other.getOutboundConnections()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; + private GetNodeInfoResponse() { + moniker_ = ""; + agent_ = ""; + peerId_ = ""; + reachability_ = ""; + servicesNames_ = ""; + localAddrs_ = com.google.protobuf.LazyStringArrayList.EMPTY; + protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; } @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CONNECTIONS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getConnections()); - hash = (37 * hash) + INBOUND_CONNECTIONS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getInboundConnections()); - hash = (37 * hash) + OUTBOUND_CONNECTIONS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getOutboundConnections()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GetNodeInfoResponse(); } @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(pactus.network.NetworkOuterClass.ConnectionInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; } @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + pactus.network.NetworkOuterClass.GetNodeInfoResponse.class, pactus.network.NetworkOuterClass.GetNodeInfoResponse.Builder.class); } + + public static final int MONIKER_FIELD_NUMBER = 1; + private volatile java.lang.Object moniker_; /** *
-     * Response message containing information about the node's connections.
+     * Moniker of the node.
      * 
* - * Protobuf type {@code pactus.ConnectionInfo} + * string moniker = 1 [json_name = "moniker"]; + * @return The moniker. */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:pactus.ConnectionInfo) - pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - pactus.network.NetworkOuterClass.ConnectionInfo.class, pactus.network.NetworkOuterClass.ConnectionInfo.Builder.class); - } - - // Construct using pactus.network.NetworkOuterClass.ConnectionInfo.newBuilder() - private Builder() { - + @java.lang.Override + public java.lang.String getMoniker() { + java.lang.Object ref = moniker_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + moniker_ = s; + return s; } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - + } + /** + *
+     * Moniker of the node.
+     * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @return The bytes for moniker. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMonikerBytes() { + java.lang.Object ref = moniker_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + moniker_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - @java.lang.Override - public Builder clear() { - super.clear(); - connections_ = 0L; - - inboundConnections_ = 0L; - - outboundConnections_ = 0L; + } - return this; + public static final int AGENT_FIELD_NUMBER = 2; + private volatile java.lang.Object agent_; + /** + *
+     * Agent information of the node.
+     * 
+ * + * string agent = 2 [json_name = "agent"]; + * @return The agent. + */ + @java.lang.Override + public java.lang.String getAgent() { + java.lang.Object ref = agent_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + agent_ = s; + return s; } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; + } + /** + *
+     * Agent information of the node.
+     * 
+ * + * string agent = 2 [json_name = "agent"]; + * @return The bytes for agent. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAgentBytes() { + java.lang.Object ref = agent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + agent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType() { - return pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance(); + public static final int PEER_ID_FIELD_NUMBER = 3; + private volatile java.lang.Object peerId_; + /** + *
+     * Peer ID of the node.
+     * 
+ * + * string peer_id = 3 [json_name = "peerId"]; + * @return The peerId. + */ + @java.lang.Override + public java.lang.String getPeerId() { + java.lang.Object ref = peerId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + peerId_ = s; + return s; } - - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfo build() { - pactus.network.NetworkOuterClass.ConnectionInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; + } + /** + *
+     * Peer ID of the node.
+     * 
+ * + * string peer_id = 3 [json_name = "peerId"]; + * @return The bytes for peerId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPeerIdBytes() { + java.lang.Object ref = peerId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + peerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfo buildPartial() { - pactus.network.NetworkOuterClass.ConnectionInfo result = new pactus.network.NetworkOuterClass.ConnectionInfo(this); - result.connections_ = connections_; - result.inboundConnections_ = inboundConnections_; - result.outboundConnections_ = outboundConnections_; - onBuilt(); - return result; - } + public static final int STARTED_AT_FIELD_NUMBER = 4; + private long startedAt_; + /** + *
+     * Timestamp when the node started.
+     * 
+ * + * uint64 started_at = 4 [json_name = "startedAt"]; + * @return The startedAt. + */ + @java.lang.Override + public long getStartedAt() { + return startedAt_; + } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + public static final int REACHABILITY_FIELD_NUMBER = 5; + private volatile java.lang.Object reachability_; + /** + *
+     * Reachability status of the node.
+     * 
+ * + * string reachability = 5 [json_name = "reachability"]; + * @return The reachability. + */ + @java.lang.Override + public java.lang.String getReachability() { + java.lang.Object ref = reachability_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + reachability_ = s; + return s; } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof pactus.network.NetworkOuterClass.ConnectionInfo) { - return mergeFrom((pactus.network.NetworkOuterClass.ConnectionInfo)other); - } else { - super.mergeFrom(other); - return this; - } + } + /** + *
+     * Reachability status of the node.
+     * 
+ * + * string reachability = 5 [json_name = "reachability"]; + * @return The bytes for reachability. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getReachabilityBytes() { + java.lang.Object ref = reachability_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + reachability_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - public Builder mergeFrom(pactus.network.NetworkOuterClass.ConnectionInfo other) { - if (other == pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance()) return this; - if (other.getConnections() != 0L) { - setConnections(other.getConnections()); - } - if (other.getInboundConnections() != 0L) { - setInboundConnections(other.getInboundConnections()); - } - if (other.getOutboundConnections() != 0L) { - setOutboundConnections(other.getOutboundConnections()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } + public static final int SERVICES_FIELD_NUMBER = 6; + private int services_; + /** + *
+     * A bitfield indicating the services provided by the node.
+     * 
+ * + * int32 services = 6 [json_name = "services"]; + * @return The services. + */ + @java.lang.Override + public int getServices() { + return services_; + } - @java.lang.Override - public final boolean isInitialized() { - return true; + public static final int SERVICES_NAMES_FIELD_NUMBER = 7; + private volatile java.lang.Object servicesNames_; + /** + *
+     * Names of services provided by the node.
+     * 
+ * + * string services_names = 7 [json_name = "servicesNames"]; + * @return The servicesNames. + */ + @java.lang.Override + public java.lang.String getServicesNames() { + java.lang.Object ref = servicesNames_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + servicesNames_ = s; + return s; + } + } + /** + *
+     * Names of services provided by the node.
+     * 
+ * + * string services_names = 7 [json_name = "servicesNames"]; + * @return The bytes for servicesNames. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getServicesNamesBytes() { + java.lang.Object ref = servicesNames_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + servicesNames_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } + } - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - connections_ = input.readUInt64(); + public static final int LOCAL_ADDRS_FIELD_NUMBER = 8; + private com.google.protobuf.LazyStringList localAddrs_; + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @return A list containing the localAddrs. + */ + public com.google.protobuf.ProtocolStringList + getLocalAddrsList() { + return localAddrs_; + } + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @return The count of localAddrs. + */ + public int getLocalAddrsCount() { + return localAddrs_.size(); + } + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @param index The index of the element to return. + * @return The localAddrs at the given index. + */ + public java.lang.String getLocalAddrs(int index) { + return localAddrs_.get(index); + } + /** + *
+     * List of addresses associated with the node.
+     * 
+ * + * repeated string local_addrs = 8 [json_name = "localAddrs"]; + * @param index The index of the value to return. + * @return The bytes of the localAddrs at the given index. + */ + public com.google.protobuf.ByteString + getLocalAddrsBytes(int index) { + return localAddrs_.getByteString(index); + } - break; - } // case 8 - case 16: { - inboundConnections_ = input.readUInt64(); + public static final int PROTOCOLS_FIELD_NUMBER = 9; + private com.google.protobuf.LazyStringList protocols_; + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @return A list containing the protocols. + */ + public com.google.protobuf.ProtocolStringList + getProtocolsList() { + return protocols_; + } + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @return The count of protocols. + */ + public int getProtocolsCount() { + return protocols_.size(); + } + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @param index The index of the element to return. + * @return The protocols at the given index. + */ + public java.lang.String getProtocols(int index) { + return protocols_.get(index); + } + /** + *
+     * List of protocols supported by the node.
+     * 
+ * + * repeated string protocols = 9 [json_name = "protocols"]; + * @param index The index of the value to return. + * @return The bytes of the protocols at the given index. + */ + public com.google.protobuf.ByteString + getProtocolsBytes(int index) { + return protocols_.getByteString(index); + } - break; - } // case 16 - case 24: { - outboundConnections_ = input.readUInt64(); + public static final int IS_PRUNED_FIELD_NUMBER = 10; + private boolean isPruned_; + /** + *
+     * Type of node pruned or full.
+     * 
+ * + * bool is_pruned = 10 [json_name = "isPruned"]; + * @return The isPruned. + */ + @java.lang.Override + public boolean getIsPruned() { + return isPruned_; + } - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } + public static final int PRUNING_HEIGHT_FIELD_NUMBER = 11; + private int pruningHeight_; + /** + *
+     * The height of pruning.
+     * 
+ * + * int32 pruning_height = 11 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + @java.lang.Override + public int getPruningHeight() { + return pruningHeight_; + } - private long connections_ ; - /** - *
-       * Total number of connections.
-       * 
- * - * uint64 connections = 1 [json_name = "connections"]; - * @return The connections. - */ - @java.lang.Override - public long getConnections() { - return connections_; - } - /** - *
-       * Total number of connections.
-       * 
- * - * uint64 connections = 1 [json_name = "connections"]; - * @param value The connections to set. - * @return This builder for chaining. - */ - public Builder setConnections(long value) { - - connections_ = value; - onChanged(); - return this; - } - /** - *
-       * Total number of connections.
-       * 
- * - * uint64 connections = 1 [json_name = "connections"]; - * @return This builder for chaining. - */ - public Builder clearConnections() { - - connections_ = 0L; - onChanged(); - return this; - } - - private long inboundConnections_ ; - /** - *
-       * Number of inbound connections.
-       * 
- * - * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; - * @return The inboundConnections. - */ - @java.lang.Override - public long getInboundConnections() { - return inboundConnections_; - } - /** - *
-       * Number of inbound connections.
-       * 
- * - * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; - * @param value The inboundConnections to set. - * @return This builder for chaining. - */ - public Builder setInboundConnections(long value) { - - inboundConnections_ = value; - onChanged(); - return this; - } - /** - *
-       * Number of inbound connections.
-       * 
- * - * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; - * @return This builder for chaining. - */ - public Builder clearInboundConnections() { - - inboundConnections_ = 0L; - onChanged(); - return this; - } - - private long outboundConnections_ ; - /** - *
-       * Number of outbound connections.
-       * 
- * - * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; - * @return The outboundConnections. - */ - @java.lang.Override - public long getOutboundConnections() { - return outboundConnections_; - } - /** - *
-       * Number of outbound connections.
-       * 
- * - * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; - * @param value The outboundConnections to set. - * @return This builder for chaining. - */ - public Builder setOutboundConnections(long value) { - - outboundConnections_ = value; - onChanged(); - return this; - } - /** - *
-       * Number of outbound connections.
-       * 
- * - * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; - * @return This builder for chaining. - */ - public Builder clearOutboundConnections() { - - outboundConnections_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:pactus.ConnectionInfo) - } - - // @@protoc_insertion_point(class_scope:pactus.ConnectionInfo) - private static final pactus.network.NetworkOuterClass.ConnectionInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new pactus.network.NetworkOuterClass.ConnectionInfo(); - } - - public static pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ConnectionInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface GetNodeInfoResponseOrBuilder extends - // @@protoc_insertion_point(interface_extends:pactus.GetNodeInfoResponse) - com.google.protobuf.MessageOrBuilder { - - /** - *
-     * Moniker of the node.
-     * 
- * - * string moniker = 1 [json_name = "moniker"]; - * @return The moniker. - */ - java.lang.String getMoniker(); - /** - *
-     * Moniker of the node.
-     * 
- * - * string moniker = 1 [json_name = "moniker"]; - * @return The bytes for moniker. - */ - com.google.protobuf.ByteString - getMonikerBytes(); - - /** - *
-     * Agent information of the node.
-     * 
- * - * string agent = 2 [json_name = "agent"]; - * @return The agent. - */ - java.lang.String getAgent(); + public static final int CLOCK_OFFSET_FIELD_NUMBER = 12; + private double clockOffset_; /** *
-     * Agent information of the node.
+     * Clock offset of the node.
      * 
* - * string agent = 2 [json_name = "agent"]; - * @return The bytes for agent. + * double clock_offset = 12 [json_name = "clockOffset"]; + * @return The clockOffset. */ - com.google.protobuf.ByteString - getAgentBytes(); + @java.lang.Override + public double getClockOffset() { + return clockOffset_; + } + public static final int CONNECTION_INFO_FIELD_NUMBER = 13; + private pactus.network.NetworkOuterClass.ConnectionInfo connectionInfo_; /** *
-     * Peer ID of the node.
+     * Information about the node's connections.
      * 
* - * string peer_id = 3 [json_name = "peerId"]; - * @return The peerId. + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * @return Whether the connectionInfo field is set. */ - java.lang.String getPeerId(); + @java.lang.Override + public boolean hasConnectionInfo() { + return connectionInfo_ != null; + } /** *
-     * Peer ID of the node.
+     * Information about the node's connections.
      * 
* - * string peer_id = 3 [json_name = "peerId"]; - * @return The bytes for peerId. + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * @return The connectionInfo. */ - com.google.protobuf.ByteString - getPeerIdBytes(); - + @java.lang.Override + public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { + return connectionInfo_ == null ? pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance() : connectionInfo_; + } /** *
-     * Timestamp when the node started.
+     * Information about the node's connections.
      * 
* - * uint64 started_at = 4 [json_name = "startedAt"]; - * @return The startedAt. + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ - long getStartedAt(); - - /** - *
-     * Reachability status of the node.
-     * 
- * - * string reachability = 5 [json_name = "reachability"]; - * @return The reachability. - */ - java.lang.String getReachability(); - /** - *
-     * Reachability status of the node.
-     * 
- * - * string reachability = 5 [json_name = "reachability"]; - * @return The bytes for reachability. - */ - com.google.protobuf.ByteString - getReachabilityBytes(); - - /** - *
-     * A bitfield indicating the services provided by the node.
-     * 
- * - * int32 services = 6 [json_name = "services"]; - * @return The services. - */ - int getServices(); - - /** - *
-     * Names of services provided by the node.
-     * 
- * - * string services_names = 7 [json_name = "servicesNames"]; - * @return The servicesNames. - */ - java.lang.String getServicesNames(); - /** - *
-     * Names of services provided by the node.
-     * 
- * - * string services_names = 7 [json_name = "servicesNames"]; - * @return The bytes for servicesNames. - */ - com.google.protobuf.ByteString - getServicesNamesBytes(); - - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @return A list containing the localAddrs. - */ - java.util.List - getLocalAddrsList(); - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @return The count of localAddrs. - */ - int getLocalAddrsCount(); - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @param index The index of the element to return. - * @return The localAddrs at the given index. - */ - java.lang.String getLocalAddrs(int index); - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @param index The index of the value to return. - * @return The bytes of the localAddrs at the given index. - */ - com.google.protobuf.ByteString - getLocalAddrsBytes(int index); - - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @return A list containing the protocols. - */ - java.util.List - getProtocolsList(); - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @return The count of protocols. - */ - int getProtocolsCount(); - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @param index The index of the element to return. - * @return The protocols at the given index. - */ - java.lang.String getProtocols(int index); - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @param index The index of the value to return. - * @return The bytes of the protocols at the given index. - */ - com.google.protobuf.ByteString - getProtocolsBytes(int index); - - /** - *
-     * Clock offset of the node.
-     * 
- * - * double clock_offset = 13 [json_name = "clockOffset"]; - * @return The clockOffset. - */ - double getClockOffset(); - - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - * @return Whether the connectionInfo field is set. - */ - boolean hasConnectionInfo(); - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - * @return The connectionInfo. - */ - pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo(); - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - */ - pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder(); - } - /** - *
-   * Response message containing information about a specific node in the network.
-   * 
- * - * Protobuf type {@code pactus.GetNodeInfoResponse} - */ - public static final class GetNodeInfoResponse extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:pactus.GetNodeInfoResponse) - GetNodeInfoResponseOrBuilder { - private static final long serialVersionUID = 0L; - // Use GetNodeInfoResponse.newBuilder() to construct. - private GetNodeInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GetNodeInfoResponse() { - moniker_ = ""; - agent_ = ""; - peerId_ = ""; - reachability_ = ""; - servicesNames_ = ""; - localAddrs_ = com.google.protobuf.LazyStringArrayList.EMPTY; - protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; - } + @java.lang.Override + public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder() { + return getConnectionInfo(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GetNodeInfoResponse(); + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; } @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(moniker_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, moniker_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(agent_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, agent_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(peerId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, peerId_); + } + if (startedAt_ != 0L) { + output.writeUInt64(4, startedAt_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reachability_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reachability_); + } + if (services_ != 0) { + output.writeInt32(6, services_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(servicesNames_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, servicesNames_); + } + for (int i = 0; i < localAddrs_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, localAddrs_.getRaw(i)); + } + for (int i = 0; i < protocols_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, protocols_.getRaw(i)); + } + if (isPruned_ != false) { + output.writeBool(10, isPruned_); + } + if (pruningHeight_ != 0) { + output.writeInt32(11, pruningHeight_); + } + if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { + output.writeDouble(12, clockOffset_); + } + if (connectionInfo_ != null) { + output.writeMessage(13, getConnectionInfo()); + } + getUnknownFields().writeTo(output); } @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - pactus.network.NetworkOuterClass.GetNodeInfoResponse.class, pactus.network.NetworkOuterClass.GetNodeInfoResponse.Builder.class); - } + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - public static final int MONIKER_FIELD_NUMBER = 1; - private volatile java.lang.Object moniker_; - /** - *
-     * Moniker of the node.
-     * 
- * - * string moniker = 1 [json_name = "moniker"]; - * @return The moniker. - */ - @java.lang.Override - public java.lang.String getMoniker() { - java.lang.Object ref = moniker_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - moniker_ = s; - return s; + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(moniker_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, moniker_); } - } - /** - *
-     * Moniker of the node.
-     * 
- * - * string moniker = 1 [json_name = "moniker"]; - * @return The bytes for moniker. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMonikerBytes() { - java.lang.Object ref = moniker_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - moniker_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(agent_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, agent_); } - } - - public static final int AGENT_FIELD_NUMBER = 2; - private volatile java.lang.Object agent_; - /** - *
-     * Agent information of the node.
-     * 
- * - * string agent = 2 [json_name = "agent"]; - * @return The agent. - */ - @java.lang.Override - public java.lang.String getAgent() { - java.lang.Object ref = agent_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - agent_ = s; - return s; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(peerId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, peerId_); } - } - /** - *
-     * Agent information of the node.
-     * 
- * - * string agent = 2 [json_name = "agent"]; - * @return The bytes for agent. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAgentBytes() { - java.lang.Object ref = agent_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - agent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + if (startedAt_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, startedAt_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reachability_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reachability_); + } + if (services_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, services_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(servicesNames_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, servicesNames_); + } + { + int dataSize = 0; + for (int i = 0; i < localAddrs_.size(); i++) { + dataSize += computeStringSizeNoTag(localAddrs_.getRaw(i)); + } + size += dataSize; + size += 1 * getLocalAddrsList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < protocols_.size(); i++) { + dataSize += computeStringSizeNoTag(protocols_.getRaw(i)); + } + size += dataSize; + size += 1 * getProtocolsList().size(); + } + if (isPruned_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(10, isPruned_); + } + if (pruningHeight_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(11, pruningHeight_); + } + if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(12, clockOffset_); } + if (connectionInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, getConnectionInfo()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - public static final int PEER_ID_FIELD_NUMBER = 3; - private volatile java.lang.Object peerId_; - /** - *
-     * Peer ID of the node.
-     * 
- * - * string peer_id = 3 [json_name = "peerId"]; - * @return The peerId. - */ @java.lang.Override - public java.lang.String getPeerId() { - java.lang.Object ref = peerId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - peerId_ = s; - return s; + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - } - /** - *
-     * Peer ID of the node.
-     * 
- * - * string peer_id = 3 [json_name = "peerId"]; - * @return The bytes for peerId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPeerIdBytes() { - java.lang.Object ref = peerId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - peerId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + if (!(obj instanceof pactus.network.NetworkOuterClass.GetNodeInfoResponse)) { + return super.equals(obj); } - } + pactus.network.NetworkOuterClass.GetNodeInfoResponse other = (pactus.network.NetworkOuterClass.GetNodeInfoResponse) obj; - public static final int STARTED_AT_FIELD_NUMBER = 4; - private long startedAt_; - /** - *
-     * Timestamp when the node started.
-     * 
- * - * uint64 started_at = 4 [json_name = "startedAt"]; - * @return The startedAt. - */ - @java.lang.Override - public long getStartedAt() { - return startedAt_; + if (!getMoniker() + .equals(other.getMoniker())) return false; + if (!getAgent() + .equals(other.getAgent())) return false; + if (!getPeerId() + .equals(other.getPeerId())) return false; + if (getStartedAt() + != other.getStartedAt()) return false; + if (!getReachability() + .equals(other.getReachability())) return false; + if (getServices() + != other.getServices()) return false; + if (!getServicesNames() + .equals(other.getServicesNames())) return false; + if (!getLocalAddrsList() + .equals(other.getLocalAddrsList())) return false; + if (!getProtocolsList() + .equals(other.getProtocolsList())) return false; + if (getIsPruned() + != other.getIsPruned()) return false; + if (getPruningHeight() + != other.getPruningHeight()) return false; + if (java.lang.Double.doubleToLongBits(getClockOffset()) + != java.lang.Double.doubleToLongBits( + other.getClockOffset())) return false; + if (hasConnectionInfo() != other.hasConnectionInfo()) return false; + if (hasConnectionInfo()) { + if (!getConnectionInfo() + .equals(other.getConnectionInfo())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; } - public static final int REACHABILITY_FIELD_NUMBER = 5; - private volatile java.lang.Object reachability_; - /** - *
-     * Reachability status of the node.
-     * 
- * - * string reachability = 5 [json_name = "reachability"]; - * @return The reachability. - */ @java.lang.Override - public java.lang.String getReachability() { - java.lang.Object ref = reachability_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - reachability_ = s; - return s; + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - } - /** - *
-     * Reachability status of the node.
-     * 
- * - * string reachability = 5 [json_name = "reachability"]; - * @return The bytes for reachability. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getReachabilityBytes() { - java.lang.Object ref = reachability_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - reachability_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MONIKER_FIELD_NUMBER; + hash = (53 * hash) + getMoniker().hashCode(); + hash = (37 * hash) + AGENT_FIELD_NUMBER; + hash = (53 * hash) + getAgent().hashCode(); + hash = (37 * hash) + PEER_ID_FIELD_NUMBER; + hash = (53 * hash) + getPeerId().hashCode(); + hash = (37 * hash) + STARTED_AT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getStartedAt()); + hash = (37 * hash) + REACHABILITY_FIELD_NUMBER; + hash = (53 * hash) + getReachability().hashCode(); + hash = (37 * hash) + SERVICES_FIELD_NUMBER; + hash = (53 * hash) + getServices(); + hash = (37 * hash) + SERVICES_NAMES_FIELD_NUMBER; + hash = (53 * hash) + getServicesNames().hashCode(); + if (getLocalAddrsCount() > 0) { + hash = (37 * hash) + LOCAL_ADDRS_FIELD_NUMBER; + hash = (53 * hash) + getLocalAddrsList().hashCode(); + } + if (getProtocolsCount() > 0) { + hash = (37 * hash) + PROTOCOLS_FIELD_NUMBER; + hash = (53 * hash) + getProtocolsList().hashCode(); + } + hash = (37 * hash) + IS_PRUNED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsPruned()); + hash = (37 * hash) + PRUNING_HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getPruningHeight(); + hash = (37 * hash) + CLOCK_OFFSET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getClockOffset())); + if (hasConnectionInfo()) { + hash = (37 * hash) + CONNECTION_INFO_FIELD_NUMBER; + hash = (53 * hash) + getConnectionInfo().hashCode(); } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - public static final int SERVICES_FIELD_NUMBER = 6; - private int services_; - /** - *
-     * A bitfield indicating the services provided by the node.
-     * 
- * - * int32 services = 6 [json_name = "services"]; - * @return The services. - */ - @java.lang.Override - public int getServices() { - return services_; + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - - public static final int SERVICES_NAMES_FIELD_NUMBER = 7; - private volatile java.lang.Object servicesNames_; - /** - *
-     * Names of services provided by the node.
-     * 
- * - * string services_names = 7 [json_name = "servicesNames"]; - * @return The servicesNames. - */ - @java.lang.Override - public java.lang.String getServicesNames() { - java.lang.Object ref = servicesNames_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - servicesNames_ = s; - return s; - } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - *
-     * Names of services provided by the node.
-     * 
- * - * string services_names = 7 [json_name = "servicesNames"]; - * @return The bytes for servicesNames. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getServicesNamesBytes() { - java.lang.Object ref = servicesNames_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - servicesNames_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - - public static final int LOCAL_ADDRS_FIELD_NUMBER = 8; - private com.google.protobuf.LazyStringList localAddrs_; - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @return A list containing the localAddrs. - */ - public com.google.protobuf.ProtocolStringList - getLocalAddrsList() { - return localAddrs_; + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @return The count of localAddrs. - */ - public int getLocalAddrsCount() { - return localAddrs_.size(); + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @param index The index of the element to return. - * @return The localAddrs at the given index. - */ - public java.lang.String getLocalAddrs(int index) { - return localAddrs_.get(index); + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - *
-     * List of addresses associated with the node.
-     * 
- * - * repeated string local_addrs = 8 [json_name = "localAddrs"]; - * @param index The index of the value to return. - * @return The bytes of the localAddrs at the given index. - */ - public com.google.protobuf.ByteString - getLocalAddrsBytes(int index) { - return localAddrs_.getByteString(index); + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); } - public static final int PROTOCOLS_FIELD_NUMBER = 9; - private com.google.protobuf.LazyStringList protocols_; - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @return A list containing the protocols. - */ - public com.google.protobuf.ProtocolStringList - getProtocolsList() { - return protocols_; + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @return The count of protocols. - */ - public int getProtocolsCount() { - return protocols_.size(); + public static Builder newBuilder(pactus.network.NetworkOuterClass.GetNodeInfoResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } /** *
-     * List of protocols supported by the node.
+     * Response message containing information about a specific node in the network.
      * 
* - * repeated string protocols = 9 [json_name = "protocols"]; - * @param index The index of the element to return. - * @return The protocols at the given index. + * Protobuf type {@code pactus.GetNodeInfoResponse} */ - public java.lang.String getProtocols(int index) { - return protocols_.get(index); - } - /** - *
-     * List of protocols supported by the node.
-     * 
- * - * repeated string protocols = 9 [json_name = "protocols"]; - * @param index The index of the value to return. - * @return The bytes of the protocols at the given index. - */ - public com.google.protobuf.ByteString - getProtocolsBytes(int index) { - return protocols_.getByteString(index); - } + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pactus.GetNodeInfoResponse) + pactus.network.NetworkOuterClass.GetNodeInfoResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; + } - public static final int CLOCK_OFFSET_FIELD_NUMBER = 13; - private double clockOffset_; - /** - *
-     * Clock offset of the node.
-     * 
- * - * double clock_offset = 13 [json_name = "clockOffset"]; - * @return The clockOffset. - */ - @java.lang.Override - public double getClockOffset() { - return clockOffset_; - } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + pactus.network.NetworkOuterClass.GetNodeInfoResponse.class, pactus.network.NetworkOuterClass.GetNodeInfoResponse.Builder.class); + } - public static final int CONNECTION_INFO_FIELD_NUMBER = 14; - private pactus.network.NetworkOuterClass.ConnectionInfo connectionInfo_; - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - * @return Whether the connectionInfo field is set. - */ - @java.lang.Override - public boolean hasConnectionInfo() { - return connectionInfo_ != null; - } - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - * @return The connectionInfo. - */ - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { - return connectionInfo_ == null ? pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance() : connectionInfo_; - } - /** - *
-     * Information about the node's connections.
-     * 
- * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; - */ - @java.lang.Override - public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder() { - return getConnectionInfo(); - } + // Construct using pactus.network.NetworkOuterClass.GetNodeInfoResponse.newBuilder() + private Builder() { - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + } - memoizedIsInitialized = 1; - return true; - } + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(moniker_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, moniker_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(agent_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, agent_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(peerId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, peerId_); - } - if (startedAt_ != 0L) { - output.writeUInt64(4, startedAt_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reachability_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reachability_); - } - if (services_ != 0) { - output.writeInt32(6, services_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(servicesNames_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, servicesNames_); } - for (int i = 0; i < localAddrs_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 8, localAddrs_.getRaw(i)); + @java.lang.Override + public Builder clear() { + super.clear(); + moniker_ = ""; + + agent_ = ""; + + peerId_ = ""; + + startedAt_ = 0L; + + reachability_ = ""; + + services_ = 0; + + servicesNames_ = ""; + + localAddrs_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + isPruned_ = false; + + pruningHeight_ = 0; + + clockOffset_ = 0D; + + if (connectionInfoBuilder_ == null) { + connectionInfo_ = null; + } else { + connectionInfo_ = null; + connectionInfoBuilder_ = null; + } + return this; } - for (int i = 0; i < protocols_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 9, protocols_.getRaw(i)); + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; } - if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { - output.writeDouble(13, clockOffset_); + + @java.lang.Override + public pactus.network.NetworkOuterClass.GetNodeInfoResponse getDefaultInstanceForType() { + return pactus.network.NetworkOuterClass.GetNodeInfoResponse.getDefaultInstance(); } - if (connectionInfo_ != null) { - output.writeMessage(14, getConnectionInfo()); + + @java.lang.Override + public pactus.network.NetworkOuterClass.GetNodeInfoResponse build() { + pactus.network.NetworkOuterClass.GetNodeInfoResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; } - getUnknownFields().writeTo(output); - } - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + @java.lang.Override + public pactus.network.NetworkOuterClass.GetNodeInfoResponse buildPartial() { + pactus.network.NetworkOuterClass.GetNodeInfoResponse result = new pactus.network.NetworkOuterClass.GetNodeInfoResponse(this); + int from_bitField0_ = bitField0_; + result.moniker_ = moniker_; + result.agent_ = agent_; + result.peerId_ = peerId_; + result.startedAt_ = startedAt_; + result.reachability_ = reachability_; + result.services_ = services_; + result.servicesNames_ = servicesNames_; + if (((bitField0_ & 0x00000001) != 0)) { + localAddrs_ = localAddrs_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.localAddrs_ = localAddrs_; + if (((bitField0_ & 0x00000002) != 0)) { + protocols_ = protocols_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.protocols_ = protocols_; + result.isPruned_ = isPruned_; + result.pruningHeight_ = pruningHeight_; + result.clockOffset_ = clockOffset_; + if (connectionInfoBuilder_ == null) { + result.connectionInfo_ = connectionInfo_; + } else { + result.connectionInfo_ = connectionInfoBuilder_.build(); + } + onBuilt(); + return result; + } - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(moniker_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, moniker_); + @java.lang.Override + public Builder clone() { + return super.clone(); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(agent_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, agent_); + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(peerId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, peerId_); + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); } - if (startedAt_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, startedAt_); + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reachability_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reachability_); + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } - if (services_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(6, services_); + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(servicesNames_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, servicesNames_); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof pactus.network.NetworkOuterClass.GetNodeInfoResponse) { + return mergeFrom((pactus.network.NetworkOuterClass.GetNodeInfoResponse)other); + } else { + super.mergeFrom(other); + return this; + } } - { - int dataSize = 0; - for (int i = 0; i < localAddrs_.size(); i++) { - dataSize += computeStringSizeNoTag(localAddrs_.getRaw(i)); + + public Builder mergeFrom(pactus.network.NetworkOuterClass.GetNodeInfoResponse other) { + if (other == pactus.network.NetworkOuterClass.GetNodeInfoResponse.getDefaultInstance()) return this; + if (!other.getMoniker().isEmpty()) { + moniker_ = other.moniker_; + onChanged(); } - size += dataSize; - size += 1 * getLocalAddrsList().size(); - } - { - int dataSize = 0; - for (int i = 0; i < protocols_.size(); i++) { - dataSize += computeStringSizeNoTag(protocols_.getRaw(i)); + if (!other.getAgent().isEmpty()) { + agent_ = other.agent_; + onChanged(); } - size += dataSize; - size += 1 * getProtocolsList().size(); - } - if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { - size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(13, clockOffset_); - } - if (connectionInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(14, getConnectionInfo()); + if (!other.getPeerId().isEmpty()) { + peerId_ = other.peerId_; + onChanged(); + } + if (other.getStartedAt() != 0L) { + setStartedAt(other.getStartedAt()); + } + if (!other.getReachability().isEmpty()) { + reachability_ = other.reachability_; + onChanged(); + } + if (other.getServices() != 0) { + setServices(other.getServices()); + } + if (!other.getServicesNames().isEmpty()) { + servicesNames_ = other.servicesNames_; + onChanged(); + } + if (!other.localAddrs_.isEmpty()) { + if (localAddrs_.isEmpty()) { + localAddrs_ = other.localAddrs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureLocalAddrsIsMutable(); + localAddrs_.addAll(other.localAddrs_); + } + onChanged(); + } + if (!other.protocols_.isEmpty()) { + if (protocols_.isEmpty()) { + protocols_ = other.protocols_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureProtocolsIsMutable(); + protocols_.addAll(other.protocols_); + } + onChanged(); + } + if (other.getIsPruned() != false) { + setIsPruned(other.getIsPruned()); + } + if (other.getPruningHeight() != 0) { + setPruningHeight(other.getPruningHeight()); + } + if (other.getClockOffset() != 0D) { + setClockOffset(other.getClockOffset()); + } + if (other.hasConnectionInfo()) { + mergeConnectionInfo(other.getConnectionInfo()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof pactus.network.NetworkOuterClass.GetNodeInfoResponse)) { - return super.equals(obj); + @java.lang.Override + public final boolean isInitialized() { + return true; } - pactus.network.NetworkOuterClass.GetNodeInfoResponse other = (pactus.network.NetworkOuterClass.GetNodeInfoResponse) obj; - if (!getMoniker() - .equals(other.getMoniker())) return false; - if (!getAgent() - .equals(other.getAgent())) return false; - if (!getPeerId() - .equals(other.getPeerId())) return false; - if (getStartedAt() - != other.getStartedAt()) return false; - if (!getReachability() - .equals(other.getReachability())) return false; - if (getServices() - != other.getServices()) return false; - if (!getServicesNames() - .equals(other.getServicesNames())) return false; - if (!getLocalAddrsList() - .equals(other.getLocalAddrsList())) return false; - if (!getProtocolsList() - .equals(other.getProtocolsList())) return false; - if (java.lang.Double.doubleToLongBits(getClockOffset()) - != java.lang.Double.doubleToLongBits( - other.getClockOffset())) return false; - if (hasConnectionInfo() != other.hasConnectionInfo()) return false; - if (hasConnectionInfo()) { - if (!getConnectionInfo() - .equals(other.getConnectionInfo())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + moniker_ = input.readStringRequireUtf8(); - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + MONIKER_FIELD_NUMBER; - hash = (53 * hash) + getMoniker().hashCode(); - hash = (37 * hash) + AGENT_FIELD_NUMBER; - hash = (53 * hash) + getAgent().hashCode(); - hash = (37 * hash) + PEER_ID_FIELD_NUMBER; - hash = (53 * hash) + getPeerId().hashCode(); - hash = (37 * hash) + STARTED_AT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getStartedAt()); - hash = (37 * hash) + REACHABILITY_FIELD_NUMBER; - hash = (53 * hash) + getReachability().hashCode(); - hash = (37 * hash) + SERVICES_FIELD_NUMBER; - hash = (53 * hash) + getServices(); - hash = (37 * hash) + SERVICES_NAMES_FIELD_NUMBER; - hash = (53 * hash) + getServicesNames().hashCode(); - if (getLocalAddrsCount() > 0) { - hash = (37 * hash) + LOCAL_ADDRS_FIELD_NUMBER; - hash = (53 * hash) + getLocalAddrsList().hashCode(); - } - if (getProtocolsCount() > 0) { - hash = (37 * hash) + PROTOCOLS_FIELD_NUMBER; - hash = (53 * hash) + getProtocolsList().hashCode(); - } - hash = (37 * hash) + CLOCK_OFFSET_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - java.lang.Double.doubleToLongBits(getClockOffset())); - if (hasConnectionInfo()) { - hash = (37 * hash) + CONNECTION_INFO_FIELD_NUMBER; - hash = (53 * hash) + getConnectionInfo().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } + break; + } // case 10 + case 18: { + agent_ = input.readStringRequireUtf8(); - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static pactus.network.NetworkOuterClass.GetNodeInfoResponse parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } + break; + } // case 18 + case 26: { + peerId_ = input.readStringRequireUtf8(); - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(pactus.network.NetworkOuterClass.GetNodeInfoResponse prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - *
-     * Response message containing information about a specific node in the network.
-     * 
- * - * Protobuf type {@code pactus.GetNodeInfoResponse} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:pactus.GetNodeInfoResponse) - pactus.network.NetworkOuterClass.GetNodeInfoResponseOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - pactus.network.NetworkOuterClass.GetNodeInfoResponse.class, pactus.network.NetworkOuterClass.GetNodeInfoResponse.Builder.class); - } - - // Construct using pactus.network.NetworkOuterClass.GetNodeInfoResponse.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - moniker_ = ""; + break; + } // case 26 + case 32: { + startedAt_ = input.readUInt64(); - agent_ = ""; + break; + } // case 32 + case 42: { + reachability_ = input.readStringRequireUtf8(); - peerId_ = ""; + break; + } // case 42 + case 48: { + services_ = input.readInt32(); - startedAt_ = 0L; + break; + } // case 48 + case 58: { + servicesNames_ = input.readStringRequireUtf8(); - reachability_ = ""; + break; + } // case 58 + case 66: { + java.lang.String s = input.readStringRequireUtf8(); + ensureLocalAddrsIsMutable(); + localAddrs_.add(s); + break; + } // case 66 + case 74: { + java.lang.String s = input.readStringRequireUtf8(); + ensureProtocolsIsMutable(); + protocols_.add(s); + break; + } // case 74 + case 80: { + isPruned_ = input.readBool(); - services_ = 0; + break; + } // case 80 + case 88: { + pruningHeight_ = input.readInt32(); - servicesNames_ = ""; + break; + } // case 88 + case 97: { + clockOffset_ = input.readDouble(); - localAddrs_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); - protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - clockOffset_ = 0D; + break; + } // case 97 + case 106: { + input.readMessage( + getConnectionInfoFieldBuilder().getBuilder(), + extensionRegistry); - if (connectionInfoBuilder_ == null) { - connectionInfo_ = null; - } else { - connectionInfo_ = null; - connectionInfoBuilder_ = null; - } + break; + } // case 106 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally return this; } + private int bitField0_; - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return pactus.network.NetworkOuterClass.internal_static_pactus_GetNodeInfoResponse_descriptor; - } - - @java.lang.Override - public pactus.network.NetworkOuterClass.GetNodeInfoResponse getDefaultInstanceForType() { - return pactus.network.NetworkOuterClass.GetNodeInfoResponse.getDefaultInstance(); - } - - @java.lang.Override - public pactus.network.NetworkOuterClass.GetNodeInfoResponse build() { - pactus.network.NetworkOuterClass.GetNodeInfoResponse result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); + private java.lang.Object moniker_ = ""; + /** + *
+       * Moniker of the node.
+       * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @return The moniker. + */ + public java.lang.String getMoniker() { + java.lang.Object ref = moniker_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + moniker_ = s; + return s; + } else { + return (java.lang.String) ref; } - return result; } - - @java.lang.Override - public pactus.network.NetworkOuterClass.GetNodeInfoResponse buildPartial() { - pactus.network.NetworkOuterClass.GetNodeInfoResponse result = new pactus.network.NetworkOuterClass.GetNodeInfoResponse(this); - int from_bitField0_ = bitField0_; - result.moniker_ = moniker_; - result.agent_ = agent_; - result.peerId_ = peerId_; - result.startedAt_ = startedAt_; - result.reachability_ = reachability_; - result.services_ = services_; - result.servicesNames_ = servicesNames_; - if (((bitField0_ & 0x00000001) != 0)) { - localAddrs_ = localAddrs_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.localAddrs_ = localAddrs_; - if (((bitField0_ & 0x00000002) != 0)) { - protocols_ = protocols_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.protocols_ = protocols_; - result.clockOffset_ = clockOffset_; - if (connectionInfoBuilder_ == null) { - result.connectionInfo_ = connectionInfo_; + /** + *
+       * Moniker of the node.
+       * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @return The bytes for moniker. + */ + public com.google.protobuf.ByteString + getMonikerBytes() { + java.lang.Object ref = moniker_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + moniker_ = b; + return b; } else { - result.connectionInfo_ = connectionInfoBuilder_.build(); + return (com.google.protobuf.ByteString) ref; } - onBuilt(); - return result; } - - @java.lang.Override - public Builder clone() { - return super.clone(); + /** + *
+       * Moniker of the node.
+       * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @param value The moniker to set. + * @return This builder for chaining. + */ + public Builder setMoniker( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + moniker_ = value; + onChanged(); + return this; } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); + /** + *
+       * Moniker of the node.
+       * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @return This builder for chaining. + */ + public Builder clearMoniker() { + + moniker_ = getDefaultInstance().getMoniker(); + onChanged(); + return this; } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof pactus.network.NetworkOuterClass.GetNodeInfoResponse) { - return mergeFrom((pactus.network.NetworkOuterClass.GetNodeInfoResponse)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(pactus.network.NetworkOuterClass.GetNodeInfoResponse other) { - if (other == pactus.network.NetworkOuterClass.GetNodeInfoResponse.getDefaultInstance()) return this; - if (!other.getMoniker().isEmpty()) { - moniker_ = other.moniker_; - onChanged(); - } - if (!other.getAgent().isEmpty()) { - agent_ = other.agent_; - onChanged(); - } - if (!other.getPeerId().isEmpty()) { - peerId_ = other.peerId_; - onChanged(); - } - if (other.getStartedAt() != 0L) { - setStartedAt(other.getStartedAt()); - } - if (!other.getReachability().isEmpty()) { - reachability_ = other.reachability_; - onChanged(); - } - if (other.getServices() != 0) { - setServices(other.getServices()); - } - if (!other.getServicesNames().isEmpty()) { - servicesNames_ = other.servicesNames_; - onChanged(); - } - if (!other.localAddrs_.isEmpty()) { - if (localAddrs_.isEmpty()) { - localAddrs_ = other.localAddrs_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureLocalAddrsIsMutable(); - localAddrs_.addAll(other.localAddrs_); - } - onChanged(); - } - if (!other.protocols_.isEmpty()) { - if (protocols_.isEmpty()) { - protocols_ = other.protocols_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureProtocolsIsMutable(); - protocols_.addAll(other.protocols_); - } - onChanged(); - } - if (other.getClockOffset() != 0D) { - setClockOffset(other.getClockOffset()); - } - if (other.hasConnectionInfo()) { - mergeConnectionInfo(other.getConnectionInfo()); - } - this.mergeUnknownFields(other.getUnknownFields()); + /** + *
+       * Moniker of the node.
+       * 
+ * + * string moniker = 1 [json_name = "moniker"]; + * @param value The bytes for moniker to set. + * @return This builder for chaining. + */ + public Builder setMonikerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + moniker_ = value; onChanged(); return this; } - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - moniker_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 18: { - agent_ = input.readStringRequireUtf8(); - - break; - } // case 18 - case 26: { - peerId_ = input.readStringRequireUtf8(); - - break; - } // case 26 - case 32: { - startedAt_ = input.readUInt64(); - - break; - } // case 32 - case 42: { - reachability_ = input.readStringRequireUtf8(); - - break; - } // case 42 - case 48: { - services_ = input.readInt32(); - - break; - } // case 48 - case 58: { - servicesNames_ = input.readStringRequireUtf8(); - - break; - } // case 58 - case 66: { - java.lang.String s = input.readStringRequireUtf8(); - ensureLocalAddrsIsMutable(); - localAddrs_.add(s); - break; - } // case 66 - case 74: { - java.lang.String s = input.readStringRequireUtf8(); - ensureProtocolsIsMutable(); - protocols_.add(s); - break; - } // case 74 - case 105: { - clockOffset_ = input.readDouble(); - - break; - } // case 105 - case 114: { - input.readMessage( - getConnectionInfoFieldBuilder().getBuilder(), - extensionRegistry); - - break; - } // case 114 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object moniker_ = ""; + private java.lang.Object agent_ = ""; /** *
-       * Moniker of the node.
+       * Agent information of the node.
        * 
* - * string moniker = 1 [json_name = "moniker"]; - * @return The moniker. + * string agent = 2 [json_name = "agent"]; + * @return The agent. */ - public java.lang.String getMoniker() { - java.lang.Object ref = moniker_; + public java.lang.String getAgent() { + java.lang.Object ref = agent_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - moniker_ = s; + agent_ = s; return s; } else { return (java.lang.String) ref; @@ -5011,20 +4521,20 @@ public java.lang.String getMoniker() { } /** *
-       * Moniker of the node.
+       * Agent information of the node.
        * 
* - * string moniker = 1 [json_name = "moniker"]; - * @return The bytes for moniker. + * string agent = 2 [json_name = "agent"]; + * @return The bytes for agent. */ public com.google.protobuf.ByteString - getMonikerBytes() { - java.lang.Object ref = moniker_; + getAgentBytes() { + java.lang.Object ref = agent_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - moniker_ = b; + agent_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -5032,158 +4542,62 @@ public java.lang.String getMoniker() { } /** *
-       * Moniker of the node.
+       * Agent information of the node.
        * 
* - * string moniker = 1 [json_name = "moniker"]; - * @param value The moniker to set. + * string agent = 2 [json_name = "agent"]; + * @param value The agent to set. * @return This builder for chaining. */ - public Builder setMoniker( + public Builder setAgent( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - moniker_ = value; + agent_ = value; onChanged(); return this; } /** *
-       * Moniker of the node.
+       * Agent information of the node.
        * 
* - * string moniker = 1 [json_name = "moniker"]; + * string agent = 2 [json_name = "agent"]; * @return This builder for chaining. */ - public Builder clearMoniker() { + public Builder clearAgent() { - moniker_ = getDefaultInstance().getMoniker(); + agent_ = getDefaultInstance().getAgent(); onChanged(); return this; } /** *
-       * Moniker of the node.
+       * Agent information of the node.
        * 
* - * string moniker = 1 [json_name = "moniker"]; - * @param value The bytes for moniker to set. + * string agent = 2 [json_name = "agent"]; + * @param value The bytes for agent to set. * @return This builder for chaining. */ - public Builder setMonikerBytes( + public Builder setAgentBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - moniker_ = value; + agent_ = value; onChanged(); return this; } - private java.lang.Object agent_ = ""; + private java.lang.Object peerId_ = ""; /** *
-       * Agent information of the node.
-       * 
- * - * string agent = 2 [json_name = "agent"]; - * @return The agent. - */ - public java.lang.String getAgent() { - java.lang.Object ref = agent_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - agent_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * Agent information of the node.
-       * 
- * - * string agent = 2 [json_name = "agent"]; - * @return The bytes for agent. - */ - public com.google.protobuf.ByteString - getAgentBytes() { - java.lang.Object ref = agent_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - agent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * Agent information of the node.
-       * 
- * - * string agent = 2 [json_name = "agent"]; - * @param value The agent to set. - * @return This builder for chaining. - */ - public Builder setAgent( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - agent_ = value; - onChanged(); - return this; - } - /** - *
-       * Agent information of the node.
-       * 
- * - * string agent = 2 [json_name = "agent"]; - * @return This builder for chaining. - */ - public Builder clearAgent() { - - agent_ = getDefaultInstance().getAgent(); - onChanged(); - return this; - } - /** - *
-       * Agent information of the node.
-       * 
- * - * string agent = 2 [json_name = "agent"]; - * @param value The bytes for agent to set. - * @return This builder for chaining. - */ - public Builder setAgentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - agent_ = value; - onChanged(); - return this; - } - - private java.lang.Object peerId_ = ""; - /** - *
-       * Peer ID of the node.
+       * Peer ID of the node.
        * 
* * string peer_id = 3 [json_name = "peerId"]; @@ -5846,13 +5260,99 @@ public Builder addProtocolsBytes( return this; } + private boolean isPruned_ ; + /** + *
+       * Type of node pruned or full.
+       * 
+ * + * bool is_pruned = 10 [json_name = "isPruned"]; + * @return The isPruned. + */ + @java.lang.Override + public boolean getIsPruned() { + return isPruned_; + } + /** + *
+       * Type of node pruned or full.
+       * 
+ * + * bool is_pruned = 10 [json_name = "isPruned"]; + * @param value The isPruned to set. + * @return This builder for chaining. + */ + public Builder setIsPruned(boolean value) { + + isPruned_ = value; + onChanged(); + return this; + } + /** + *
+       * Type of node pruned or full.
+       * 
+ * + * bool is_pruned = 10 [json_name = "isPruned"]; + * @return This builder for chaining. + */ + public Builder clearIsPruned() { + + isPruned_ = false; + onChanged(); + return this; + } + + private int pruningHeight_ ; + /** + *
+       * The height of pruning.
+       * 
+ * + * int32 pruning_height = 11 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + @java.lang.Override + public int getPruningHeight() { + return pruningHeight_; + } + /** + *
+       * The height of pruning.
+       * 
+ * + * int32 pruning_height = 11 [json_name = "pruningHeight"]; + * @param value The pruningHeight to set. + * @return This builder for chaining. + */ + public Builder setPruningHeight(int value) { + + pruningHeight_ = value; + onChanged(); + return this; + } + /** + *
+       * The height of pruning.
+       * 
+ * + * int32 pruning_height = 11 [json_name = "pruningHeight"]; + * @return This builder for chaining. + */ + public Builder clearPruningHeight() { + + pruningHeight_ = 0; + onChanged(); + return this; + } + private double clockOffset_ ; /** *
        * Clock offset of the node.
        * 
* - * double clock_offset = 13 [json_name = "clockOffset"]; + * double clock_offset = 12 [json_name = "clockOffset"]; * @return The clockOffset. */ @java.lang.Override @@ -5864,7 +5364,7 @@ public double getClockOffset() { * Clock offset of the node. * * - * double clock_offset = 13 [json_name = "clockOffset"]; + * double clock_offset = 12 [json_name = "clockOffset"]; * @param value The clockOffset to set. * @return This builder for chaining. */ @@ -5879,7 +5379,7 @@ public Builder setClockOffset(double value) { * Clock offset of the node. * * - * double clock_offset = 13 [json_name = "clockOffset"]; + * double clock_offset = 12 [json_name = "clockOffset"]; * @return This builder for chaining. */ public Builder clearClockOffset() { @@ -5897,7 +5397,7 @@ public Builder clearClockOffset() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; * @return Whether the connectionInfo field is set. */ public boolean hasConnectionInfo() { @@ -5908,7 +5408,7 @@ public boolean hasConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; * @return The connectionInfo. */ public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { @@ -5923,7 +5423,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public Builder setConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo value) { if (connectionInfoBuilder_ == null) { @@ -5943,7 +5443,7 @@ public Builder setConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public Builder setConnectionInfo( pactus.network.NetworkOuterClass.ConnectionInfo.Builder builderForValue) { @@ -5961,7 +5461,7 @@ public Builder setConnectionInfo( * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public Builder mergeConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo value) { if (connectionInfoBuilder_ == null) { @@ -5983,7 +5483,7 @@ public Builder mergeConnectionInfo(pactus.network.NetworkOuterClass.ConnectionIn * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public Builder clearConnectionInfo() { if (connectionInfoBuilder_ == null) { @@ -6001,7 +5501,7 @@ public Builder clearConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public pactus.network.NetworkOuterClass.ConnectionInfo.Builder getConnectionInfoBuilder() { @@ -6013,7 +5513,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo.Builder getConnectionInfo * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder() { if (connectionInfoBuilder_ != null) { @@ -6028,7 +5528,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInf * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; */ private com.google.protobuf.SingleFieldBuilderV3< pactus.network.NetworkOuterClass.ConnectionInfo, pactus.network.NetworkOuterClass.ConnectionInfo.Builder, pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder> @@ -8222,259 +7722,690 @@ public Builder mergeFrom( } // finally return this; } - private int bitField0_; - - private int status_ ; + private int bitField0_; + + private int status_ ; + /** + *
+       * Status of the peer.
+       * 
+ * + * int32 status = 1 [json_name = "status"]; + * @return The status. + */ + @java.lang.Override + public int getStatus() { + return status_; + } + /** + *
+       * Status of the peer.
+       * 
+ * + * int32 status = 1 [json_name = "status"]; + * @param value The status to set. + * @return This builder for chaining. + */ + public Builder setStatus(int value) { + + status_ = value; + onChanged(); + return this; + } + /** + *
+       * Status of the peer.
+       * 
+ * + * int32 status = 1 [json_name = "status"]; + * @return This builder for chaining. + */ + public Builder clearStatus() { + + status_ = 0; + onChanged(); + return this; + } + + private java.lang.Object moniker_ = ""; + /** + *
+       * Moniker of the peer.
+       * 
+ * + * string moniker = 2 [json_name = "moniker"]; + * @return The moniker. + */ + public java.lang.String getMoniker() { + java.lang.Object ref = moniker_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + moniker_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Moniker of the peer.
+       * 
+ * + * string moniker = 2 [json_name = "moniker"]; + * @return The bytes for moniker. + */ + public com.google.protobuf.ByteString + getMonikerBytes() { + java.lang.Object ref = moniker_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + moniker_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Moniker of the peer.
+       * 
+ * + * string moniker = 2 [json_name = "moniker"]; + * @param value The moniker to set. + * @return This builder for chaining. + */ + public Builder setMoniker( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + moniker_ = value; + onChanged(); + return this; + } + /** + *
+       * Moniker of the peer.
+       * 
+ * + * string moniker = 2 [json_name = "moniker"]; + * @return This builder for chaining. + */ + public Builder clearMoniker() { + + moniker_ = getDefaultInstance().getMoniker(); + onChanged(); + return this; + } + /** + *
+       * Moniker of the peer.
+       * 
+ * + * string moniker = 2 [json_name = "moniker"]; + * @param value The bytes for moniker to set. + * @return This builder for chaining. + */ + public Builder setMonikerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + moniker_ = value; + onChanged(); + return this; + } + + private java.lang.Object agent_ = ""; + /** + *
+       * Agent information of the peer.
+       * 
+ * + * string agent = 3 [json_name = "agent"]; + * @return The agent. + */ + public java.lang.String getAgent() { + java.lang.Object ref = agent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + agent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Agent information of the peer.
+       * 
+ * + * string agent = 3 [json_name = "agent"]; + * @return The bytes for agent. + */ + public com.google.protobuf.ByteString + getAgentBytes() { + java.lang.Object ref = agent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + agent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Agent information of the peer.
+       * 
+ * + * string agent = 3 [json_name = "agent"]; + * @param value The agent to set. + * @return This builder for chaining. + */ + public Builder setAgent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + agent_ = value; + onChanged(); + return this; + } + /** + *
+       * Agent information of the peer.
+       * 
+ * + * string agent = 3 [json_name = "agent"]; + * @return This builder for chaining. + */ + public Builder clearAgent() { + + agent_ = getDefaultInstance().getAgent(); + onChanged(); + return this; + } + /** + *
+       * Agent information of the peer.
+       * 
+ * + * string agent = 3 [json_name = "agent"]; + * @param value The bytes for agent to set. + * @return This builder for chaining. + */ + public Builder setAgentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + agent_ = value; + onChanged(); + return this; + } + + private java.lang.Object peerId_ = ""; + /** + *
+       * Peer ID of the peer.
+       * 
+ * + * string peer_id = 4 [json_name = "peerId"]; + * @return The peerId. + */ + public java.lang.String getPeerId() { + java.lang.Object ref = peerId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + peerId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Peer ID of the peer.
+       * 
+ * + * string peer_id = 4 [json_name = "peerId"]; + * @return The bytes for peerId. + */ + public com.google.protobuf.ByteString + getPeerIdBytes() { + java.lang.Object ref = peerId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + peerId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Peer ID of the peer.
+       * 
+ * + * string peer_id = 4 [json_name = "peerId"]; + * @param value The peerId to set. + * @return This builder for chaining. + */ + public Builder setPeerId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + peerId_ = value; + onChanged(); + return this; + } /** *
-       * Status of the peer.
+       * Peer ID of the peer.
        * 
* - * int32 status = 1 [json_name = "status"]; - * @return The status. + * string peer_id = 4 [json_name = "peerId"]; + * @return This builder for chaining. */ - @java.lang.Override - public int getStatus() { - return status_; + public Builder clearPeerId() { + + peerId_ = getDefaultInstance().getPeerId(); + onChanged(); + return this; } /** *
-       * Status of the peer.
+       * Peer ID of the peer.
        * 
* - * int32 status = 1 [json_name = "status"]; - * @param value The status to set. + * string peer_id = 4 [json_name = "peerId"]; + * @param value The bytes for peerId to set. * @return This builder for chaining. */ - public Builder setStatus(int value) { + public Builder setPeerIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); - status_ = value; + peerId_ = value; onChanged(); return this; } + + private com.google.protobuf.LazyStringList consensusKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureConsensusKeysIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + consensusKeys_ = new com.google.protobuf.LazyStringArrayList(consensusKeys_); + bitField0_ |= 0x00000001; + } + } /** *
-       * Status of the peer.
+       * Consensus keys used by the peer.
        * 
* - * int32 status = 1 [json_name = "status"]; + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @return A list containing the consensusKeys. + */ + public com.google.protobuf.ProtocolStringList + getConsensusKeysList() { + return consensusKeys_.getUnmodifiableView(); + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @return The count of consensusKeys. + */ + public int getConsensusKeysCount() { + return consensusKeys_.size(); + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param index The index of the element to return. + * @return The consensusKeys at the given index. + */ + public java.lang.String getConsensusKeys(int index) { + return consensusKeys_.get(index); + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param index The index of the value to return. + * @return The bytes of the consensusKeys at the given index. + */ + public com.google.protobuf.ByteString + getConsensusKeysBytes(int index) { + return consensusKeys_.getByteString(index); + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param index The index to set the value at. + * @param value The consensusKeys to set. * @return This builder for chaining. */ - public Builder clearStatus() { - - status_ = 0; + public Builder setConsensusKeys( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureConsensusKeysIsMutable(); + consensusKeys_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param value The consensusKeys to add. + * @return This builder for chaining. + */ + public Builder addConsensusKeys( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureConsensusKeysIsMutable(); + consensusKeys_.add(value); + onChanged(); + return this; + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param values The consensusKeys to add. + * @return This builder for chaining. + */ + public Builder addAllConsensusKeys( + java.lang.Iterable values) { + ensureConsensusKeysIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, consensusKeys_); + onChanged(); + return this; + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @return This builder for chaining. + */ + public Builder clearConsensusKeys() { + consensusKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * Consensus keys used by the peer.
+       * 
+ * + * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * @param value The bytes of the consensusKeys to add. + * @return This builder for chaining. + */ + public Builder addConsensusKeysBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureConsensusKeysIsMutable(); + consensusKeys_.add(value); onChanged(); return this; } - private java.lang.Object moniker_ = ""; + private com.google.protobuf.LazyStringList consensusAddresses_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureConsensusAddressesIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + consensusAddresses_ = new com.google.protobuf.LazyStringArrayList(consensusAddresses_); + bitField0_ |= 0x00000002; + } + } /** *
-       * Moniker of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string moniker = 2 [json_name = "moniker"]; - * @return The moniker. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @return A list containing the consensusAddresses. */ - public java.lang.String getMoniker() { - java.lang.Object ref = moniker_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - moniker_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public com.google.protobuf.ProtocolStringList + getConsensusAddressesList() { + return consensusAddresses_.getUnmodifiableView(); } /** *
-       * Moniker of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string moniker = 2 [json_name = "moniker"]; - * @return The bytes for moniker. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @return The count of consensusAddresses. + */ + public int getConsensusAddressesCount() { + return consensusAddresses_.size(); + } + /** + *
+       * Consensus addresses of the peer.
+       * 
+ * + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param index The index of the element to return. + * @return The consensusAddresses at the given index. + */ + public java.lang.String getConsensusAddresses(int index) { + return consensusAddresses_.get(index); + } + /** + *
+       * Consensus addresses of the peer.
+       * 
+ * + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param index The index of the value to return. + * @return The bytes of the consensusAddresses at the given index. */ public com.google.protobuf.ByteString - getMonikerBytes() { - java.lang.Object ref = moniker_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - moniker_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + getConsensusAddressesBytes(int index) { + return consensusAddresses_.getByteString(index); } /** *
-       * Moniker of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string moniker = 2 [json_name = "moniker"]; - * @param value The moniker to set. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param index The index to set the value at. + * @param value The consensusAddresses to set. * @return This builder for chaining. */ - public Builder setMoniker( - java.lang.String value) { + public Builder setConsensusAddresses( + int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } - - moniker_ = value; - onChanged(); - return this; - } - /** - *
-       * Moniker of the peer.
-       * 
- * - * string moniker = 2 [json_name = "moniker"]; - * @return This builder for chaining. - */ - public Builder clearMoniker() { - - moniker_ = getDefaultInstance().getMoniker(); + ensureConsensusAddressesIsMutable(); + consensusAddresses_.set(index, value); onChanged(); return this; } /** *
-       * Moniker of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string moniker = 2 [json_name = "moniker"]; - * @param value The bytes for moniker to set. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param value The consensusAddresses to add. * @return This builder for chaining. */ - public Builder setMonikerBytes( - com.google.protobuf.ByteString value) { + public Builder addConsensusAddresses( + java.lang.String value) { if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - - moniker_ = value; + ensureConsensusAddressesIsMutable(); + consensusAddresses_.add(value); onChanged(); return this; } - - private java.lang.Object agent_ = ""; /** *
-       * Agent information of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string agent = 3 [json_name = "agent"]; - * @return The agent. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param values The consensusAddresses to add. + * @return This builder for chaining. */ - public java.lang.String getAgent() { - java.lang.Object ref = agent_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - agent_ = s; - return s; - } else { - return (java.lang.String) ref; - } + public Builder addAllConsensusAddresses( + java.lang.Iterable values) { + ensureConsensusAddressesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, consensusAddresses_); + onChanged(); + return this; } /** *
-       * Agent information of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string agent = 3 [json_name = "agent"]; - * @return The bytes for agent. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @return This builder for chaining. */ - public com.google.protobuf.ByteString - getAgentBytes() { - java.lang.Object ref = agent_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - agent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public Builder clearConsensusAddresses() { + consensusAddresses_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; } /** *
-       * Agent information of the peer.
+       * Consensus addresses of the peer.
        * 
* - * string agent = 3 [json_name = "agent"]; - * @param value The agent to set. + * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * @param value The bytes of the consensusAddresses to add. * @return This builder for chaining. */ - public Builder setAgent( - java.lang.String value) { + public Builder addConsensusAddressesBytes( + com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } - - agent_ = value; + checkByteStringIsUtf8(value); + ensureConsensusAddressesIsMutable(); + consensusAddresses_.add(value); onChanged(); return this; } + + private int services_ ; /** *
-       * Agent information of the peer.
+       * Services provided by the peer.
        * 
* - * string agent = 3 [json_name = "agent"]; + * uint32 services = 7 [json_name = "services"]; + * @return The services. + */ + @java.lang.Override + public int getServices() { + return services_; + } + /** + *
+       * Services provided by the peer.
+       * 
+ * + * uint32 services = 7 [json_name = "services"]; + * @param value The services to set. * @return This builder for chaining. */ - public Builder clearAgent() { + public Builder setServices(int value) { - agent_ = getDefaultInstance().getAgent(); + services_ = value; onChanged(); return this; } /** *
-       * Agent information of the peer.
+       * Services provided by the peer.
        * 
* - * string agent = 3 [json_name = "agent"]; - * @param value The bytes for agent to set. + * uint32 services = 7 [json_name = "services"]; * @return This builder for chaining. */ - public Builder setAgentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); + public Builder clearServices() { - agent_ = value; + services_ = 0; onChanged(); return this; } - private java.lang.Object peerId_ = ""; + private java.lang.Object lastBlockHash_ = ""; /** *
-       * Peer ID of the peer.
+       * Hash of the last block the peer knows.
        * 
* - * string peer_id = 4 [json_name = "peerId"]; - * @return The peerId. + * string last_block_hash = 8 [json_name = "lastBlockHash"]; + * @return The lastBlockHash. */ - public java.lang.String getPeerId() { - java.lang.Object ref = peerId_; + public java.lang.String getLastBlockHash() { + java.lang.Object ref = lastBlockHash_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - peerId_ = s; + lastBlockHash_ = s; return s; } else { return (java.lang.String) ref; @@ -8482,20 +8413,20 @@ public java.lang.String getPeerId() { } /** *
-       * Peer ID of the peer.
+       * Hash of the last block the peer knows.
        * 
* - * string peer_id = 4 [json_name = "peerId"]; - * @return The bytes for peerId. + * string last_block_hash = 8 [json_name = "lastBlockHash"]; + * @return The bytes for lastBlockHash. */ public com.google.protobuf.ByteString - getPeerIdBytes() { - java.lang.Object ref = peerId_; + getLastBlockHashBytes() { + java.lang.Object ref = lastBlockHash_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); - peerId_ = b; + lastBlockHash_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -8503,1436 +8434,1686 @@ public java.lang.String getPeerId() { } /** *
-       * Peer ID of the peer.
+       * Hash of the last block the peer knows.
        * 
* - * string peer_id = 4 [json_name = "peerId"]; - * @param value The peerId to set. + * string last_block_hash = 8 [json_name = "lastBlockHash"]; + * @param value The lastBlockHash to set. * @return This builder for chaining. */ - public Builder setPeerId( + public Builder setLastBlockHash( java.lang.String value) { if (value == null) { throw new NullPointerException(); } - peerId_ = value; + lastBlockHash_ = value; onChanged(); return this; } /** *
-       * Peer ID of the peer.
+       * Hash of the last block the peer knows.
        * 
* - * string peer_id = 4 [json_name = "peerId"]; + * string last_block_hash = 8 [json_name = "lastBlockHash"]; * @return This builder for chaining. */ - public Builder clearPeerId() { + public Builder clearLastBlockHash() { - peerId_ = getDefaultInstance().getPeerId(); + lastBlockHash_ = getDefaultInstance().getLastBlockHash(); onChanged(); return this; } /** *
-       * Peer ID of the peer.
+       * Hash of the last block the peer knows.
        * 
* - * string peer_id = 4 [json_name = "peerId"]; - * @param value The bytes for peerId to set. + * string last_block_hash = 8 [json_name = "lastBlockHash"]; + * @param value The bytes for lastBlockHash to set. * @return This builder for chaining. */ - public Builder setPeerIdBytes( + public Builder setLastBlockHashBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - peerId_ = value; + lastBlockHash_ = value; onChanged(); return this; } - private com.google.protobuf.LazyStringList consensusKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureConsensusKeysIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - consensusKeys_ = new com.google.protobuf.LazyStringArrayList(consensusKeys_); - bitField0_ |= 0x00000001; - } - } - /** - *
-       * Consensus keys used by the peer.
-       * 
- * - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @return A list containing the consensusKeys. - */ - public com.google.protobuf.ProtocolStringList - getConsensusKeysList() { - return consensusKeys_.getUnmodifiableView(); - } - /** - *
-       * Consensus keys used by the peer.
-       * 
- * - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @return The count of consensusKeys. - */ - public int getConsensusKeysCount() { - return consensusKeys_.size(); - } - /** - *
-       * Consensus keys used by the peer.
-       * 
- * - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param index The index of the element to return. - * @return The consensusKeys at the given index. - */ - public java.lang.String getConsensusKeys(int index) { - return consensusKeys_.get(index); - } + private int height_ ; /** *
-       * Consensus keys used by the peer.
+       * Blockchain height of the peer.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param index The index of the value to return. - * @return The bytes of the consensusKeys at the given index. + * uint32 height = 9 [json_name = "height"]; + * @return The height. */ - public com.google.protobuf.ByteString - getConsensusKeysBytes(int index) { - return consensusKeys_.getByteString(index); + @java.lang.Override + public int getHeight() { + return height_; } /** *
-       * Consensus keys used by the peer.
+       * Blockchain height of the peer.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param index The index to set the value at. - * @param value The consensusKeys to set. + * uint32 height = 9 [json_name = "height"]; + * @param value The height to set. * @return This builder for chaining. */ - public Builder setConsensusKeys( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureConsensusKeysIsMutable(); - consensusKeys_.set(index, value); + public Builder setHeight(int value) { + + height_ = value; onChanged(); return this; } /** *
-       * Consensus keys used by the peer.
+       * Blockchain height of the peer.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param value The consensusKeys to add. + * uint32 height = 9 [json_name = "height"]; * @return This builder for chaining. */ - public Builder addConsensusKeys( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureConsensusKeysIsMutable(); - consensusKeys_.add(value); + public Builder clearHeight() { + + height_ = 0; onChanged(); return this; } + + private int receivedBundles_ ; /** *
-       * Consensus keys used by the peer.
+       * Number of received bundles.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param values The consensusKeys to add. - * @return This builder for chaining. + * int32 received_bundles = 10 [json_name = "receivedBundles"]; + * @return The receivedBundles. */ - public Builder addAllConsensusKeys( - java.lang.Iterable values) { - ensureConsensusKeysIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, consensusKeys_); - onChanged(); - return this; + @java.lang.Override + public int getReceivedBundles() { + return receivedBundles_; } /** *
-       * Consensus keys used by the peer.
+       * Number of received bundles.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; + * int32 received_bundles = 10 [json_name = "receivedBundles"]; + * @param value The receivedBundles to set. * @return This builder for chaining. */ - public Builder clearConsensusKeys() { - consensusKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000001); + public Builder setReceivedBundles(int value) { + + receivedBundles_ = value; onChanged(); return this; } /** *
-       * Consensus keys used by the peer.
+       * Number of received bundles.
        * 
* - * repeated string consensus_keys = 5 [json_name = "consensusKeys"]; - * @param value The bytes of the consensusKeys to add. + * int32 received_bundles = 10 [json_name = "receivedBundles"]; * @return This builder for chaining. */ - public Builder addConsensusKeysBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureConsensusKeysIsMutable(); - consensusKeys_.add(value); + public Builder clearReceivedBundles() { + + receivedBundles_ = 0; onChanged(); return this; } - private com.google.protobuf.LazyStringList consensusAddresses_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureConsensusAddressesIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - consensusAddresses_ = new com.google.protobuf.LazyStringArrayList(consensusAddresses_); - bitField0_ |= 0x00000002; - } - } + private int invalidBundles_ ; /** *
-       * Consensus addresses of the peer.
+       * Number of invalid bundles received.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @return A list containing the consensusAddresses. + * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; + * @return The invalidBundles. */ - public com.google.protobuf.ProtocolStringList - getConsensusAddressesList() { - return consensusAddresses_.getUnmodifiableView(); + @java.lang.Override + public int getInvalidBundles() { + return invalidBundles_; } /** *
-       * Consensus addresses of the peer.
+       * Number of invalid bundles received.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @return The count of consensusAddresses. + * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; + * @param value The invalidBundles to set. + * @return This builder for chaining. */ - public int getConsensusAddressesCount() { - return consensusAddresses_.size(); + public Builder setInvalidBundles(int value) { + + invalidBundles_ = value; + onChanged(); + return this; } /** *
-       * Consensus addresses of the peer.
+       * Number of invalid bundles received.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param index The index of the element to return. - * @return The consensusAddresses at the given index. + * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; + * @return This builder for chaining. */ - public java.lang.String getConsensusAddresses(int index) { - return consensusAddresses_.get(index); + public Builder clearInvalidBundles() { + + invalidBundles_ = 0; + onChanged(); + return this; } + + private long lastSent_ ; /** *
-       * Consensus addresses of the peer.
+       * Timestamp of the last sent bundle.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param index The index of the value to return. - * @return The bytes of the consensusAddresses at the given index. + * int64 last_sent = 12 [json_name = "lastSent"]; + * @return The lastSent. */ - public com.google.protobuf.ByteString - getConsensusAddressesBytes(int index) { - return consensusAddresses_.getByteString(index); + @java.lang.Override + public long getLastSent() { + return lastSent_; } /** *
-       * Consensus addresses of the peer.
+       * Timestamp of the last sent bundle.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param index The index to set the value at. - * @param value The consensusAddresses to set. + * int64 last_sent = 12 [json_name = "lastSent"]; + * @param value The lastSent to set. * @return This builder for chaining. */ - public Builder setConsensusAddresses( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureConsensusAddressesIsMutable(); - consensusAddresses_.set(index, value); + public Builder setLastSent(long value) { + + lastSent_ = value; onChanged(); return this; } /** *
-       * Consensus addresses of the peer.
+       * Timestamp of the last sent bundle.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param value The consensusAddresses to add. + * int64 last_sent = 12 [json_name = "lastSent"]; * @return This builder for chaining. */ - public Builder addConsensusAddresses( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureConsensusAddressesIsMutable(); - consensusAddresses_.add(value); + public Builder clearLastSent() { + + lastSent_ = 0L; onChanged(); return this; } + + private long lastReceived_ ; /** *
-       * Consensus addresses of the peer.
+       * Timestamp of the last received bundle.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param values The consensusAddresses to add. + * int64 last_received = 13 [json_name = "lastReceived"]; + * @return The lastReceived. + */ + @java.lang.Override + public long getLastReceived() { + return lastReceived_; + } + /** + *
+       * Timestamp of the last received bundle.
+       * 
+ * + * int64 last_received = 13 [json_name = "lastReceived"]; + * @param value The lastReceived to set. * @return This builder for chaining. */ - public Builder addAllConsensusAddresses( - java.lang.Iterable values) { - ensureConsensusAddressesIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, consensusAddresses_); + public Builder setLastReceived(long value) { + + lastReceived_ = value; onChanged(); return this; } /** *
-       * Consensus addresses of the peer.
+       * Timestamp of the last received bundle.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; + * int64 last_received = 13 [json_name = "lastReceived"]; * @return This builder for chaining. */ - public Builder clearConsensusAddresses() { - consensusAddresses_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); + public Builder clearLastReceived() { + + lastReceived_ = 0L; onChanged(); return this; } + + private com.google.protobuf.MapField< + java.lang.Integer, java.lang.Long> sentBytes_; + private com.google.protobuf.MapField + internalGetSentBytes() { + if (sentBytes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + SentBytesDefaultEntryHolder.defaultEntry); + } + return sentBytes_; + } + private com.google.protobuf.MapField + internalGetMutableSentBytes() { + onChanged();; + if (sentBytes_ == null) { + sentBytes_ = com.google.protobuf.MapField.newMapField( + SentBytesDefaultEntryHolder.defaultEntry); + } + if (!sentBytes_.isMutable()) { + sentBytes_ = sentBytes_.copy(); + } + return sentBytes_; + } + + public int getSentBytesCount() { + return internalGetSentBytes().getMap().size(); + } + /** + *
+       * Bytes sent per message type.
+       * 
+ * + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + */ + + @java.lang.Override + public boolean containsSentBytes( + int key) { + + return internalGetSentBytes().getMap().containsKey(key); + } + /** + * Use {@link #getSentBytesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getSentBytes() { + return getSentBytesMap(); + } /** *
-       * Consensus addresses of the peer.
+       * Bytes sent per message type.
        * 
* - * repeated string consensus_addresses = 6 [json_name = "consensusAddresses"]; - * @param value The bytes of the consensusAddresses to add. - * @return This builder for chaining. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ - public Builder addConsensusAddressesBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureConsensusAddressesIsMutable(); - consensusAddresses_.add(value); - onChanged(); - return this; - } + @java.lang.Override - private int services_ ; + public java.util.Map getSentBytesMap() { + return internalGetSentBytes().getMap(); + } /** *
-       * Services provided by the peer.
+       * Bytes sent per message type.
        * 
* - * uint32 services = 7 [json_name = "services"]; - * @return The services. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ @java.lang.Override - public int getServices() { - return services_; + + public long getSentBytesOrDefault( + int key, + long defaultValue) { + + java.util.Map map = + internalGetSentBytes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** *
-       * Services provided by the peer.
+       * Bytes sent per message type.
        * 
* - * uint32 services = 7 [json_name = "services"]; - * @param value The services to set. - * @return This builder for chaining. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ - public Builder setServices(int value) { + @java.lang.Override + + public long getSentBytesOrThrow( + int key) { - services_ = value; - onChanged(); + java.util.Map map = + internalGetSentBytes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearSentBytes() { + internalGetMutableSentBytes().getMutableMap() + .clear(); return this; } /** *
-       * Services provided by the peer.
+       * Bytes sent per message type.
        * 
* - * uint32 services = 7 [json_name = "services"]; - * @return This builder for chaining. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ - public Builder clearServices() { + + public Builder removeSentBytes( + int key) { - services_ = 0; - onChanged(); + internalGetMutableSentBytes().getMutableMap() + .remove(key); return this; } - - private java.lang.Object lastBlockHash_ = ""; /** - *
-       * Hash of the last block the peer knows.
-       * 
- * - * string last_block_hash = 8 [json_name = "lastBlockHash"]; - * @return The lastBlockHash. + * Use alternate mutation accessors instead. */ - public java.lang.String getLastBlockHash() { - java.lang.Object ref = lastBlockHash_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - lastBlockHash_ = s; - return s; - } else { - return (java.lang.String) ref; - } + @java.lang.Deprecated + public java.util.Map + getMutableSentBytes() { + return internalGetMutableSentBytes().getMutableMap(); } /** *
-       * Hash of the last block the peer knows.
+       * Bytes sent per message type.
        * 
* - * string last_block_hash = 8 [json_name = "lastBlockHash"]; - * @return The bytes for lastBlockHash. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ - public com.google.protobuf.ByteString - getLastBlockHashBytes() { - java.lang.Object ref = lastBlockHash_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - lastBlockHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public Builder putSentBytes( + int key, + long value) { + + + internalGetMutableSentBytes().getMutableMap() + .put(key, value); + return this; } /** *
-       * Hash of the last block the peer knows.
+       * Bytes sent per message type.
        * 
* - * string last_block_hash = 8 [json_name = "lastBlockHash"]; - * @param value The lastBlockHash to set. - * @return This builder for chaining. + * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; */ - public Builder setLastBlockHash( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - lastBlockHash_ = value; - onChanged(); + + public Builder putAllSentBytes( + java.util.Map values) { + internalGetMutableSentBytes().getMutableMap() + .putAll(values); return this; } + + private com.google.protobuf.MapField< + java.lang.Integer, java.lang.Long> receivedBytes_; + private com.google.protobuf.MapField + internalGetReceivedBytes() { + if (receivedBytes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + ReceivedBytesDefaultEntryHolder.defaultEntry); + } + return receivedBytes_; + } + private com.google.protobuf.MapField + internalGetMutableReceivedBytes() { + onChanged();; + if (receivedBytes_ == null) { + receivedBytes_ = com.google.protobuf.MapField.newMapField( + ReceivedBytesDefaultEntryHolder.defaultEntry); + } + if (!receivedBytes_.isMutable()) { + receivedBytes_ = receivedBytes_.copy(); + } + return receivedBytes_; + } + + public int getReceivedBytesCount() { + return internalGetReceivedBytes().getMap().size(); + } /** *
-       * Hash of the last block the peer knows.
+       * Bytes received per message type.
        * 
* - * string last_block_hash = 8 [json_name = "lastBlockHash"]; - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder clearLastBlockHash() { + + @java.lang.Override + public boolean containsReceivedBytes( + int key) { - lastBlockHash_ = getDefaultInstance().getLastBlockHash(); - onChanged(); - return this; + return internalGetReceivedBytes().getMap().containsKey(key); + } + /** + * Use {@link #getReceivedBytesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getReceivedBytes() { + return getReceivedBytesMap(); } /** *
-       * Hash of the last block the peer knows.
+       * Bytes received per message type.
        * 
* - * string last_block_hash = 8 [json_name = "lastBlockHash"]; - * @param value The bytes for lastBlockHash to set. - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder setLastBlockHashBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - lastBlockHash_ = value; - onChanged(); - return this; - } + @java.lang.Override - private int height_ ; + public java.util.Map getReceivedBytesMap() { + return internalGetReceivedBytes().getMap(); + } /** *
-       * Blockchain height of the peer.
+       * Bytes received per message type.
        * 
* - * uint32 height = 9 [json_name = "height"]; - * @return The height. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ @java.lang.Override - public int getHeight() { - return height_; + + public long getReceivedBytesOrDefault( + int key, + long defaultValue) { + + java.util.Map map = + internalGetReceivedBytes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** *
-       * Blockchain height of the peer.
+       * Bytes received per message type.
        * 
* - * uint32 height = 9 [json_name = "height"]; - * @param value The height to set. - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder setHeight(int value) { + @java.lang.Override + + public long getReceivedBytesOrThrow( + int key) { - height_ = value; - onChanged(); + java.util.Map map = + internalGetReceivedBytes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearReceivedBytes() { + internalGetMutableReceivedBytes().getMutableMap() + .clear(); return this; } /** *
-       * Blockchain height of the peer.
+       * Bytes received per message type.
        * 
* - * uint32 height = 9 [json_name = "height"]; - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder clearHeight() { + + public Builder removeReceivedBytes( + int key) { - height_ = 0; - onChanged(); + internalGetMutableReceivedBytes().getMutableMap() + .remove(key); return this; } - - private int receivedBundles_ ; /** - *
-       * Number of received bundles.
-       * 
- * - * int32 received_bundles = 10 [json_name = "receivedBundles"]; - * @return The receivedBundles. + * Use alternate mutation accessors instead. */ - @java.lang.Override - public int getReceivedBundles() { - return receivedBundles_; + @java.lang.Deprecated + public java.util.Map + getMutableReceivedBytes() { + return internalGetMutableReceivedBytes().getMutableMap(); } /** *
-       * Number of received bundles.
+       * Bytes received per message type.
        * 
* - * int32 received_bundles = 10 [json_name = "receivedBundles"]; - * @param value The receivedBundles to set. - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder setReceivedBundles(int value) { + public Builder putReceivedBytes( + int key, + long value) { - receivedBundles_ = value; - onChanged(); + + internalGetMutableReceivedBytes().getMutableMap() + .put(key, value); return this; } /** *
-       * Number of received bundles.
+       * Bytes received per message type.
        * 
* - * int32 received_bundles = 10 [json_name = "receivedBundles"]; - * @return This builder for chaining. + * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; */ - public Builder clearReceivedBundles() { - - receivedBundles_ = 0; - onChanged(); + + public Builder putAllReceivedBytes( + java.util.Map values) { + internalGetMutableReceivedBytes().getMutableMap() + .putAll(values); return this; } - private int invalidBundles_ ; + private java.lang.Object address_ = ""; /** *
-       * Number of invalid bundles received.
+       * Network address of the peer.
        * 
* - * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; - * @return The invalidBundles. + * string address = 16 [json_name = "address"]; + * @return The address. */ - @java.lang.Override - public int getInvalidBundles() { - return invalidBundles_; + public java.lang.String getAddress() { + java.lang.Object ref = address_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + address_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** *
-       * Number of invalid bundles received.
+       * Network address of the peer.
        * 
* - * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; - * @param value The invalidBundles to set. - * @return This builder for chaining. + * string address = 16 [json_name = "address"]; + * @return The bytes for address. */ - public Builder setInvalidBundles(int value) { - - invalidBundles_ = value; - onChanged(); - return this; + public com.google.protobuf.ByteString + getAddressBytes() { + java.lang.Object ref = address_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + address_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** *
-       * Number of invalid bundles received.
+       * Network address of the peer.
        * 
* - * int32 invalid_bundles = 11 [json_name = "invalidBundles"]; + * string address = 16 [json_name = "address"]; + * @param value The address to set. * @return This builder for chaining. */ - public Builder clearInvalidBundles() { - - invalidBundles_ = 0; + public Builder setAddress( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + address_ = value; onChanged(); return this; } - - private long lastSent_ ; /** *
-       * Timestamp of the last sent bundle.
+       * Network address of the peer.
        * 
* - * int64 last_sent = 12 [json_name = "lastSent"]; - * @return The lastSent. + * string address = 16 [json_name = "address"]; + * @return This builder for chaining. */ - @java.lang.Override - public long getLastSent() { - return lastSent_; + public Builder clearAddress() { + + address_ = getDefaultInstance().getAddress(); + onChanged(); + return this; } /** *
-       * Timestamp of the last sent bundle.
+       * Network address of the peer.
        * 
* - * int64 last_sent = 12 [json_name = "lastSent"]; - * @param value The lastSent to set. + * string address = 16 [json_name = "address"]; + * @param value The bytes for address to set. * @return This builder for chaining. */ - public Builder setLastSent(long value) { + public Builder setAddressBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); - lastSent_ = value; + address_ = value; onChanged(); return this; } + + private java.lang.Object direction_ = ""; /** *
-       * Timestamp of the last sent bundle.
+       * Direction of connection with the peer.
        * 
* - * int64 last_sent = 12 [json_name = "lastSent"]; - * @return This builder for chaining. + * string direction = 17 [json_name = "direction"]; + * @return The direction. */ - public Builder clearLastSent() { - - lastSent_ = 0L; - onChanged(); - return this; + public java.lang.String getDirection() { + java.lang.Object ref = direction_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + direction_ = s; + return s; + } else { + return (java.lang.String) ref; + } } - - private long lastReceived_ ; /** *
-       * Timestamp of the last received bundle.
+       * Direction of connection with the peer.
        * 
* - * int64 last_received = 13 [json_name = "lastReceived"]; - * @return The lastReceived. + * string direction = 17 [json_name = "direction"]; + * @return The bytes for direction. */ - @java.lang.Override - public long getLastReceived() { - return lastReceived_; + public com.google.protobuf.ByteString + getDirectionBytes() { + java.lang.Object ref = direction_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + direction_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** *
-       * Timestamp of the last received bundle.
+       * Direction of connection with the peer.
        * 
* - * int64 last_received = 13 [json_name = "lastReceived"]; - * @param value The lastReceived to set. + * string direction = 17 [json_name = "direction"]; + * @param value The direction to set. * @return This builder for chaining. */ - public Builder setLastReceived(long value) { - - lastReceived_ = value; + public Builder setDirection( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + direction_ = value; onChanged(); return this; } /** *
-       * Timestamp of the last received bundle.
+       * Direction of connection with the peer.
        * 
* - * int64 last_received = 13 [json_name = "lastReceived"]; + * string direction = 17 [json_name = "direction"]; * @return This builder for chaining. */ - public Builder clearLastReceived() { + public Builder clearDirection() { - lastReceived_ = 0L; + direction_ = getDefaultInstance().getDirection(); onChanged(); return this; } - - private com.google.protobuf.MapField< - java.lang.Integer, java.lang.Long> sentBytes_; - private com.google.protobuf.MapField - internalGetSentBytes() { - if (sentBytes_ == null) { - return com.google.protobuf.MapField.emptyMapField( - SentBytesDefaultEntryHolder.defaultEntry); - } - return sentBytes_; - } - private com.google.protobuf.MapField - internalGetMutableSentBytes() { - onChanged();; - if (sentBytes_ == null) { - sentBytes_ = com.google.protobuf.MapField.newMapField( - SentBytesDefaultEntryHolder.defaultEntry); - } - if (!sentBytes_.isMutable()) { - sentBytes_ = sentBytes_.copy(); - } - return sentBytes_; + /** + *
+       * Direction of connection with the peer.
+       * 
+ * + * string direction = 17 [json_name = "direction"]; + * @param value The bytes for direction to set. + * @return This builder for chaining. + */ + public Builder setDirectionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + direction_ = value; + onChanged(); + return this; } - public int getSentBytesCount() { - return internalGetSentBytes().getMap().size(); + private com.google.protobuf.LazyStringList protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureProtocolsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + protocols_ = new com.google.protobuf.LazyStringArrayList(protocols_); + bitField0_ |= 0x00000010; + } } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @return A list containing the protocols. */ - - @java.lang.Override - public boolean containsSentBytes( - int key) { - - return internalGetSentBytes().getMap().containsKey(key); + public com.google.protobuf.ProtocolStringList + getProtocolsList() { + return protocols_.getUnmodifiableView(); } /** - * Use {@link #getSentBytesMap()} instead. + *
+       * List of protocols supported by the peer.
+       * 
+ * + * repeated string protocols = 18 [json_name = "protocols"]; + * @return The count of protocols. */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getSentBytes() { - return getSentBytesMap(); + public int getProtocolsCount() { + return protocols_.size(); } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @param index The index of the element to return. + * @return The protocols at the given index. */ - @java.lang.Override - - public java.util.Map getSentBytesMap() { - return internalGetSentBytes().getMap(); + public java.lang.String getProtocols(int index) { + return protocols_.get(index); } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @param index The index of the value to return. + * @return The bytes of the protocols at the given index. */ - @java.lang.Override - - public long getSentBytesOrDefault( - int key, - long defaultValue) { - - java.util.Map map = - internalGetSentBytes().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; + public com.google.protobuf.ByteString + getProtocolsBytes(int index) { + return protocols_.getByteString(index); } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @param index The index to set the value at. + * @param value The protocols to set. + * @return This builder for chaining. */ - @java.lang.Override - - public long getSentBytesOrThrow( - int key) { - - java.util.Map map = - internalGetSentBytes().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - public Builder clearSentBytes() { - internalGetMutableSentBytes().getMutableMap() - .clear(); + public Builder setProtocols( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureProtocolsIsMutable(); + protocols_.set(index, value); + onChanged(); return this; } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @param value The protocols to add. + * @return This builder for chaining. */ - - public Builder removeSentBytes( - int key) { - - internalGetMutableSentBytes().getMutableMap() - .remove(key); + public Builder addProtocols( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureProtocolsIsMutable(); + protocols_.add(value); + onChanged(); return this; } /** - * Use alternate mutation accessors instead. + *
+       * List of protocols supported by the peer.
+       * 
+ * + * repeated string protocols = 18 [json_name = "protocols"]; + * @param values The protocols to add. + * @return This builder for chaining. */ - @java.lang.Deprecated - public java.util.Map - getMutableSentBytes() { - return internalGetMutableSentBytes().getMutableMap(); + public Builder addAllProtocols( + java.lang.Iterable values) { + ensureProtocolsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, protocols_); + onChanged(); + return this; } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @return This builder for chaining. */ - public Builder putSentBytes( - int key, - long value) { - - - internalGetMutableSentBytes().getMutableMap() - .put(key, value); + public Builder clearProtocols() { + protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); return this; } /** *
-       * Bytes sent per message type.
+       * List of protocols supported by the peer.
        * 
* - * map<int32, int64> sent_bytes = 14 [json_name = "sentBytes"]; + * repeated string protocols = 18 [json_name = "protocols"]; + * @param value The bytes of the protocols to add. + * @return This builder for chaining. */ - - public Builder putAllSentBytes( - java.util.Map values) { - internalGetMutableSentBytes().getMutableMap() - .putAll(values); + public Builder addProtocolsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureProtocolsIsMutable(); + protocols_.add(value); + onChanged(); return this; } - private com.google.protobuf.MapField< - java.lang.Integer, java.lang.Long> receivedBytes_; - private com.google.protobuf.MapField - internalGetReceivedBytes() { - if (receivedBytes_ == null) { - return com.google.protobuf.MapField.emptyMapField( - ReceivedBytesDefaultEntryHolder.defaultEntry); - } - return receivedBytes_; - } - private com.google.protobuf.MapField - internalGetMutableReceivedBytes() { - onChanged();; - if (receivedBytes_ == null) { - receivedBytes_ = com.google.protobuf.MapField.newMapField( - ReceivedBytesDefaultEntryHolder.defaultEntry); - } - if (!receivedBytes_.isMutable()) { - receivedBytes_ = receivedBytes_.copy(); - } - return receivedBytes_; - } - - public int getReceivedBytesCount() { - return internalGetReceivedBytes().getMap().size(); - } + private int totalSessions_ ; /** *
-       * Bytes received per message type.
+       * Total download sessions with the peer.
        * 
* - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; + * int32 total_sessions = 19 [json_name = "totalSessions"]; + * @return The totalSessions. */ - @java.lang.Override - public boolean containsReceivedBytes( - int key) { + public int getTotalSessions() { + return totalSessions_; + } + /** + *
+       * Total download sessions with the peer.
+       * 
+ * + * int32 total_sessions = 19 [json_name = "totalSessions"]; + * @param value The totalSessions to set. + * @return This builder for chaining. + */ + public Builder setTotalSessions(int value) { - return internalGetReceivedBytes().getMap().containsKey(key); + totalSessions_ = value; + onChanged(); + return this; } /** - * Use {@link #getReceivedBytesMap()} instead. + *
+       * Total download sessions with the peer.
+       * 
+ * + * int32 total_sessions = 19 [json_name = "totalSessions"]; + * @return This builder for chaining. */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getReceivedBytes() { - return getReceivedBytesMap(); + public Builder clearTotalSessions() { + + totalSessions_ = 0; + onChanged(); + return this; } + + private int completedSessions_ ; /** *
-       * Bytes received per message type.
+       * Completed download sessions with the peer.
        * 
* - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; + * int32 completed_sessions = 20 [json_name = "completedSessions"]; + * @return The completedSessions. */ @java.lang.Override - - public java.util.Map getReceivedBytesMap() { - return internalGetReceivedBytes().getMap(); + public int getCompletedSessions() { + return completedSessions_; } /** *
-       * Bytes received per message type.
+       * Completed download sessions with the peer.
        * 
* - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; + * int32 completed_sessions = 20 [json_name = "completedSessions"]; + * @param value The completedSessions to set. + * @return This builder for chaining. */ - @java.lang.Override - - public long getReceivedBytesOrDefault( - int key, - long defaultValue) { + public Builder setCompletedSessions(int value) { - java.util.Map map = - internalGetReceivedBytes().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; + completedSessions_ = value; + onChanged(); + return this; } /** *
-       * Bytes received per message type.
+       * Completed download sessions with the peer.
        * 
* - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; + * int32 completed_sessions = 20 [json_name = "completedSessions"]; + * @return This builder for chaining. */ + public Builder clearCompletedSessions() { + + completedSessions_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } - public long getReceivedBytesOrThrow( - int key) { - - java.util.Map map = - internalGetReceivedBytes().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); + + // @@protoc_insertion_point(builder_scope:pactus.PeerInfo) + } + + // @@protoc_insertion_point(class_scope:pactus.PeerInfo) + private static final pactus.network.NetworkOuterClass.PeerInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new pactus.network.NetworkOuterClass.PeerInfo(); + } + + public static pactus.network.NetworkOuterClass.PeerInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PeerInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); } - return map.get(key); + return builder.buildPartial(); } + }; - public Builder clearReceivedBytes() { - internalGetMutableReceivedBytes().getMutableMap() - .clear(); - return this; + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ConnectionInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:pactus.ConnectionInfo) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Total number of connections.
+     * 
+ * + * uint64 connections = 1 [json_name = "connections"]; + * @return The connections. + */ + long getConnections(); + + /** + *
+     * Number of inbound connections.
+     * 
+ * + * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; + * @return The inboundConnections. + */ + long getInboundConnections(); + + /** + *
+     * Number of outbound connections.
+     * 
+ * + * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; + * @return The outboundConnections. + */ + long getOutboundConnections(); + } + /** + *
+   * Response message containing information about the node's connections.
+   * 
+ * + * Protobuf type {@code pactus.ConnectionInfo} + */ + public static final class ConnectionInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:pactus.ConnectionInfo) + ConnectionInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use ConnectionInfo.newBuilder() to construct. + private ConnectionInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ConnectionInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ConnectionInfo(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + pactus.network.NetworkOuterClass.ConnectionInfo.class, pactus.network.NetworkOuterClass.ConnectionInfo.Builder.class); + } + + public static final int CONNECTIONS_FIELD_NUMBER = 1; + private long connections_; + /** + *
+     * Total number of connections.
+     * 
+ * + * uint64 connections = 1 [json_name = "connections"]; + * @return The connections. + */ + @java.lang.Override + public long getConnections() { + return connections_; + } + + public static final int INBOUND_CONNECTIONS_FIELD_NUMBER = 2; + private long inboundConnections_; + /** + *
+     * Number of inbound connections.
+     * 
+ * + * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; + * @return The inboundConnections. + */ + @java.lang.Override + public long getInboundConnections() { + return inboundConnections_; + } + + public static final int OUTBOUND_CONNECTIONS_FIELD_NUMBER = 3; + private long outboundConnections_; + /** + *
+     * Number of outbound connections.
+     * 
+ * + * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; + * @return The outboundConnections. + */ + @java.lang.Override + public long getOutboundConnections() { + return outboundConnections_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (connections_ != 0L) { + output.writeUInt64(1, connections_); } - /** - *
-       * Bytes received per message type.
-       * 
- * - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; - */ + if (inboundConnections_ != 0L) { + output.writeUInt64(2, inboundConnections_); + } + if (outboundConnections_ != 0L) { + output.writeUInt64(3, outboundConnections_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; - public Builder removeReceivedBytes( - int key) { - - internalGetMutableReceivedBytes().getMutableMap() - .remove(key); - return this; + size = 0; + if (connections_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, connections_); } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableReceivedBytes() { - return internalGetMutableReceivedBytes().getMutableMap(); + if (inboundConnections_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, inboundConnections_); } - /** - *
-       * Bytes received per message type.
-       * 
- * - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; - */ - public Builder putReceivedBytes( - int key, - long value) { - - - internalGetMutableReceivedBytes().getMutableMap() - .put(key, value); - return this; + if (outboundConnections_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, outboundConnections_); } - /** - *
-       * Bytes received per message type.
-       * 
- * - * map<int32, int64> received_bytes = 15 [json_name = "receivedBytes"]; - */ + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - public Builder putAllReceivedBytes( - java.util.Map values) { - internalGetMutableReceivedBytes().getMutableMap() - .putAll(values); - return this; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - - private java.lang.Object address_ = ""; - /** - *
-       * Network address of the peer.
-       * 
- * - * string address = 16 [json_name = "address"]; - * @return The address. - */ - public java.lang.String getAddress() { - java.lang.Object ref = address_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - address_ = s; - return s; - } else { - return (java.lang.String) ref; - } + if (!(obj instanceof pactus.network.NetworkOuterClass.ConnectionInfo)) { + return super.equals(obj); } - /** - *
-       * Network address of the peer.
-       * 
- * - * string address = 16 [json_name = "address"]; - * @return The bytes for address. - */ - public com.google.protobuf.ByteString - getAddressBytes() { - java.lang.Object ref = address_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - address_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + pactus.network.NetworkOuterClass.ConnectionInfo other = (pactus.network.NetworkOuterClass.ConnectionInfo) obj; + + if (getConnections() + != other.getConnections()) return false; + if (getInboundConnections() + != other.getInboundConnections()) return false; + if (getOutboundConnections() + != other.getOutboundConnections()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - /** - *
-       * Network address of the peer.
-       * 
- * - * string address = 16 [json_name = "address"]; - * @param value The address to set. - * @return This builder for chaining. - */ - public Builder setAddress( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - address_ = value; - onChanged(); - return this; + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONNECTIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getConnections()); + hash = (37 * hash) + INBOUND_CONNECTIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getInboundConnections()); + hash = (37 * hash) + OUTBOUND_CONNECTIONS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getOutboundConnections()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static pactus.network.NetworkOuterClass.ConnectionInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(pactus.network.NetworkOuterClass.ConnectionInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Response message containing information about the node's connections.
+     * 
+ * + * Protobuf type {@code pactus.ConnectionInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:pactus.ConnectionInfo) + pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; } - /** - *
-       * Network address of the peer.
-       * 
- * - * string address = 16 [json_name = "address"]; - * @return This builder for chaining. - */ - public Builder clearAddress() { - - address_ = getDefaultInstance().getAddress(); - onChanged(); - return this; + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + pactus.network.NetworkOuterClass.ConnectionInfo.class, pactus.network.NetworkOuterClass.ConnectionInfo.Builder.class); } - /** - *
-       * Network address of the peer.
-       * 
- * - * string address = 16 [json_name = "address"]; - * @param value The bytes for address to set. - * @return This builder for chaining. - */ - public Builder setAddressBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - address_ = value; - onChanged(); + + // Construct using pactus.network.NetworkOuterClass.ConnectionInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + connections_ = 0L; + + inboundConnections_ = 0L; + + outboundConnections_ = 0L; + return this; } - private java.lang.Object direction_ = ""; - /** - *
-       * Direction of connection with the peer.
-       * 
- * - * string direction = 17 [json_name = "direction"]; - * @return The direction. - */ - public java.lang.String getDirection() { - java.lang.Object ref = direction_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - direction_ = s; - return s; - } else { - return (java.lang.String) ref; - } + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return pactus.network.NetworkOuterClass.internal_static_pactus_ConnectionInfo_descriptor; } - /** - *
-       * Direction of connection with the peer.
-       * 
- * - * string direction = 17 [json_name = "direction"]; - * @return The bytes for direction. - */ - public com.google.protobuf.ByteString - getDirectionBytes() { - java.lang.Object ref = direction_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - direction_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + + @java.lang.Override + public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType() { + return pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance(); + } + + @java.lang.Override + public pactus.network.NetworkOuterClass.ConnectionInfo build() { + pactus.network.NetworkOuterClass.ConnectionInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); } + return result; } - /** - *
-       * Direction of connection with the peer.
-       * 
- * - * string direction = 17 [json_name = "direction"]; - * @param value The direction to set. - * @return This builder for chaining. - */ - public Builder setDirection( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - direction_ = value; - onChanged(); - return this; + + @java.lang.Override + public pactus.network.NetworkOuterClass.ConnectionInfo buildPartial() { + pactus.network.NetworkOuterClass.ConnectionInfo result = new pactus.network.NetworkOuterClass.ConnectionInfo(this); + result.connections_ = connections_; + result.inboundConnections_ = inboundConnections_; + result.outboundConnections_ = outboundConnections_; + onBuilt(); + return result; } - /** - *
-       * Direction of connection with the peer.
-       * 
- * - * string direction = 17 [json_name = "direction"]; - * @return This builder for chaining. - */ - public Builder clearDirection() { - - direction_ = getDefaultInstance().getDirection(); - onChanged(); - return this; + + @java.lang.Override + public Builder clone() { + return super.clone(); } - /** - *
-       * Direction of connection with the peer.
-       * 
- * - * string direction = 17 [json_name = "direction"]; - * @param value The bytes for direction to set. - * @return This builder for chaining. - */ - public Builder setDirectionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - direction_ = value; - onChanged(); - return this; + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); } - - private com.google.protobuf.LazyStringList protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; - private void ensureProtocolsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { - protocols_ = new com.google.protobuf.LazyStringArrayList(protocols_); - bitField0_ |= 0x00000010; - } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @return A list containing the protocols. - */ - public com.google.protobuf.ProtocolStringList - getProtocolsList() { - return protocols_.getUnmodifiableView(); + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @return The count of protocols. - */ - public int getProtocolsCount() { - return protocols_.size(); + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @param index The index of the element to return. - * @return The protocols at the given index. - */ - public java.lang.String getProtocols(int index) { - return protocols_.get(index); + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @param index The index of the value to return. - * @return The bytes of the protocols at the given index. - */ - public com.google.protobuf.ByteString - getProtocolsBytes(int index) { - return protocols_.getByteString(index); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof pactus.network.NetworkOuterClass.ConnectionInfo) { + return mergeFrom((pactus.network.NetworkOuterClass.ConnectionInfo)other); + } else { + super.mergeFrom(other); + return this; + } } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @param index The index to set the value at. - * @param value The protocols to set. - * @return This builder for chaining. - */ - public Builder setProtocols( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureProtocolsIsMutable(); - protocols_.set(index, value); + + public Builder mergeFrom(pactus.network.NetworkOuterClass.ConnectionInfo other) { + if (other == pactus.network.NetworkOuterClass.ConnectionInfo.getDefaultInstance()) return this; + if (other.getConnections() != 0L) { + setConnections(other.getConnections()); + } + if (other.getInboundConnections() != 0L) { + setInboundConnections(other.getInboundConnections()); + } + if (other.getOutboundConnections() != 0L) { + setOutboundConnections(other.getOutboundConnections()); + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } - /** - *
-       * List of protocols supported by the peer.
-       * 
- * - * repeated string protocols = 18 [json_name = "protocols"]; - * @param value The protocols to add. - * @return This builder for chaining. - */ - public Builder addProtocols( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureProtocolsIsMutable(); - protocols_.add(value); - onChanged(); + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + connections_ = input.readUInt64(); + + break; + } // case 8 + case 16: { + inboundConnections_ = input.readUInt64(); + + break; + } // case 16 + case 24: { + outboundConnections_ = input.readUInt64(); + + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally return this; } + + private long connections_ ; /** *
-       * List of protocols supported by the peer.
+       * Total number of connections.
        * 
* - * repeated string protocols = 18 [json_name = "protocols"]; - * @param values The protocols to add. - * @return This builder for chaining. + * uint64 connections = 1 [json_name = "connections"]; + * @return The connections. */ - public Builder addAllProtocols( - java.lang.Iterable values) { - ensureProtocolsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, protocols_); - onChanged(); - return this; + @java.lang.Override + public long getConnections() { + return connections_; } /** *
-       * List of protocols supported by the peer.
+       * Total number of connections.
        * 
* - * repeated string protocols = 18 [json_name = "protocols"]; + * uint64 connections = 1 [json_name = "connections"]; + * @param value The connections to set. * @return This builder for chaining. */ - public Builder clearProtocols() { - protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000010); + public Builder setConnections(long value) { + + connections_ = value; onChanged(); return this; } /** *
-       * List of protocols supported by the peer.
+       * Total number of connections.
        * 
* - * repeated string protocols = 18 [json_name = "protocols"]; - * @param value The bytes of the protocols to add. + * uint64 connections = 1 [json_name = "connections"]; * @return This builder for chaining. */ - public Builder addProtocolsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ensureProtocolsIsMutable(); - protocols_.add(value); + public Builder clearConnections() { + + connections_ = 0L; onChanged(); return this; } - private int totalSessions_ ; + private long inboundConnections_ ; /** *
-       * Total download sessions with the peer.
+       * Number of inbound connections.
        * 
* - * int32 total_sessions = 19 [json_name = "totalSessions"]; - * @return The totalSessions. + * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; + * @return The inboundConnections. */ @java.lang.Override - public int getTotalSessions() { - return totalSessions_; + public long getInboundConnections() { + return inboundConnections_; } /** *
-       * Total download sessions with the peer.
+       * Number of inbound connections.
        * 
* - * int32 total_sessions = 19 [json_name = "totalSessions"]; - * @param value The totalSessions to set. + * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; + * @param value The inboundConnections to set. * @return This builder for chaining. */ - public Builder setTotalSessions(int value) { + public Builder setInboundConnections(long value) { - totalSessions_ = value; + inboundConnections_ = value; onChanged(); return this; } /** *
-       * Total download sessions with the peer.
+       * Number of inbound connections.
        * 
* - * int32 total_sessions = 19 [json_name = "totalSessions"]; + * uint64 inbound_connections = 2 [json_name = "inboundConnections"]; * @return This builder for chaining. */ - public Builder clearTotalSessions() { + public Builder clearInboundConnections() { - totalSessions_ = 0; + inboundConnections_ = 0L; onChanged(); return this; } - private int completedSessions_ ; + private long outboundConnections_ ; /** *
-       * Completed download sessions with the peer.
+       * Number of outbound connections.
        * 
* - * int32 completed_sessions = 20 [json_name = "completedSessions"]; - * @return The completedSessions. + * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; + * @return The outboundConnections. */ @java.lang.Override - public int getCompletedSessions() { - return completedSessions_; + public long getOutboundConnections() { + return outboundConnections_; } /** *
-       * Completed download sessions with the peer.
+       * Number of outbound connections.
        * 
* - * int32 completed_sessions = 20 [json_name = "completedSessions"]; - * @param value The completedSessions to set. + * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; + * @param value The outboundConnections to set. * @return This builder for chaining. */ - public Builder setCompletedSessions(int value) { + public Builder setOutboundConnections(long value) { - completedSessions_ = value; + outboundConnections_ = value; onChanged(); return this; } /** *
-       * Completed download sessions with the peer.
+       * Number of outbound connections.
        * 
* - * int32 completed_sessions = 20 [json_name = "completedSessions"]; + * uint64 outbound_connections = 3 [json_name = "outboundConnections"]; * @return This builder for chaining. */ - public Builder clearCompletedSessions() { + public Builder clearOutboundConnections() { - completedSessions_ = 0; + outboundConnections_ = 0L; onChanged(); return this; } @@ -9949,23 +10130,23 @@ public final Builder mergeUnknownFields( } - // @@protoc_insertion_point(builder_scope:pactus.PeerInfo) + // @@protoc_insertion_point(builder_scope:pactus.ConnectionInfo) } - // @@protoc_insertion_point(class_scope:pactus.PeerInfo) - private static final pactus.network.NetworkOuterClass.PeerInfo DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:pactus.ConnectionInfo) + private static final pactus.network.NetworkOuterClass.ConnectionInfo DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new pactus.network.NetworkOuterClass.PeerInfo(); + DEFAULT_INSTANCE = new pactus.network.NetworkOuterClass.ConnectionInfo(); } - public static pactus.network.NetworkOuterClass.PeerInfo getDefaultInstance() { + public static pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override - public PeerInfo parsePartialFrom( + public ConnectionInfo parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -9984,17 +10165,17 @@ public PeerInfo parsePartialFrom( } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { + public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -10025,11 +10206,6 @@ public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pactus_GetNodeInfoRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_pactus_ConnectionInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_pactus_ConnectionInfo_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_pactus_GetNodeInfoResponse_descriptor; private static final @@ -10050,6 +10226,11 @@ public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_pactus_PeerInfo_ReceivedBytesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_pactus_ConnectionInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_pactus_ConnectionInfo_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -10075,49 +10256,51 @@ public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { "\032<\n\016SentBytesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005" + "value\030\002 \001(\003R\005value:\0028\001\032@\n\022ReceivedBytesE" + "ntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005value\030\002 \001(\003R\005v" + - "alue:\0028\001\"\024\n\022GetNodeInfoRequest\"\226\001\n\016Conne" + - "ctionInfo\022 \n\013connections\030\001 \001(\004R\013connecti" + - "ons\022/\n\023inbound_connections\030\002 \001(\004R\022inboun" + - "dConnections\0221\n\024outbound_connections\030\003 \001" + - "(\004R\023outboundConnections\"\207\003\n\023GetNodeInfoR" + - "esponse\022\030\n\007moniker\030\001 \001(\tR\007moniker\022\024\n\005age" + - "nt\030\002 \001(\tR\005agent\022\027\n\007peer_id\030\003 \001(\tR\006peerId" + - "\022\035\n\nstarted_at\030\004 \001(\004R\tstartedAt\022\"\n\014reach" + - "ability\030\005 \001(\tR\014reachability\022\032\n\010services\030" + - "\006 \001(\005R\010services\022%\n\016services_names\030\007 \001(\tR" + - "\rservicesNames\022\037\n\013local_addrs\030\010 \003(\tR\nloc" + - "alAddrs\022\034\n\tprotocols\030\t \003(\tR\tprotocols\022!\n" + - "\014clock_offset\030\r \001(\001R\013clockOffset\022?\n\017conn" + - "ection_info\030\016 \001(\0132\026.pactus.ConnectionInf" + - "oR\016connectionInfo\"\355\006\n\010PeerInfo\022\026\n\006status" + - "\030\001 \001(\005R\006status\022\030\n\007moniker\030\002 \001(\tR\007moniker" + - "\022\024\n\005agent\030\003 \001(\tR\005agent\022\027\n\007peer_id\030\004 \001(\tR" + - "\006peerId\022%\n\016consensus_keys\030\005 \003(\tR\rconsens" + - "usKeys\022/\n\023consensus_addresses\030\006 \003(\tR\022con" + - "sensusAddresses\022\032\n\010services\030\007 \001(\rR\010servi" + - "ces\022&\n\017last_block_hash\030\010 \001(\tR\rlastBlockH" + - "ash\022\026\n\006height\030\t \001(\rR\006height\022)\n\020received_" + - "bundles\030\n \001(\005R\017receivedBundles\022\'\n\017invali" + - "d_bundles\030\013 \001(\005R\016invalidBundles\022\033\n\tlast_" + - "sent\030\014 \001(\003R\010lastSent\022#\n\rlast_received\030\r " + - "\001(\003R\014lastReceived\022>\n\nsent_bytes\030\016 \003(\0132\037." + - "pactus.PeerInfo.SentBytesEntryR\tsentByte" + - "s\022J\n\016received_bytes\030\017 \003(\0132#.pactus.PeerI" + - "nfo.ReceivedBytesEntryR\rreceivedBytes\022\030\n" + - "\007address\030\020 \001(\tR\007address\022\034\n\tdirection\030\021 \001" + - "(\tR\tdirection\022\034\n\tprotocols\030\022 \003(\tR\tprotoc" + - "ols\022%\n\016total_sessions\030\023 \001(\005R\rtotalSessio" + - "ns\022-\n\022completed_sessions\030\024 \001(\005R\021complete" + - "dSessions\032<\n\016SentBytesEntry\022\020\n\003key\030\001 \001(\005" + - "R\003key\022\024\n\005value\030\002 \001(\003R\005value:\0028\001\032@\n\022Recei" + - "vedBytesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005value" + - "\030\002 \001(\003R\005value:\0028\0012\242\001\n\007Network\022O\n\016GetNetw" + - "orkInfo\022\035.pactus.GetNetworkInfoRequest\032\036" + - ".pactus.GetNetworkInfoResponse\022F\n\013GetNod" + - "eInfo\022\032.pactus.GetNodeInfoRequest\032\033.pact" + - "us.GetNodeInfoResponseBB\n\016pactus.network" + - "Z0github.com/pactus-project/pactus/www/g" + - "rpc/pactusb\006proto3" + "alue:\0028\001\"\024\n\022GetNodeInfoRequest\"\313\003\n\023GetNo" + + "deInfoResponse\022\030\n\007moniker\030\001 \001(\tR\007moniker" + + "\022\024\n\005agent\030\002 \001(\tR\005agent\022\027\n\007peer_id\030\003 \001(\tR" + + "\006peerId\022\035\n\nstarted_at\030\004 \001(\004R\tstartedAt\022\"" + + "\n\014reachability\030\005 \001(\tR\014reachability\022\032\n\010se" + + "rvices\030\006 \001(\005R\010services\022%\n\016services_names" + + "\030\007 \001(\tR\rservicesNames\022\037\n\013local_addrs\030\010 \003" + + "(\tR\nlocalAddrs\022\034\n\tprotocols\030\t \003(\tR\tproto" + + "cols\022\033\n\tis_pruned\030\n \001(\010R\010isPruned\022%\n\016pru" + + "ning_height\030\013 \001(\005R\rpruningHeight\022!\n\014cloc" + + "k_offset\030\014 \001(\001R\013clockOffset\022?\n\017connectio" + + "n_info\030\r \001(\0132\026.pactus.ConnectionInfoR\016co" + + "nnectionInfo\"\355\006\n\010PeerInfo\022\026\n\006status\030\001 \001(" + + "\005R\006status\022\030\n\007moniker\030\002 \001(\tR\007moniker\022\024\n\005a" + + "gent\030\003 \001(\tR\005agent\022\027\n\007peer_id\030\004 \001(\tR\006peer" + + "Id\022%\n\016consensus_keys\030\005 \003(\tR\rconsensusKey" + + "s\022/\n\023consensus_addresses\030\006 \003(\tR\022consensu" + + "sAddresses\022\032\n\010services\030\007 \001(\rR\010services\022&" + + "\n\017last_block_hash\030\010 \001(\tR\rlastBlockHash\022\026" + + "\n\006height\030\t \001(\rR\006height\022)\n\020received_bundl" + + "es\030\n \001(\005R\017receivedBundles\022\'\n\017invalid_bun" + + "dles\030\013 \001(\005R\016invalidBundles\022\033\n\tlast_sent\030" + + "\014 \001(\003R\010lastSent\022#\n\rlast_received\030\r \001(\003R\014" + + "lastReceived\022>\n\nsent_bytes\030\016 \003(\0132\037.pactu" + + "s.PeerInfo.SentBytesEntryR\tsentBytes\022J\n\016" + + "received_bytes\030\017 \003(\0132#.pactus.PeerInfo.R" + + "eceivedBytesEntryR\rreceivedBytes\022\030\n\007addr" + + "ess\030\020 \001(\tR\007address\022\034\n\tdirection\030\021 \001(\tR\td" + + "irection\022\034\n\tprotocols\030\022 \003(\tR\tprotocols\022%" + + "\n\016total_sessions\030\023 \001(\005R\rtotalSessions\022-\n" + + "\022completed_sessions\030\024 \001(\005R\021completedSess" + + "ions\032<\n\016SentBytesEntry\022\020\n\003key\030\001 \001(\005R\003key" + + "\022\024\n\005value\030\002 \001(\003R\005value:\0028\001\032@\n\022ReceivedBy" + + "tesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005value\030\002 \001(" + + "\003R\005value:\0028\001\"\226\001\n\016ConnectionInfo\022 \n\013conne" + + "ctions\030\001 \001(\004R\013connections\022/\n\023inbound_con" + + "nections\030\002 \001(\004R\022inboundConnections\0221\n\024ou" + + "tbound_connections\030\003 \001(\004R\023outboundConnec" + + "tions2\242\001\n\007Network\022O\n\016GetNetworkInfo\022\035.pa" + + "ctus.GetNetworkInfoRequest\032\036.pactus.GetN" + + "etworkInfoResponse\022F\n\013GetNodeInfo\022\032.pact" + + "us.GetNodeInfoRequest\032\033.pactus.GetNodeIn" + + "foResponseBB\n\016pactus.networkZ0github.com" + + "/pactus-project/pactus/www/grpc/pactusb\006" + + "proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -10153,20 +10336,14 @@ public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_pactus_GetNodeInfoRequest_descriptor, new java.lang.String[] { }); - internal_static_pactus_ConnectionInfo_descriptor = - getDescriptor().getMessageTypes().get(3); - internal_static_pactus_ConnectionInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_pactus_ConnectionInfo_descriptor, - new java.lang.String[] { "Connections", "InboundConnections", "OutboundConnections", }); internal_static_pactus_GetNodeInfoResponse_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(3); internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_pactus_GetNodeInfoResponse_descriptor, - new java.lang.String[] { "Moniker", "Agent", "PeerId", "StartedAt", "Reachability", "Services", "ServicesNames", "LocalAddrs", "Protocols", "ClockOffset", "ConnectionInfo", }); + new java.lang.String[] { "Moniker", "Agent", "PeerId", "StartedAt", "Reachability", "Services", "ServicesNames", "LocalAddrs", "Protocols", "IsPruned", "PruningHeight", "ClockOffset", "ConnectionInfo", }); internal_static_pactus_PeerInfo_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(4); internal_static_pactus_PeerInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_pactus_PeerInfo_descriptor, @@ -10183,6 +10360,12 @@ public pactus.network.NetworkOuterClass.PeerInfo getDefaultInstanceForType() { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_pactus_PeerInfo_ReceivedBytesEntry_descriptor, new java.lang.String[] { "Key", "Value", }); + internal_static_pactus_ConnectionInfo_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_pactus_ConnectionInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_pactus_ConnectionInfo_descriptor, + new java.lang.String[] { "Connections", "InboundConnections", "OutboundConnections", }); } // @@protoc_insertion_point(outer_class_scope) diff --git a/www/grpc/gen/js/network_pb.js b/www/grpc/gen/js/network_pb.js index 6e10b07af..9dc78b51a 100644 --- a/www/grpc/gen/js/network_pb.js +++ b/www/grpc/gen/js/network_pb.js @@ -100,16 +100,16 @@ if (goog.DEBUG && !COMPILED) { * @extends {jspb.Message} * @constructor */ -proto.pactus.ConnectionInfo = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); +proto.pactus.GetNodeInfoResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.pactus.GetNodeInfoResponse.repeatedFields_, null); }; -goog.inherits(proto.pactus.ConnectionInfo, jspb.Message); +goog.inherits(proto.pactus.GetNodeInfoResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { /** * @public * @override */ - proto.pactus.ConnectionInfo.displayName = 'proto.pactus.ConnectionInfo'; + proto.pactus.GetNodeInfoResponse.displayName = 'proto.pactus.GetNodeInfoResponse'; } /** * Generated by JsPbCodeGenerator. @@ -121,16 +121,16 @@ if (goog.DEBUG && !COMPILED) { * @extends {jspb.Message} * @constructor */ -proto.pactus.GetNodeInfoResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.pactus.GetNodeInfoResponse.repeatedFields_, null); +proto.pactus.PeerInfo = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.pactus.PeerInfo.repeatedFields_, null); }; -goog.inherits(proto.pactus.GetNodeInfoResponse, jspb.Message); +goog.inherits(proto.pactus.PeerInfo, jspb.Message); if (goog.DEBUG && !COMPILED) { /** * @public * @override */ - proto.pactus.GetNodeInfoResponse.displayName = 'proto.pactus.GetNodeInfoResponse'; + proto.pactus.PeerInfo.displayName = 'proto.pactus.PeerInfo'; } /** * Generated by JsPbCodeGenerator. @@ -142,16 +142,16 @@ if (goog.DEBUG && !COMPILED) { * @extends {jspb.Message} * @constructor */ -proto.pactus.PeerInfo = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.pactus.PeerInfo.repeatedFields_, null); +proto.pactus.ConnectionInfo = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.pactus.PeerInfo, jspb.Message); +goog.inherits(proto.pactus.ConnectionInfo, jspb.Message); if (goog.DEBUG && !COMPILED) { /** * @public * @override */ - proto.pactus.PeerInfo.displayName = 'proto.pactus.PeerInfo'; + proto.pactus.ConnectionInfo.displayName = 'proto.pactus.ConnectionInfo'; } @@ -733,196 +733,6 @@ proto.pactus.GetNodeInfoRequest.serializeBinaryToWriter = function(message, writ - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.pactus.ConnectionInfo.prototype.toObject = function(opt_includeInstance) { - return proto.pactus.ConnectionInfo.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.pactus.ConnectionInfo} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.pactus.ConnectionInfo.toObject = function(includeInstance, msg) { - var f, obj = { - connections: jspb.Message.getFieldWithDefault(msg, 1, 0), - inboundConnections: jspb.Message.getFieldWithDefault(msg, 2, 0), - outboundConnections: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.pactus.ConnectionInfo} - */ -proto.pactus.ConnectionInfo.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.pactus.ConnectionInfo; - return proto.pactus.ConnectionInfo.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.pactus.ConnectionInfo} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.pactus.ConnectionInfo} - */ -proto.pactus.ConnectionInfo.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setConnections(value); - break; - case 2: - var value = /** @type {number} */ (reader.readUint64()); - msg.setInboundConnections(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint64()); - msg.setOutboundConnections(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.pactus.ConnectionInfo.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.pactus.ConnectionInfo.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.pactus.ConnectionInfo} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.pactus.ConnectionInfo.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getConnections(); - if (f !== 0) { - writer.writeUint64( - 1, - f - ); - } - f = message.getInboundConnections(); - if (f !== 0) { - writer.writeUint64( - 2, - f - ); - } - f = message.getOutboundConnections(); - if (f !== 0) { - writer.writeUint64( - 3, - f - ); - } -}; - - -/** - * optional uint64 connections = 1; - * @return {number} - */ -proto.pactus.ConnectionInfo.prototype.getConnections = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.pactus.ConnectionInfo} returns this - */ -proto.pactus.ConnectionInfo.prototype.setConnections = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional uint64 inbound_connections = 2; - * @return {number} - */ -proto.pactus.ConnectionInfo.prototype.getInboundConnections = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.pactus.ConnectionInfo} returns this - */ -proto.pactus.ConnectionInfo.prototype.setInboundConnections = function(value) { - return jspb.Message.setProto3IntField(this, 2, value); -}; - - -/** - * optional uint64 outbound_connections = 3; - * @return {number} - */ -proto.pactus.ConnectionInfo.prototype.getOutboundConnections = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.pactus.ConnectionInfo} returns this - */ -proto.pactus.ConnectionInfo.prototype.setOutboundConnections = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); -}; - - - /** * List of repeated fields within this message type. * @private {!Array} @@ -970,7 +780,9 @@ proto.pactus.GetNodeInfoResponse.toObject = function(includeInstance, msg) { servicesNames: jspb.Message.getFieldWithDefault(msg, 7, ""), localAddrsList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f, protocolsList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f, - clockOffset: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), + isPruned: jspb.Message.getBooleanFieldWithDefault(msg, 10, false), + pruningHeight: jspb.Message.getFieldWithDefault(msg, 11, 0), + clockOffset: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0), connectionInfo: (f = msg.getConnectionInfo()) && proto.pactus.ConnectionInfo.toObject(includeInstance, f) }; @@ -1044,11 +856,19 @@ proto.pactus.GetNodeInfoResponse.deserializeBinaryFromReader = function(msg, rea var value = /** @type {string} */ (reader.readString()); msg.addProtocols(value); break; - case 13: + case 10: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setIsPruned(value); + break; + case 11: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPruningHeight(value); + break; + case 12: var value = /** @type {number} */ (reader.readDouble()); msg.setClockOffset(value); break; - case 14: + case 13: var value = new proto.pactus.ConnectionInfo; reader.readMessage(value,proto.pactus.ConnectionInfo.deserializeBinaryFromReader); msg.setConnectionInfo(value); @@ -1145,17 +965,31 @@ proto.pactus.GetNodeInfoResponse.serializeBinaryToWriter = function(message, wri f ); } + f = message.getIsPruned(); + if (f) { + writer.writeBool( + 10, + f + ); + } + f = message.getPruningHeight(); + if (f !== 0) { + writer.writeInt32( + 11, + f + ); + } f = message.getClockOffset(); if (f !== 0.0) { writer.writeDouble( - 13, + 12, f ); } f = message.getConnectionInfo(); if (f != null) { writer.writeMessage( - 14, + 13, f, proto.pactus.ConnectionInfo.serializeBinaryToWriter ); @@ -1364,11 +1198,47 @@ proto.pactus.GetNodeInfoResponse.prototype.clearProtocolsList = function() { /** - * optional double clock_offset = 13; + * optional bool is_pruned = 10; + * @return {boolean} + */ +proto.pactus.GetNodeInfoResponse.prototype.getIsPruned = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.pactus.GetNodeInfoResponse} returns this + */ +proto.pactus.GetNodeInfoResponse.prototype.setIsPruned = function(value) { + return jspb.Message.setProto3BooleanField(this, 10, value); +}; + + +/** + * optional int32 pruning_height = 11; + * @return {number} + */ +proto.pactus.GetNodeInfoResponse.prototype.getPruningHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.pactus.GetNodeInfoResponse} returns this + */ +proto.pactus.GetNodeInfoResponse.prototype.setPruningHeight = function(value) { + return jspb.Message.setProto3IntField(this, 11, value); +}; + + +/** + * optional double clock_offset = 12; * @return {number} */ proto.pactus.GetNodeInfoResponse.prototype.getClockOffset = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0)); }; @@ -1377,17 +1247,17 @@ proto.pactus.GetNodeInfoResponse.prototype.getClockOffset = function() { * @return {!proto.pactus.GetNodeInfoResponse} returns this */ proto.pactus.GetNodeInfoResponse.prototype.setClockOffset = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); + return jspb.Message.setProto3FloatField(this, 12, value); }; /** - * optional ConnectionInfo connection_info = 14; + * optional ConnectionInfo connection_info = 13; * @return {?proto.pactus.ConnectionInfo} */ proto.pactus.GetNodeInfoResponse.prototype.getConnectionInfo = function() { return /** @type{?proto.pactus.ConnectionInfo} */ ( - jspb.Message.getWrapperField(this, proto.pactus.ConnectionInfo, 14)); + jspb.Message.getWrapperField(this, proto.pactus.ConnectionInfo, 13)); }; @@ -1396,7 +1266,7 @@ proto.pactus.GetNodeInfoResponse.prototype.getConnectionInfo = function() { * @return {!proto.pactus.GetNodeInfoResponse} returns this */ proto.pactus.GetNodeInfoResponse.prototype.setConnectionInfo = function(value) { - return jspb.Message.setWrapperField(this, 14, value); + return jspb.Message.setWrapperField(this, 13, value); }; @@ -1414,7 +1284,7 @@ proto.pactus.GetNodeInfoResponse.prototype.clearConnectionInfo = function() { * @return {boolean} */ proto.pactus.GetNodeInfoResponse.prototype.hasConnectionInfo = function() { - return jspb.Message.getField(this, 14) != null; + return jspb.Message.getField(this, 13) != null; }; @@ -2190,4 +2060,194 @@ proto.pactus.PeerInfo.prototype.setCompletedSessions = function(value) { }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.pactus.ConnectionInfo.prototype.toObject = function(opt_includeInstance) { + return proto.pactus.ConnectionInfo.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.pactus.ConnectionInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.pactus.ConnectionInfo.toObject = function(includeInstance, msg) { + var f, obj = { + connections: jspb.Message.getFieldWithDefault(msg, 1, 0), + inboundConnections: jspb.Message.getFieldWithDefault(msg, 2, 0), + outboundConnections: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.pactus.ConnectionInfo} + */ +proto.pactus.ConnectionInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.pactus.ConnectionInfo; + return proto.pactus.ConnectionInfo.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.pactus.ConnectionInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.pactus.ConnectionInfo} + */ +proto.pactus.ConnectionInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setConnections(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint64()); + msg.setInboundConnections(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint64()); + msg.setOutboundConnections(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.pactus.ConnectionInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.pactus.ConnectionInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.pactus.ConnectionInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.pactus.ConnectionInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getConnections(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getInboundConnections(); + if (f !== 0) { + writer.writeUint64( + 2, + f + ); + } + f = message.getOutboundConnections(); + if (f !== 0) { + writer.writeUint64( + 3, + f + ); + } +}; + + +/** + * optional uint64 connections = 1; + * @return {number} + */ +proto.pactus.ConnectionInfo.prototype.getConnections = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.pactus.ConnectionInfo} returns this + */ +proto.pactus.ConnectionInfo.prototype.setConnections = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint64 inbound_connections = 2; + * @return {number} + */ +proto.pactus.ConnectionInfo.prototype.getInboundConnections = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.pactus.ConnectionInfo} returns this + */ +proto.pactus.ConnectionInfo.prototype.setInboundConnections = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint64 outbound_connections = 3; + * @return {number} + */ +proto.pactus.ConnectionInfo.prototype.getOutboundConnections = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.pactus.ConnectionInfo} returns this + */ +proto.pactus.ConnectionInfo.prototype.setOutboundConnections = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + goog.object.extend(exports, proto.pactus); diff --git a/www/grpc/gen/python/network_pb2.py b/www/grpc/gen/python/network_pb2.py index c5b3553e0..48dbc47fc 100644 --- a/www/grpc/gen/python/network_pb2.py +++ b/www/grpc/gen/python/network_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections\"\x87\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12!\n\x0c\x63lock_offset\x18\r \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\x0e \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x32\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\xcb\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12\x1b\n\tis_pruned\x18\n \x01(\x08R\x08isPruned\x12%\n\x0epruning_height\x18\x0b \x01(\x05R\rpruningHeight\x12!\n\x0c\x63lock_offset\x18\x0c \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\r \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections2\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'network_pb2', globals()) @@ -39,16 +39,16 @@ _GETNETWORKINFORESPONSE_RECEIVEDBYTESENTRY._serialized_end=648 _GETNODEINFOREQUEST._serialized_start=650 _GETNODEINFOREQUEST._serialized_end=670 - _CONNECTIONINFO._serialized_start=673 - _CONNECTIONINFO._serialized_end=823 - _GETNODEINFORESPONSE._serialized_start=826 - _GETNODEINFORESPONSE._serialized_end=1217 - _PEERINFO._serialized_start=1220 - _PEERINFO._serialized_end=2097 + _GETNODEINFORESPONSE._serialized_start=673 + _GETNODEINFORESPONSE._serialized_end=1132 + _PEERINFO._serialized_start=1135 + _PEERINFO._serialized_end=2012 _PEERINFO_SENTBYTESENTRY._serialized_start=522 _PEERINFO_SENTBYTESENTRY._serialized_end=582 _PEERINFO_RECEIVEDBYTESENTRY._serialized_start=584 _PEERINFO_RECEIVEDBYTESENTRY._serialized_end=648 - _NETWORK._serialized_start=2100 - _NETWORK._serialized_end=2262 + _CONNECTIONINFO._serialized_start=2015 + _CONNECTIONINFO._serialized_end=2165 + _NETWORK._serialized_start=2168 + _NETWORK._serialized_end=2330 # @@protoc_insertion_point(module_scope) diff --git a/www/grpc/gen/rust/pactus.rs b/www/grpc/gen/rust/pactus.rs index 45669cf95..2ca235f3d 100644 --- a/www/grpc/gen/rust/pactus.rs +++ b/www/grpc/gen/rust/pactus.rs @@ -806,20 +806,6 @@ pub struct GetNetworkInfoResponse { #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetNodeInfoRequest { } -/// Response message containing information about the node's connections. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConnectionInfo { - /// Total number of connections. - #[prost(uint64, tag="1")] - pub connections: u64, - /// Number of inbound connections. - #[prost(uint64, tag="2")] - pub inbound_connections: u64, - /// Number of outbound connections. - #[prost(uint64, tag="3")] - pub outbound_connections: u64, -} /// Response message containing information about a specific node in the network. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -851,11 +837,17 @@ pub struct GetNodeInfoResponse { /// List of protocols supported by the node. #[prost(string, repeated, tag="9")] pub protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// Type of node pruned or full. + #[prost(bool, tag="10")] + pub is_pruned: bool, + /// The height of pruning. + #[prost(int32, tag="11")] + pub pruning_height: i32, /// Clock offset of the node. - #[prost(double, tag="13")] + #[prost(double, tag="12")] pub clock_offset: f64, /// Information about the node's connections. - #[prost(message, optional, tag="14")] + #[prost(message, optional, tag="13")] pub connection_info: ::core::option::Option, } /// Information about a peer in the network. @@ -923,6 +915,20 @@ pub struct PeerInfo { #[prost(int32, tag="20")] pub completed_sessions: i32, } +/// Response message containing information about the node's connections. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConnectionInfo { + /// Total number of connections. + #[prost(uint64, tag="1")] + pub connections: u64, + /// Number of inbound connections. + #[prost(uint64, tag="2")] + pub inbound_connections: u64, + /// Number of outbound connections. + #[prost(uint64, tag="3")] + pub outbound_connections: u64, +} /// Request message for sign message with private key. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] diff --git a/www/grpc/gen/rust/pactus.serde.rs b/www/grpc/gen/rust/pactus.serde.rs index 04d1eaf0b..0fb5876fa 100644 --- a/www/grpc/gen/rust/pactus.serde.rs +++ b/www/grpc/gen/rust/pactus.serde.rs @@ -3869,6 +3869,12 @@ impl serde::Serialize for GetNodeInfoResponse { if !self.protocols.is_empty() { len += 1; } + if self.is_pruned { + len += 1; + } + if self.pruning_height != 0 { + len += 1; + } if self.clock_offset != 0. { len += 1; } @@ -3903,6 +3909,12 @@ impl serde::Serialize for GetNodeInfoResponse { if !self.protocols.is_empty() { struct_ser.serialize_field("protocols", &self.protocols)?; } + if self.is_pruned { + struct_ser.serialize_field("isPruned", &self.is_pruned)?; + } + if self.pruning_height != 0 { + struct_ser.serialize_field("pruningHeight", &self.pruning_height)?; + } if self.clock_offset != 0. { struct_ser.serialize_field("clockOffset", &self.clock_offset)?; } @@ -3932,6 +3944,10 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { "local_addrs", "localAddrs", "protocols", + "is_pruned", + "isPruned", + "pruning_height", + "pruningHeight", "clock_offset", "clockOffset", "connection_info", @@ -3949,6 +3965,8 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { ServicesNames, LocalAddrs, Protocols, + IsPruned, + PruningHeight, ClockOffset, ConnectionInfo, } @@ -3981,6 +3999,8 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { "servicesNames" | "services_names" => Ok(GeneratedField::ServicesNames), "localAddrs" | "local_addrs" => Ok(GeneratedField::LocalAddrs), "protocols" => Ok(GeneratedField::Protocols), + "isPruned" | "is_pruned" => Ok(GeneratedField::IsPruned), + "pruningHeight" | "pruning_height" => Ok(GeneratedField::PruningHeight), "clockOffset" | "clock_offset" => Ok(GeneratedField::ClockOffset), "connectionInfo" | "connection_info" => Ok(GeneratedField::ConnectionInfo), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), @@ -4011,6 +4031,8 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { let mut services_names__ = None; let mut local_addrs__ = None; let mut protocols__ = None; + let mut is_pruned__ = None; + let mut pruning_height__ = None; let mut clock_offset__ = None; let mut connection_info__ = None; while let Some(k) = map.next_key()? { @@ -4073,6 +4095,20 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { } protocols__ = Some(map.next_value()?); } + GeneratedField::IsPruned => { + if is_pruned__.is_some() { + return Err(serde::de::Error::duplicate_field("isPruned")); + } + is_pruned__ = Some(map.next_value()?); + } + GeneratedField::PruningHeight => { + if pruning_height__.is_some() { + return Err(serde::de::Error::duplicate_field("pruningHeight")); + } + pruning_height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } GeneratedField::ClockOffset => { if clock_offset__.is_some() { return Err(serde::de::Error::duplicate_field("clockOffset")); @@ -4099,6 +4135,8 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse { services_names: services_names__.unwrap_or_default(), local_addrs: local_addrs__.unwrap_or_default(), protocols: protocols__.unwrap_or_default(), + is_pruned: is_pruned__.unwrap_or_default(), + pruning_height: pruning_height__.unwrap_or_default(), clock_offset: clock_offset__.unwrap_or_default(), connection_info: connection_info__, }) diff --git a/www/grpc/network.go b/www/grpc/network.go index ce2bd75a8..8c43d71ca 100644 --- a/www/grpc/network.go +++ b/www/grpc/network.go @@ -41,6 +41,8 @@ func (s *networkServer) GetNodeInfo(_ context.Context, Services: int32(s.sync.Services()), ServicesNames: s.sync.Services().String(), ClockOffset: clockOffset.Seconds(), + IsPruned: s.state.IsPruned(), + PruningHeight: int32(s.state.PruningHeight()), ConnectionInfo: &pactus.ConnectionInfo{ Connections: uint64(s.net.NumConnectedPeers()), InboundConnections: uint64(s.net.NumInbound()), diff --git a/www/grpc/proto/network.proto b/www/grpc/proto/network.proto index 58387db86..c31f6c51e 100644 --- a/www/grpc/proto/network.proto +++ b/www/grpc/proto/network.proto @@ -41,16 +41,6 @@ message GetNetworkInfoResponse { // network. message GetNodeInfoRequest {} -// Response message containing information about the node's connections. -message ConnectionInfo { - // Total number of connections. - uint64 connections = 1; - // Number of inbound connections. - uint64 inbound_connections = 2; - // Number of outbound connections. - uint64 outbound_connections = 3; -} - // Response message containing information about a specific node in the network. message GetNodeInfoResponse { // Moniker of the node. @@ -71,10 +61,14 @@ message GetNodeInfoResponse { repeated string local_addrs = 8; // List of protocols supported by the node. repeated string protocols = 9; + // Type of node pruned or full. + bool is_pruned = 10; + // The height of pruning. + int32 pruning_height = 11; // Clock offset of the node. - double clock_offset = 13; + double clock_offset = 12; // Information about the node's connections. - ConnectionInfo connection_info = 14; + ConnectionInfo connection_info = 13; } // Information about a peer in the network. @@ -120,3 +114,13 @@ message PeerInfo { // Completed download sessions with the peer. int32 completed_sessions = 20; } + +// Response message containing information about the node's connections. +message ConnectionInfo { + // Total number of connections. + uint64 connections = 1; + // Number of inbound connections. + uint64 inbound_connections = 2; + // Number of outbound connections. + uint64 outbound_connections = 3; +} diff --git a/www/grpc/swagger-ui/pactus.swagger.json b/www/grpc/swagger-ui/pactus.swagger.json index b36f293e7..ff8ebf772 100644 --- a/www/grpc/swagger-ui/pactus.swagger.json +++ b/www/grpc/swagger-ui/pactus.swagger.json @@ -1743,6 +1743,15 @@ }, "description": "List of protocols supported by the node." }, + "isPruned": { + "type": "boolean", + "description": "Type of node pruned or full." + }, + "pruningHeight": { + "type": "integer", + "format": "int32", + "description": "The height of pruning." + }, "clockOffset": { "type": "number", "format": "double", diff --git a/www/http/network.go b/www/http/network.go index 713f7aa0f..e15026c2e 100644 --- a/www/http/network.go +++ b/www/http/network.go @@ -122,6 +122,8 @@ func (s *Server) NodeHandler(w http.ResponseWriter, r *http.Request) { tm.addRowString("Moniker", res.Moniker) tm.addRowTime("Started at", int64(res.StartedAt)) tm.addRowString("Reachability", res.Reachability) + tm.addRowBool("Is Pruned", res.IsPruned) + tm.addRowInt("Pruning Height", int(res.PruningHeight)) tm.addRowFloat64("Clock Offset", res.ClockOffset) tm.addRowInt("Services", int(res.Services)) tm.addRowString("Services Names", res.ServicesNames) From 65590fe0df76ba848993ad19effba97b0345f37e Mon Sep 17 00:00:00 2001 From: kehiy Date: Wed, 17 Jul 2024 12:49:24 +0330 Subject: [PATCH 2/6] fix: change requests --- state/state.go | 3 --- store/store.go | 2 +- www/http/network_test.go | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/state/state.go b/state/state.go index 6d74d38df..36bdc0254 100644 --- a/state/state.go +++ b/state/state.go @@ -764,9 +764,6 @@ func (st *state) AllPendingTxs() []*tx.Tx { } func (st *state) IsPruned() bool { - st.lk.RLock() - defer st.lk.RUnlock() - return st.store.IsPruned() } diff --git a/store/store.go b/store/store.go index 2d487fbad..8c2e6ed72 100644 --- a/store/store.go +++ b/store/store.go @@ -489,5 +489,5 @@ func (s *store) pruneBlock(blockHeight uint32) (bool, error) { } func (s *store) RetentionBlocks() uint32 { - return s.config.RetentionDays + return s.config.RetentionBlocks() } diff --git a/www/http/network_test.go b/www/http/network_test.go index 310aa0a37..72370e343 100644 --- a/www/http/network_test.go +++ b/www/http/network_test.go @@ -18,7 +18,7 @@ func TestNodeInfo(t *testing.T) { td.httpServer.NodeHandler(w, r) - assert.Equal(t, w.Code, 200) + assert.Equal(t, 200, w.Code) assert.Contains(t, w.Body.String(), version.NodeAgent.String()) td.StopServers() From 2783df310a5c6b571ef4dd911715cbfc1272b636 Mon Sep 17 00:00:00 2001 From: kehiy Date: Wed, 17 Jul 2024 16:25:29 +0330 Subject: [PATCH 3/6] style: change requests on comments and docs --- www/grpc/proto/network.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/www/grpc/proto/network.proto b/www/grpc/proto/network.proto index c31f6c51e..01bf78449 100644 --- a/www/grpc/proto/network.proto +++ b/www/grpc/proto/network.proto @@ -61,9 +61,9 @@ message GetNodeInfoResponse { repeated string local_addrs = 8; // List of protocols supported by the node. repeated string protocols = 9; - // Type of node pruned or full. + // If the blocks are subject to pruning. bool is_pruned = 10; - // The height of pruning. + // Lowest-height block stored (only present if pruning is enabled) int32 pruning_height = 11; // Clock offset of the node. double clock_offset = 12; @@ -115,7 +115,7 @@ message PeerInfo { int32 completed_sessions = 20; } -// Response message containing information about the node's connections. +// ConnectionInfo contains information about the node's connections. message ConnectionInfo { // Total number of connections. uint64 connections = 1; From c3da02e61d51a777f0e5c3c2df53ea24b4956c40 Mon Sep 17 00:00:00 2001 From: kehiy Date: Fri, 19 Jul 2024 17:43:43 +0330 Subject: [PATCH 4/6] fix: proto backward compatible --- www/grpc/gen/dart/network.pb.dart | 28 +++--- www/grpc/gen/dart/network.pbjson.dart | 6 +- www/grpc/gen/docs/grpc.md | 4 +- www/grpc/gen/docs/json-rpc.md | 4 +- www/grpc/gen/go/network.pb.go | 14 +-- .../pactus/network/NetworkOuterClass.java | 88 +++++++++---------- www/grpc/gen/js/network_pb.js | 24 ++--- www/grpc/gen/python/network_pb2.py | 2 +- www/grpc/gen/rust/pactus.rs | 10 +-- www/grpc/proto/network.proto | 4 +- www/grpc/swagger-ui/pactus.swagger.json | 6 +- 11 files changed, 95 insertions(+), 95 deletions(-) diff --git a/www/grpc/gen/dart/network.pb.dart b/www/grpc/gen/dart/network.pb.dart index 0c77b9908..afea5c593 100644 --- a/www/grpc/gen/dart/network.pb.dart +++ b/www/grpc/gen/dart/network.pb.dart @@ -213,8 +213,8 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { ..pPS(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'protocols') ..aOB(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isPruned') ..a<$core.int>(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pruningHeight', $pb.PbFieldType.O3) - ..a<$core.double>(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'clockOffset', $pb.PbFieldType.OD) - ..aOM(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionInfo', subBuilder: ConnectionInfo.create) + ..a<$core.double>(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'clockOffset', $pb.PbFieldType.OD) + ..aOM(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionInfo', subBuilder: ConnectionInfo.create) ..hasRequiredFields = false ; @@ -384,24 +384,24 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { @$pb.TagNumber(11) void clearPruningHeight() => clearField(11); - @$pb.TagNumber(12) + @$pb.TagNumber(13) $core.double get clockOffset => $_getN(11); - @$pb.TagNumber(12) + @$pb.TagNumber(13) set clockOffset($core.double v) { $_setDouble(11, v); } - @$pb.TagNumber(12) + @$pb.TagNumber(13) $core.bool hasClockOffset() => $_has(11); - @$pb.TagNumber(12) - void clearClockOffset() => clearField(12); - @$pb.TagNumber(13) + void clearClockOffset() => clearField(13); + + @$pb.TagNumber(14) ConnectionInfo get connectionInfo => $_getN(12); - @$pb.TagNumber(13) - set connectionInfo(ConnectionInfo v) { setField(13, v); } - @$pb.TagNumber(13) + @$pb.TagNumber(14) + set connectionInfo(ConnectionInfo v) { setField(14, v); } + @$pb.TagNumber(14) $core.bool hasConnectionInfo() => $_has(12); - @$pb.TagNumber(13) - void clearConnectionInfo() => clearField(13); - @$pb.TagNumber(13) + @$pb.TagNumber(14) + void clearConnectionInfo() => clearField(14); + @$pb.TagNumber(14) ConnectionInfo ensureConnectionInfo() => $_ensure(12); } diff --git a/www/grpc/gen/dart/network.pbjson.dart b/www/grpc/gen/dart/network.pbjson.dart index 9e0685796..33170ba2c 100644 --- a/www/grpc/gen/dart/network.pbjson.dart +++ b/www/grpc/gen/dart/network.pbjson.dart @@ -77,13 +77,13 @@ const GetNodeInfoResponse$json = const { const {'1': 'protocols', '3': 9, '4': 3, '5': 9, '10': 'protocols'}, const {'1': 'is_pruned', '3': 10, '4': 1, '5': 8, '10': 'isPruned'}, const {'1': 'pruning_height', '3': 11, '4': 1, '5': 5, '10': 'pruningHeight'}, - const {'1': 'clock_offset', '3': 12, '4': 1, '5': 1, '10': 'clockOffset'}, - const {'1': 'connection_info', '3': 13, '4': 1, '5': 11, '6': '.pactus.ConnectionInfo', '10': 'connectionInfo'}, + const {'1': 'clock_offset', '3': 13, '4': 1, '5': 1, '10': 'clockOffset'}, + const {'1': 'connection_info', '3': 14, '4': 1, '5': 11, '6': '.pactus.ConnectionInfo', '10': 'connectionInfo'}, ], }; /// Descriptor for `GetNodeInfoResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEhsKCWlzX3BydW5lZBgKIAEoCFIIaXNQcnVuZWQSJQoOcHJ1bmluZ19oZWlnaHQYCyABKAVSDXBydW5pbmdIZWlnaHQSIQoMY2xvY2tfb2Zmc2V0GAwgASgBUgtjbG9ja09mZnNldBI/Cg9jb25uZWN0aW9uX2luZm8YDSABKAsyFi5wYWN0dXMuQ29ubmVjdGlvbkluZm9SDmNvbm5lY3Rpb25JbmZv'); +final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEhsKCWlzX3BydW5lZBgKIAEoCFIIaXNQcnVuZWQSJQoOcHJ1bmluZ19oZWlnaHQYCyABKAVSDXBydW5pbmdIZWlnaHQSIQoMY2xvY2tfb2Zmc2V0GA0gASgBUgtjbG9ja09mZnNldBI/Cg9jb25uZWN0aW9uX2luZm8YDiABKAsyFi5wYWN0dXMuQ29ubmVjdGlvbkluZm9SDmNvbm5lY3Rpb25JbmZv'); @$core.Deprecated('Use peerInfoDescriptor instead') const PeerInfo$json = const { '1': 'PeerInfo', diff --git a/www/grpc/gen/docs/grpc.md b/www/grpc/gen/docs/grpc.md index 3ace6ec53..88df2f754 100644 --- a/www/grpc/gen/docs/grpc.md +++ b/www/grpc/gen/docs/grpc.md @@ -2393,14 +2393,14 @@ Message has no fields. is_pruned bool - Type of node pruned or full. + If the blocks are subject to pruning. pruning_height int32 - The height of pruning. + Lowest-height block stored (only present if pruning is enabled) diff --git a/www/grpc/gen/docs/json-rpc.md b/www/grpc/gen/docs/json-rpc.md index cf8b8b1b5..cde33060b 100644 --- a/www/grpc/gen/docs/json-rpc.md +++ b/www/grpc/gen/docs/json-rpc.md @@ -2394,14 +2394,14 @@ Parameters has no fields. is_pruned boolean - Type of node pruned or full. + If the blocks are subject to pruning. pruning_height numeric - The height of pruning. + Lowest-height block stored (only present if pruning is enabled) diff --git a/www/grpc/gen/go/network.pb.go b/www/grpc/gen/go/network.pb.go index be8720826..48c991abb 100644 --- a/www/grpc/gen/go/network.pb.go +++ b/www/grpc/gen/go/network.pb.go @@ -236,14 +236,14 @@ type GetNodeInfoResponse struct { LocalAddrs []string `protobuf:"bytes,8,rep,name=local_addrs,json=localAddrs,proto3" json:"local_addrs,omitempty"` // List of protocols supported by the node. Protocols []string `protobuf:"bytes,9,rep,name=protocols,proto3" json:"protocols,omitempty"` - // Type of node pruned or full. + // If the blocks are subject to pruning. IsPruned bool `protobuf:"varint,10,opt,name=is_pruned,json=isPruned,proto3" json:"is_pruned,omitempty"` - // The height of pruning. + // Lowest-height block stored (only present if pruning is enabled) PruningHeight int32 `protobuf:"varint,11,opt,name=pruning_height,json=pruningHeight,proto3" json:"pruning_height,omitempty"` // Clock offset of the node. - ClockOffset float64 `protobuf:"fixed64,12,opt,name=clock_offset,json=clockOffset,proto3" json:"clock_offset,omitempty"` + ClockOffset float64 `protobuf:"fixed64,13,opt,name=clock_offset,json=clockOffset,proto3" json:"clock_offset,omitempty"` // Information about the node's connections. - ConnectionInfo *ConnectionInfo `protobuf:"bytes,13,opt,name=connection_info,json=connectionInfo,proto3" json:"connection_info,omitempty"` + ConnectionInfo *ConnectionInfo `protobuf:"bytes,14,opt,name=connection_info,json=connectionInfo,proto3" json:"connection_info,omitempty"` } func (x *GetNodeInfoResponse) Reset() { @@ -589,7 +589,7 @@ func (x *PeerInfo) GetCompletedSessions() int32 { return 0 } -// Response message containing information about the node's connections. +// ConnectionInfo contains information about the node's connections. type ConnectionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -724,9 +724,9 @@ var file_network_proto_rawDesc = []byte{ 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x06, 0x0a, diff --git a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java index 2dfd0a969..178b105d6 100644 --- a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java +++ b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java @@ -3211,7 +3211,7 @@ public interface GetNodeInfoResponseOrBuilder extends /** *
-     * Type of node pruned or full.
+     * If the blocks are subject to pruning.
      * 
* * bool is_pruned = 10 [json_name = "isPruned"]; @@ -3221,7 +3221,7 @@ public interface GetNodeInfoResponseOrBuilder extends /** *
-     * The height of pruning.
+     * Lowest-height block stored (only present if pruning is enabled)
      * 
* * int32 pruning_height = 11 [json_name = "pruningHeight"]; @@ -3234,7 +3234,7 @@ public interface GetNodeInfoResponseOrBuilder extends * Clock offset of the node. * * - * double clock_offset = 12 [json_name = "clockOffset"]; + * double clock_offset = 13 [json_name = "clockOffset"]; * @return The clockOffset. */ double getClockOffset(); @@ -3244,7 +3244,7 @@ public interface GetNodeInfoResponseOrBuilder extends * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return Whether the connectionInfo field is set. */ boolean hasConnectionInfo(); @@ -3253,7 +3253,7 @@ public interface GetNodeInfoResponseOrBuilder extends * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return The connectionInfo. */ pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo(); @@ -3262,7 +3262,7 @@ public interface GetNodeInfoResponseOrBuilder extends * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder(); } @@ -3683,7 +3683,7 @@ public java.lang.String getProtocols(int index) { private boolean isPruned_; /** *
-     * Type of node pruned or full.
+     * If the blocks are subject to pruning.
      * 
* * bool is_pruned = 10 [json_name = "isPruned"]; @@ -3698,7 +3698,7 @@ public boolean getIsPruned() { private int pruningHeight_; /** *
-     * The height of pruning.
+     * Lowest-height block stored (only present if pruning is enabled)
      * 
* * int32 pruning_height = 11 [json_name = "pruningHeight"]; @@ -3709,14 +3709,14 @@ public int getPruningHeight() { return pruningHeight_; } - public static final int CLOCK_OFFSET_FIELD_NUMBER = 12; + public static final int CLOCK_OFFSET_FIELD_NUMBER = 13; private double clockOffset_; /** *
      * Clock offset of the node.
      * 
* - * double clock_offset = 12 [json_name = "clockOffset"]; + * double clock_offset = 13 [json_name = "clockOffset"]; * @return The clockOffset. */ @java.lang.Override @@ -3724,14 +3724,14 @@ public double getClockOffset() { return clockOffset_; } - public static final int CONNECTION_INFO_FIELD_NUMBER = 13; + public static final int CONNECTION_INFO_FIELD_NUMBER = 14; private pactus.network.NetworkOuterClass.ConnectionInfo connectionInfo_; /** *
      * Information about the node's connections.
      * 
* - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return Whether the connectionInfo field is set. */ @java.lang.Override @@ -3743,7 +3743,7 @@ public boolean hasConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return The connectionInfo. */ @java.lang.Override @@ -3755,7 +3755,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ @java.lang.Override public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder() { @@ -3810,10 +3810,10 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) output.writeInt32(11, pruningHeight_); } if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { - output.writeDouble(12, clockOffset_); + output.writeDouble(13, clockOffset_); } if (connectionInfo_ != null) { - output.writeMessage(13, getConnectionInfo()); + output.writeMessage(14, getConnectionInfo()); } getUnknownFields().writeTo(output); } @@ -3873,11 +3873,11 @@ public int getSerializedSize() { } if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(12, clockOffset_); + .computeDoubleSize(13, clockOffset_); } if (connectionInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(13, getConnectionInfo()); + .computeMessageSize(14, getConnectionInfo()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -4373,18 +4373,18 @@ public Builder mergeFrom( break; } // case 88 - case 97: { + case 105: { clockOffset_ = input.readDouble(); break; - } // case 97 - case 106: { + } // case 105 + case 114: { input.readMessage( getConnectionInfoFieldBuilder().getBuilder(), extensionRegistry); break; - } // case 106 + } // case 114 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -5263,7 +5263,7 @@ public Builder addProtocolsBytes( private boolean isPruned_ ; /** *
-       * Type of node pruned or full.
+       * If the blocks are subject to pruning.
        * 
* * bool is_pruned = 10 [json_name = "isPruned"]; @@ -5275,7 +5275,7 @@ public boolean getIsPruned() { } /** *
-       * Type of node pruned or full.
+       * If the blocks are subject to pruning.
        * 
* * bool is_pruned = 10 [json_name = "isPruned"]; @@ -5290,7 +5290,7 @@ public Builder setIsPruned(boolean value) { } /** *
-       * Type of node pruned or full.
+       * If the blocks are subject to pruning.
        * 
* * bool is_pruned = 10 [json_name = "isPruned"]; @@ -5306,7 +5306,7 @@ public Builder clearIsPruned() { private int pruningHeight_ ; /** *
-       * The height of pruning.
+       * Lowest-height block stored (only present if pruning is enabled)
        * 
* * int32 pruning_height = 11 [json_name = "pruningHeight"]; @@ -5318,7 +5318,7 @@ public int getPruningHeight() { } /** *
-       * The height of pruning.
+       * Lowest-height block stored (only present if pruning is enabled)
        * 
* * int32 pruning_height = 11 [json_name = "pruningHeight"]; @@ -5333,7 +5333,7 @@ public Builder setPruningHeight(int value) { } /** *
-       * The height of pruning.
+       * Lowest-height block stored (only present if pruning is enabled)
        * 
* * int32 pruning_height = 11 [json_name = "pruningHeight"]; @@ -5352,7 +5352,7 @@ public Builder clearPruningHeight() { * Clock offset of the node. * * - * double clock_offset = 12 [json_name = "clockOffset"]; + * double clock_offset = 13 [json_name = "clockOffset"]; * @return The clockOffset. */ @java.lang.Override @@ -5364,7 +5364,7 @@ public double getClockOffset() { * Clock offset of the node. * * - * double clock_offset = 12 [json_name = "clockOffset"]; + * double clock_offset = 13 [json_name = "clockOffset"]; * @param value The clockOffset to set. * @return This builder for chaining. */ @@ -5379,7 +5379,7 @@ public Builder setClockOffset(double value) { * Clock offset of the node. * * - * double clock_offset = 12 [json_name = "clockOffset"]; + * double clock_offset = 13 [json_name = "clockOffset"]; * @return This builder for chaining. */ public Builder clearClockOffset() { @@ -5397,7 +5397,7 @@ public Builder clearClockOffset() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return Whether the connectionInfo field is set. */ public boolean hasConnectionInfo() { @@ -5408,7 +5408,7 @@ public boolean hasConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; * @return The connectionInfo. */ public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { @@ -5423,7 +5423,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public Builder setConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo value) { if (connectionInfoBuilder_ == null) { @@ -5443,7 +5443,7 @@ public Builder setConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public Builder setConnectionInfo( pactus.network.NetworkOuterClass.ConnectionInfo.Builder builderForValue) { @@ -5461,7 +5461,7 @@ public Builder setConnectionInfo( * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public Builder mergeConnectionInfo(pactus.network.NetworkOuterClass.ConnectionInfo value) { if (connectionInfoBuilder_ == null) { @@ -5483,7 +5483,7 @@ public Builder mergeConnectionInfo(pactus.network.NetworkOuterClass.ConnectionIn * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public Builder clearConnectionInfo() { if (connectionInfoBuilder_ == null) { @@ -5501,7 +5501,7 @@ public Builder clearConnectionInfo() { * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public pactus.network.NetworkOuterClass.ConnectionInfo.Builder getConnectionInfoBuilder() { @@ -5513,7 +5513,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo.Builder getConnectionInfo * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInfoOrBuilder() { if (connectionInfoBuilder_ != null) { @@ -5528,7 +5528,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder getConnectionInf * Information about the node's connections. * * - * .pactus.ConnectionInfo connection_info = 13 [json_name = "connectionInfo"]; + * .pactus.ConnectionInfo connection_info = 14 [json_name = "connectionInfo"]; */ private com.google.protobuf.SingleFieldBuilderV3< pactus.network.NetworkOuterClass.ConnectionInfo, pactus.network.NetworkOuterClass.ConnectionInfo.Builder, pactus.network.NetworkOuterClass.ConnectionInfoOrBuilder> @@ -9536,7 +9536,7 @@ public interface ConnectionInfoOrBuilder extends } /** *
-   * Response message containing information about the node's connections.
+   * ConnectionInfo contains information about the node's connections.
    * 
* * Protobuf type {@code pactus.ConnectionInfo} @@ -9805,7 +9805,7 @@ protected Builder newBuilderForType( } /** *
-     * Response message containing information about the node's connections.
+     * ConnectionInfo contains information about the node's connections.
      * 
* * Protobuf type {@code pactus.ConnectionInfo} @@ -10266,8 +10266,8 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType "(\tR\nlocalAddrs\022\034\n\tprotocols\030\t \003(\tR\tproto" + "cols\022\033\n\tis_pruned\030\n \001(\010R\010isPruned\022%\n\016pru" + "ning_height\030\013 \001(\005R\rpruningHeight\022!\n\014cloc" + - "k_offset\030\014 \001(\001R\013clockOffset\022?\n\017connectio" + - "n_info\030\r \001(\0132\026.pactus.ConnectionInfoR\016co" + + "k_offset\030\r \001(\001R\013clockOffset\022?\n\017connectio" + + "n_info\030\016 \001(\0132\026.pactus.ConnectionInfoR\016co" + "nnectionInfo\"\355\006\n\010PeerInfo\022\026\n\006status\030\001 \001(" + "\005R\006status\022\030\n\007moniker\030\002 \001(\tR\007moniker\022\024\n\005a" + "gent\030\003 \001(\tR\005agent\022\027\n\007peer_id\030\004 \001(\tR\006peer" + diff --git a/www/grpc/gen/js/network_pb.js b/www/grpc/gen/js/network_pb.js index 9dc78b51a..7afb9146a 100644 --- a/www/grpc/gen/js/network_pb.js +++ b/www/grpc/gen/js/network_pb.js @@ -782,7 +782,7 @@ proto.pactus.GetNodeInfoResponse.toObject = function(includeInstance, msg) { protocolsList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f, isPruned: jspb.Message.getBooleanFieldWithDefault(msg, 10, false), pruningHeight: jspb.Message.getFieldWithDefault(msg, 11, 0), - clockOffset: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0), + clockOffset: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), connectionInfo: (f = msg.getConnectionInfo()) && proto.pactus.ConnectionInfo.toObject(includeInstance, f) }; @@ -864,11 +864,11 @@ proto.pactus.GetNodeInfoResponse.deserializeBinaryFromReader = function(msg, rea var value = /** @type {number} */ (reader.readInt32()); msg.setPruningHeight(value); break; - case 12: + case 13: var value = /** @type {number} */ (reader.readDouble()); msg.setClockOffset(value); break; - case 13: + case 14: var value = new proto.pactus.ConnectionInfo; reader.readMessage(value,proto.pactus.ConnectionInfo.deserializeBinaryFromReader); msg.setConnectionInfo(value); @@ -982,14 +982,14 @@ proto.pactus.GetNodeInfoResponse.serializeBinaryToWriter = function(message, wri f = message.getClockOffset(); if (f !== 0.0) { writer.writeDouble( - 12, + 13, f ); } f = message.getConnectionInfo(); if (f != null) { writer.writeMessage( - 13, + 14, f, proto.pactus.ConnectionInfo.serializeBinaryToWriter ); @@ -1234,11 +1234,11 @@ proto.pactus.GetNodeInfoResponse.prototype.setPruningHeight = function(value) { /** - * optional double clock_offset = 12; + * optional double clock_offset = 13; * @return {number} */ proto.pactus.GetNodeInfoResponse.prototype.getClockOffset = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0)); + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); }; @@ -1247,17 +1247,17 @@ proto.pactus.GetNodeInfoResponse.prototype.getClockOffset = function() { * @return {!proto.pactus.GetNodeInfoResponse} returns this */ proto.pactus.GetNodeInfoResponse.prototype.setClockOffset = function(value) { - return jspb.Message.setProto3FloatField(this, 12, value); + return jspb.Message.setProto3FloatField(this, 13, value); }; /** - * optional ConnectionInfo connection_info = 13; + * optional ConnectionInfo connection_info = 14; * @return {?proto.pactus.ConnectionInfo} */ proto.pactus.GetNodeInfoResponse.prototype.getConnectionInfo = function() { return /** @type{?proto.pactus.ConnectionInfo} */ ( - jspb.Message.getWrapperField(this, proto.pactus.ConnectionInfo, 13)); + jspb.Message.getWrapperField(this, proto.pactus.ConnectionInfo, 14)); }; @@ -1266,7 +1266,7 @@ proto.pactus.GetNodeInfoResponse.prototype.getConnectionInfo = function() { * @return {!proto.pactus.GetNodeInfoResponse} returns this */ proto.pactus.GetNodeInfoResponse.prototype.setConnectionInfo = function(value) { - return jspb.Message.setWrapperField(this, 13, value); + return jspb.Message.setWrapperField(this, 14, value); }; @@ -1284,7 +1284,7 @@ proto.pactus.GetNodeInfoResponse.prototype.clearConnectionInfo = function() { * @return {boolean} */ proto.pactus.GetNodeInfoResponse.prototype.hasConnectionInfo = function() { - return jspb.Message.getField(this, 13) != null; + return jspb.Message.getField(this, 14) != null; }; diff --git a/www/grpc/gen/python/network_pb2.py b/www/grpc/gen/python/network_pb2.py index 48dbc47fc..459130ab4 100644 --- a/www/grpc/gen/python/network_pb2.py +++ b/www/grpc/gen/python/network_pb2.py @@ -13,7 +13,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\xcb\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12\x1b\n\tis_pruned\x18\n \x01(\x08R\x08isPruned\x12%\n\x0epruning_height\x18\x0b \x01(\x05R\rpruningHeight\x12!\n\x0c\x63lock_offset\x18\x0c \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\r \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections2\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\xcb\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12\x1b\n\tis_pruned\x18\n \x01(\x08R\x08isPruned\x12%\n\x0epruning_height\x18\x0b \x01(\x05R\rpruningHeight\x12!\n\x0c\x63lock_offset\x18\r \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\x0e \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections2\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'network_pb2', globals()) diff --git a/www/grpc/gen/rust/pactus.rs b/www/grpc/gen/rust/pactus.rs index 2ca235f3d..77807921b 100644 --- a/www/grpc/gen/rust/pactus.rs +++ b/www/grpc/gen/rust/pactus.rs @@ -837,17 +837,17 @@ pub struct GetNodeInfoResponse { /// List of protocols supported by the node. #[prost(string, repeated, tag="9")] pub protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// Type of node pruned or full. + /// If the blocks are subject to pruning. #[prost(bool, tag="10")] pub is_pruned: bool, - /// The height of pruning. + /// Lowest-height block stored (only present if pruning is enabled) #[prost(int32, tag="11")] pub pruning_height: i32, /// Clock offset of the node. - #[prost(double, tag="12")] + #[prost(double, tag="13")] pub clock_offset: f64, /// Information about the node's connections. - #[prost(message, optional, tag="13")] + #[prost(message, optional, tag="14")] pub connection_info: ::core::option::Option, } /// Information about a peer in the network. @@ -915,7 +915,7 @@ pub struct PeerInfo { #[prost(int32, tag="20")] pub completed_sessions: i32, } -/// Response message containing information about the node's connections. +/// ConnectionInfo contains information about the node's connections. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ConnectionInfo { diff --git a/www/grpc/proto/network.proto b/www/grpc/proto/network.proto index 01bf78449..0546d0a5a 100644 --- a/www/grpc/proto/network.proto +++ b/www/grpc/proto/network.proto @@ -66,9 +66,9 @@ message GetNodeInfoResponse { // Lowest-height block stored (only present if pruning is enabled) int32 pruning_height = 11; // Clock offset of the node. - double clock_offset = 12; + double clock_offset = 13; // Information about the node's connections. - ConnectionInfo connection_info = 13; + ConnectionInfo connection_info = 14; } // Information about a peer in the network. diff --git a/www/grpc/swagger-ui/pactus.swagger.json b/www/grpc/swagger-ui/pactus.swagger.json index ff8ebf772..7810df530 100644 --- a/www/grpc/swagger-ui/pactus.swagger.json +++ b/www/grpc/swagger-ui/pactus.swagger.json @@ -1447,7 +1447,7 @@ "description": "Number of outbound connections." } }, - "description": "Response message containing information about the node's connections." + "description": "ConnectionInfo contains information about the node's connections." }, "pactusConsensusInfo": { "type": "object", @@ -1745,12 +1745,12 @@ }, "isPruned": { "type": "boolean", - "description": "Type of node pruned or full." + "description": "If the blocks are subject to pruning." }, "pruningHeight": { "type": "integer", "format": "int32", - "description": "The height of pruning." + "title": "Lowest-height block stored (only present if pruning is enabled)" }, "clockOffset": { "type": "number", From 3f04b2ac5cc2e3b1bd8d35bac7f946cca8e44834 Mon Sep 17 00:00:00 2001 From: kehiy Date: Sat, 20 Jul 2024 11:55:27 +0330 Subject: [PATCH 5/6] fix: moving API to blockchain info --- state/mock.go | 2 +- state/state.go | 9 +- store/interface.go | 2 +- store/mock.go | 2 +- store/store.go | 9 +- www/grpc/blockchain.go | 2 + www/grpc/gen/dart/blockchain.pb.dart | 28 ++ www/grpc/gen/dart/blockchain.pbjson.dart | 4 +- www/grpc/gen/dart/network.pb.dart | 40 +- www/grpc/gen/dart/network.pbjson.dart | 4 +- www/grpc/gen/docs/grpc.md | 30 +- www/grpc/gen/docs/json-rpc.md | 30 +- www/grpc/gen/go/blockchain.pb.go | 349 ++++++++++-------- www/grpc/gen/go/network.pb.go | 196 +++++----- .../blockchain/BlockchainOuterClass.java | 318 ++++++++++++---- .../pactus/network/NetworkOuterClass.java | 257 ++----------- www/grpc/gen/js/blockchain_pb.js | 62 +++- www/grpc/gen/js/network_pb.js | 60 --- www/grpc/gen/python/blockchain_pb2.py | 56 +-- www/grpc/gen/python/network_pb2.py | 16 +- www/grpc/gen/rust/pactus.rs | 12 +- www/grpc/gen/rust/pactus.serde.rs | 76 ++-- www/grpc/network.go | 2 - www/grpc/proto/blockchain.proto | 4 + www/grpc/proto/network.proto | 4 - www/grpc/swagger-ui/pactus.swagger.json | 18 +- www/http/blockchain.go | 2 + www/http/network.go | 2 - 28 files changed, 797 insertions(+), 799 deletions(-) diff --git a/state/mock.go b/state/mock.go index 944b43571..4a2849edf 100644 --- a/state/mock.go +++ b/state/mock.go @@ -273,5 +273,5 @@ func (m *MockState) IsPruned() bool { } func (m *MockState) PruningHeight() uint32 { - return m.TestStore.LastCert.Height() - m.TestStore.RetentionBlocks() + return m.TestStore.PruningHeight() } diff --git a/state/state.go b/state/state.go index 36bdc0254..bcd12c3b0 100644 --- a/state/state.go +++ b/state/state.go @@ -768,12 +768,5 @@ func (st *state) IsPruned() bool { } func (st *state) PruningHeight() uint32 { - if !st.store.IsPruned() { - return 0 - } - - lh := st.store.LastCertificate().Height() - rb := st.store.RetentionBlocks() - - return lh - rb + return st.store.PruningHeight() } diff --git a/store/interface.go b/store/interface.go index ac765f90a..50cd1d9a7 100644 --- a/store/interface.go +++ b/store/interface.go @@ -99,7 +99,7 @@ type Reader interface { LastCertificate() *certificate.BlockCertificate IsBanned(addr crypto.Address) bool IsPruned() bool - RetentionBlocks() uint32 + PruningHeight() uint32 } type Store interface { diff --git a/store/mock.go b/store/mock.go index 65916e427..eefa4834a 100644 --- a/store/mock.go +++ b/store/mock.go @@ -298,6 +298,6 @@ func (*MockStore) IsPruned() bool { return false } -func (*MockStore) RetentionBlocks() uint32 { +func (*MockStore) PruningHeight() uint32 { return 1 } diff --git a/store/store.go b/store/store.go index 8c2e6ed72..fe21977e0 100644 --- a/store/store.go +++ b/store/store.go @@ -488,6 +488,11 @@ func (s *store) pruneBlock(blockHeight uint32) (bool, error) { return true, nil } -func (s *store) RetentionBlocks() uint32 { - return s.config.RetentionBlocks() +func (s *store) PruningHeight() uint32 { + cert := s.lastCertificate() + if cert == nil { + return 0 + } + + return cert.Height() - s.config.RetentionBlocks() } diff --git a/www/grpc/blockchain.go b/www/grpc/blockchain.go index 258875a02..64114b3dd 100644 --- a/www/grpc/blockchain.go +++ b/www/grpc/blockchain.go @@ -40,6 +40,8 @@ func (s *blockchainServer) GetBlockchainInfo(_ context.Context, TotalValidators: s.state.TotalValidators(), TotalPower: s.state.TotalPower(), CommitteePower: s.state.CommitteePower(), + IsPruned: s.state.IsPruned(), + PruningHeight: int32(s.state.PruningHeight()), CommitteeValidators: cv, }, nil } diff --git a/www/grpc/gen/dart/blockchain.pb.dart b/www/grpc/gen/dart/blockchain.pb.dart index fc1a3dec5..9eaee1d38 100644 --- a/www/grpc/gen/dart/blockchain.pb.dart +++ b/www/grpc/gen/dart/blockchain.pb.dart @@ -837,6 +837,8 @@ class GetBlockchainInfoResponse extends $pb.GeneratedMessage { ..aInt64(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'totalPower') ..aInt64(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'committeePower') ..pc(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'committeeValidators', $pb.PbFieldType.PM, subBuilder: ValidatorInfo.create) + ..aOB(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isPruned') + ..a<$core.int>(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pruningHeight', $pb.PbFieldType.O3) ..hasRequiredFields = false ; @@ -849,6 +851,8 @@ class GetBlockchainInfoResponse extends $pb.GeneratedMessage { $fixnum.Int64? totalPower, $fixnum.Int64? committeePower, $core.Iterable? committeeValidators, + $core.bool? isPruned, + $core.int? pruningHeight, }) { final _result = create(); if (lastBlockHeight != null) { @@ -872,6 +876,12 @@ class GetBlockchainInfoResponse extends $pb.GeneratedMessage { if (committeeValidators != null) { _result.committeeValidators.addAll(committeeValidators); } + if (isPruned != null) { + _result.isPruned = isPruned; + } + if (pruningHeight != null) { + _result.pruningHeight = pruningHeight; + } return _result; } factory GetBlockchainInfoResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); @@ -951,6 +961,24 @@ class GetBlockchainInfoResponse extends $pb.GeneratedMessage { @$pb.TagNumber(7) $core.List get committeeValidators => $_getList(6); + + @$pb.TagNumber(8) + $core.bool get isPruned => $_getBF(7); + @$pb.TagNumber(8) + set isPruned($core.bool v) { $_setBool(7, v); } + @$pb.TagNumber(8) + $core.bool hasIsPruned() => $_has(7); + @$pb.TagNumber(8) + void clearIsPruned() => clearField(8); + + @$pb.TagNumber(9) + $core.int get pruningHeight => $_getIZ(8); + @$pb.TagNumber(9) + set pruningHeight($core.int v) { $_setSignedInt32(8, v); } + @$pb.TagNumber(9) + $core.bool hasPruningHeight() => $_has(8); + @$pb.TagNumber(9) + void clearPruningHeight() => clearField(9); } class GetConsensusInfoRequest extends $pb.GeneratedMessage { diff --git a/www/grpc/gen/dart/blockchain.pbjson.dart b/www/grpc/gen/dart/blockchain.pbjson.dart index a92e7b2fd..678857444 100644 --- a/www/grpc/gen/dart/blockchain.pbjson.dart +++ b/www/grpc/gen/dart/blockchain.pbjson.dart @@ -207,11 +207,13 @@ const GetBlockchainInfoResponse$json = const { const {'1': 'total_power', '3': 5, '4': 1, '5': 3, '10': 'totalPower'}, const {'1': 'committee_power', '3': 6, '4': 1, '5': 3, '10': 'committeePower'}, const {'1': 'committee_validators', '3': 7, '4': 3, '5': 11, '6': '.pactus.ValidatorInfo', '10': 'committeeValidators'}, + const {'1': 'is_pruned', '3': 8, '4': 1, '5': 8, '10': 'isPruned'}, + const {'1': 'pruning_height', '3': 9, '4': 1, '5': 5, '10': 'pruningHeight'}, ], }; /// Descriptor for `GetBlockchainInfoResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List getBlockchainInfoResponseDescriptor = $convert.base64Decode('ChlHZXRCbG9ja2NoYWluSW5mb1Jlc3BvbnNlEioKEWxhc3RfYmxvY2tfaGVpZ2h0GAEgASgNUg9sYXN0QmxvY2tIZWlnaHQSJgoPbGFzdF9ibG9ja19oYXNoGAIgASgJUg1sYXN0QmxvY2tIYXNoEiUKDnRvdGFsX2FjY291bnRzGAMgASgFUg10b3RhbEFjY291bnRzEikKEHRvdGFsX3ZhbGlkYXRvcnMYBCABKAVSD3RvdGFsVmFsaWRhdG9ycxIfCgt0b3RhbF9wb3dlchgFIAEoA1IKdG90YWxQb3dlchInCg9jb21taXR0ZWVfcG93ZXIYBiABKANSDmNvbW1pdHRlZVBvd2VyEkgKFGNvbW1pdHRlZV92YWxpZGF0b3JzGAcgAygLMhUucGFjdHVzLlZhbGlkYXRvckluZm9SE2NvbW1pdHRlZVZhbGlkYXRvcnM='); +final $typed_data.Uint8List getBlockchainInfoResponseDescriptor = $convert.base64Decode('ChlHZXRCbG9ja2NoYWluSW5mb1Jlc3BvbnNlEioKEWxhc3RfYmxvY2tfaGVpZ2h0GAEgASgNUg9sYXN0QmxvY2tIZWlnaHQSJgoPbGFzdF9ibG9ja19oYXNoGAIgASgJUg1sYXN0QmxvY2tIYXNoEiUKDnRvdGFsX2FjY291bnRzGAMgASgFUg10b3RhbEFjY291bnRzEikKEHRvdGFsX3ZhbGlkYXRvcnMYBCABKAVSD3RvdGFsVmFsaWRhdG9ycxIfCgt0b3RhbF9wb3dlchgFIAEoA1IKdG90YWxQb3dlchInCg9jb21taXR0ZWVfcG93ZXIYBiABKANSDmNvbW1pdHRlZVBvd2VyEkgKFGNvbW1pdHRlZV92YWxpZGF0b3JzGAcgAygLMhUucGFjdHVzLlZhbGlkYXRvckluZm9SE2NvbW1pdHRlZVZhbGlkYXRvcnMSGwoJaXNfcHJ1bmVkGAggASgIUghpc1BydW5lZBIlCg5wcnVuaW5nX2hlaWdodBgJIAEoBVINcHJ1bmluZ0hlaWdodA=='); @$core.Deprecated('Use getConsensusInfoRequestDescriptor instead') const GetConsensusInfoRequest$json = const { '1': 'GetConsensusInfoRequest', diff --git a/www/grpc/gen/dart/network.pb.dart b/www/grpc/gen/dart/network.pb.dart index afea5c593..caff37258 100644 --- a/www/grpc/gen/dart/network.pb.dart +++ b/www/grpc/gen/dart/network.pb.dart @@ -211,8 +211,6 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { ..aOS(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'servicesNames') ..pPS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'localAddrs') ..pPS(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'protocols') - ..aOB(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isPruned') - ..a<$core.int>(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'pruningHeight', $pb.PbFieldType.O3) ..a<$core.double>(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'clockOffset', $pb.PbFieldType.OD) ..aOM(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'connectionInfo', subBuilder: ConnectionInfo.create) ..hasRequiredFields = false @@ -229,8 +227,6 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { $core.String? servicesNames, $core.Iterable<$core.String>? localAddrs, $core.Iterable<$core.String>? protocols, - $core.bool? isPruned, - $core.int? pruningHeight, $core.double? clockOffset, ConnectionInfo? connectionInfo, }) { @@ -262,12 +258,6 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { if (protocols != null) { _result.protocols.addAll(protocols); } - if (isPruned != null) { - _result.isPruned = isPruned; - } - if (pruningHeight != null) { - _result.pruningHeight = pruningHeight; - } if (clockOffset != null) { _result.clockOffset = clockOffset; } @@ -366,43 +356,25 @@ class GetNodeInfoResponse extends $pb.GeneratedMessage { @$pb.TagNumber(9) $core.List<$core.String> get protocols => $_getList(8); - @$pb.TagNumber(10) - $core.bool get isPruned => $_getBF(9); - @$pb.TagNumber(10) - set isPruned($core.bool v) { $_setBool(9, v); } - @$pb.TagNumber(10) - $core.bool hasIsPruned() => $_has(9); - @$pb.TagNumber(10) - void clearIsPruned() => clearField(10); - - @$pb.TagNumber(11) - $core.int get pruningHeight => $_getIZ(10); - @$pb.TagNumber(11) - set pruningHeight($core.int v) { $_setSignedInt32(10, v); } - @$pb.TagNumber(11) - $core.bool hasPruningHeight() => $_has(10); - @$pb.TagNumber(11) - void clearPruningHeight() => clearField(11); - @$pb.TagNumber(13) - $core.double get clockOffset => $_getN(11); + $core.double get clockOffset => $_getN(9); @$pb.TagNumber(13) - set clockOffset($core.double v) { $_setDouble(11, v); } + set clockOffset($core.double v) { $_setDouble(9, v); } @$pb.TagNumber(13) - $core.bool hasClockOffset() => $_has(11); + $core.bool hasClockOffset() => $_has(9); @$pb.TagNumber(13) void clearClockOffset() => clearField(13); @$pb.TagNumber(14) - ConnectionInfo get connectionInfo => $_getN(12); + ConnectionInfo get connectionInfo => $_getN(10); @$pb.TagNumber(14) set connectionInfo(ConnectionInfo v) { setField(14, v); } @$pb.TagNumber(14) - $core.bool hasConnectionInfo() => $_has(12); + $core.bool hasConnectionInfo() => $_has(10); @$pb.TagNumber(14) void clearConnectionInfo() => clearField(14); @$pb.TagNumber(14) - ConnectionInfo ensureConnectionInfo() => $_ensure(12); + ConnectionInfo ensureConnectionInfo() => $_ensure(10); } class PeerInfo extends $pb.GeneratedMessage { diff --git a/www/grpc/gen/dart/network.pbjson.dart b/www/grpc/gen/dart/network.pbjson.dart index 33170ba2c..c8a708dcf 100644 --- a/www/grpc/gen/dart/network.pbjson.dart +++ b/www/grpc/gen/dart/network.pbjson.dart @@ -75,15 +75,13 @@ const GetNodeInfoResponse$json = const { const {'1': 'services_names', '3': 7, '4': 1, '5': 9, '10': 'servicesNames'}, const {'1': 'local_addrs', '3': 8, '4': 3, '5': 9, '10': 'localAddrs'}, const {'1': 'protocols', '3': 9, '4': 3, '5': 9, '10': 'protocols'}, - const {'1': 'is_pruned', '3': 10, '4': 1, '5': 8, '10': 'isPruned'}, - const {'1': 'pruning_height', '3': 11, '4': 1, '5': 5, '10': 'pruningHeight'}, const {'1': 'clock_offset', '3': 13, '4': 1, '5': 1, '10': 'clockOffset'}, const {'1': 'connection_info', '3': 14, '4': 1, '5': 11, '6': '.pactus.ConnectionInfo', '10': 'connectionInfo'}, ], }; /// Descriptor for `GetNodeInfoResponse`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEhsKCWlzX3BydW5lZBgKIAEoCFIIaXNQcnVuZWQSJQoOcHJ1bmluZ19oZWlnaHQYCyABKAVSDXBydW5pbmdIZWlnaHQSIQoMY2xvY2tfb2Zmc2V0GA0gASgBUgtjbG9ja09mZnNldBI/Cg9jb25uZWN0aW9uX2luZm8YDiABKAsyFi5wYWN0dXMuQ29ubmVjdGlvbkluZm9SDmNvbm5lY3Rpb25JbmZv'); +final $typed_data.Uint8List getNodeInfoResponseDescriptor = $convert.base64Decode('ChNHZXROb2RlSW5mb1Jlc3BvbnNlEhgKB21vbmlrZXIYASABKAlSB21vbmlrZXISFAoFYWdlbnQYAiABKAlSBWFnZW50EhcKB3BlZXJfaWQYAyABKAlSBnBlZXJJZBIdCgpzdGFydGVkX2F0GAQgASgEUglzdGFydGVkQXQSIgoMcmVhY2hhYmlsaXR5GAUgASgJUgxyZWFjaGFiaWxpdHkSGgoIc2VydmljZXMYBiABKAVSCHNlcnZpY2VzEiUKDnNlcnZpY2VzX25hbWVzGAcgASgJUg1zZXJ2aWNlc05hbWVzEh8KC2xvY2FsX2FkZHJzGAggAygJUgpsb2NhbEFkZHJzEhwKCXByb3RvY29scxgJIAMoCVIJcHJvdG9jb2xzEiEKDGNsb2NrX29mZnNldBgNIAEoAVILY2xvY2tPZmZzZXQSPwoPY29ubmVjdGlvbl9pbmZvGA4gASgLMhYucGFjdHVzLkNvbm5lY3Rpb25JbmZvUg5jb25uZWN0aW9uSW5mbw=='); @$core.Deprecated('Use peerInfoDescriptor instead') const PeerInfo$json = const { '1': 'PeerInfo', diff --git a/www/grpc/gen/docs/grpc.md b/www/grpc/gen/docs/grpc.md index 88df2f754..7ae2133a9 100644 --- a/www/grpc/gen/docs/grpc.md +++ b/www/grpc/gen/docs/grpc.md @@ -1384,7 +1384,21 @@ Message has no fields. The availability score of the validator. - + + is_pruned + bool + + If the blocks are subject to pruning. + + + + pruning_height + int32 + + Lowest-height block stored (only present if pruning is enabled) + + + ### GetConsensusInfo @@ -2388,20 +2402,6 @@ Message has no fields. List of protocols supported by the node. - - - is_pruned - bool - - If the blocks are subject to pruning. - - - - pruning_height - int32 - - Lowest-height block stored (only present if pruning is enabled) - clock_offset diff --git a/www/grpc/gen/docs/json-rpc.md b/www/grpc/gen/docs/json-rpc.md index cde33060b..f3f877b5d 100644 --- a/www/grpc/gen/docs/json-rpc.md +++ b/www/grpc/gen/docs/json-rpc.md @@ -1385,7 +1385,21 @@ Parameters has no fields. The availability score of the validator. - + + is_pruned + boolean + + If the blocks are subject to pruning. + + + + pruning_height + numeric + + Lowest-height block stored (only present if pruning is enabled) + + + ### pactus.blockchain.get_consensus_info @@ -2389,20 +2403,6 @@ Parameters has no fields. List of protocols supported by the node. - - - is_pruned - boolean - - If the blocks are subject to pruning. - - - - pruning_height - numeric - - Lowest-height block stored (only present if pruning is enabled) - clock_offset diff --git a/www/grpc/gen/go/blockchain.pb.go b/www/grpc/gen/go/blockchain.pb.go index 4046c2832..311cb71db 100644 --- a/www/grpc/gen/go/blockchain.pb.go +++ b/www/grpc/gen/go/blockchain.pb.go @@ -978,6 +978,10 @@ type GetBlockchainInfoResponse struct { CommitteePower int64 `protobuf:"varint,6,opt,name=committee_power,json=committeePower,proto3" json:"committee_power,omitempty"` // List of committee validators. CommitteeValidators []*ValidatorInfo `protobuf:"bytes,7,rep,name=committee_validators,json=committeeValidators,proto3" json:"committee_validators,omitempty"` + // If the blocks are subject to pruning. + IsPruned bool `protobuf:"varint,8,opt,name=is_pruned,json=isPruned,proto3" json:"is_pruned,omitempty"` + // Lowest-height block stored (only present if pruning is enabled) + PruningHeight int32 `protobuf:"varint,9,opt,name=pruning_height,json=pruningHeight,proto3" json:"pruning_height,omitempty"` } func (x *GetBlockchainInfoResponse) Reset() { @@ -1061,6 +1065,20 @@ func (x *GetBlockchainInfoResponse) GetCommitteeValidators() []*ValidatorInfo { return nil } +func (x *GetBlockchainInfoResponse) GetIsPruned() bool { + if x != nil { + return x.IsPruned + } + return false +} + +func (x *GetBlockchainInfoResponse) GetPruningHeight() int32 { + if x != nil { + return x.PruningHeight + } + return 0 +} + // Message to request consensus information. type GetConsensusInfoRequest struct { state protoimpl.MessageState @@ -1885,7 +1903,7 @@ var file_blockchain_proto_rawDesc = []byte{ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x47, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x99, 0x03, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, @@ -1907,168 +1925,173 @@ var file_blockchain_proto_rawDesc = []byte{ 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x51, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0c, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x13, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x45, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, - 0x03, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x63, - 0x74, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x78, 0x73, 0x22, 0xdc, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, - 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6c, 0x61, - 0x73, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, - 0x6c, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x0f, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x72, 0x65, - 0x76, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x65, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xb1, 0x01, 0x0a, - 0x08, 0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, - 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, - 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x70, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x2a, 0x48, 0x0a, 0x0e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x0a, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x53, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x08, 0x56, 0x6f, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, - 0x52, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, - 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x4f, 0x54, 0x45, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, - 0x10, 0x03, 0x32, 0x8b, 0x07, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x17, 0x2e, - 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x2e, - 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, - 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x70, 0x61, 0x63, - 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x61, - 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, - 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x61, - 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x79, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x79, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x61, 0x63, - 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x24, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1b, - 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x61, - 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x2e, - 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, - 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x45, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, 0x77, 0x77, 0x2f, 0x67, 0x72, 0x70, 0x63, - 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x4f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x51, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x45, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, + 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x29, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x78, 0x73, 0x22, 0xdc, 0x02, 0x0a, + 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0b, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0xc4, 0x01, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, + 0x0f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x65, + 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x22, 0xb1, 0x01, 0x0a, 0x08, 0x56, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x61, + 0x63, 0x74, 0x75, 0x73, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x63, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x63, 0x70, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x70, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x56, + 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x2a, 0x48, + 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, + 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x01, + 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x08, 0x56, 0x6f, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x50, + 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x4f, 0x54, 0x45, + 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, + 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x4f, 0x53, 0x45, 0x52, 0x10, 0x03, 0x32, 0x8b, 0x07, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x61, 0x63, + 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, + 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x19, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x61, 0x63, + 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x42, 0x79, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x70, 0x61, 0x63, 0x74, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, + 0x79, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x61, + 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, + 0x65, 0x79, 0x12, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x54, 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, + 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x45, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, 0x77, 0x77, 0x2f, + 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/www/grpc/gen/go/network.pb.go b/www/grpc/gen/go/network.pb.go index 48c991abb..d99205478 100644 --- a/www/grpc/gen/go/network.pb.go +++ b/www/grpc/gen/go/network.pb.go @@ -236,10 +236,6 @@ type GetNodeInfoResponse struct { LocalAddrs []string `protobuf:"bytes,8,rep,name=local_addrs,json=localAddrs,proto3" json:"local_addrs,omitempty"` // List of protocols supported by the node. Protocols []string `protobuf:"bytes,9,rep,name=protocols,proto3" json:"protocols,omitempty"` - // If the blocks are subject to pruning. - IsPruned bool `protobuf:"varint,10,opt,name=is_pruned,json=isPruned,proto3" json:"is_pruned,omitempty"` - // Lowest-height block stored (only present if pruning is enabled) - PruningHeight int32 `protobuf:"varint,11,opt,name=pruning_height,json=pruningHeight,proto3" json:"pruning_height,omitempty"` // Clock offset of the node. ClockOffset float64 `protobuf:"fixed64,13,opt,name=clock_offset,json=clockOffset,proto3" json:"clock_offset,omitempty"` // Information about the node's connections. @@ -341,20 +337,6 @@ func (x *GetNodeInfoResponse) GetProtocols() []string { return nil } -func (x *GetNodeInfoResponse) GetIsPruned() bool { - if x != nil { - return x.IsPruned - } - return false -} - -func (x *GetNodeInfoResponse) GetPruningHeight() int32 { - if x != nil { - return x.PruningHeight - } - return 0 -} - func (x *GetNodeInfoResponse) GetClockOffset() float64 { if x != nil { return x.ClockOffset @@ -700,7 +682,7 @@ var file_network_proto_rawDesc = []byte{ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcb, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x87, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, @@ -719,97 +701,93 @@ var file_network_proto_rawDesc = []byte{ 0x64, 0x64, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, - 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x72, 0x75, 0x6e, 0x65, - 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x72, 0x75, 0x6e, 0x69, - 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x06, 0x0a, - 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, - 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, - 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, - 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, - 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, - 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, - 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, - 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x13, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xa2, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x12, 0x4f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, - 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xed, 0x06, 0x0a, 0x08, 0x50, 0x65, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2f, 0x0a, + 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x65, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, + 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, + 0x13, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x69, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, + 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x32, 0xa2, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4f, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x0a, 0x0e, 0x70, 0x61, - 0x63, 0x74, 0x75, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5a, 0x30, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, - 0x77, 0x77, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x61, 0x63, 0x74, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x42, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x2f, 0x77, 0x77, 0x77, 0x2f, 0x67, + 0x72, 0x70, 0x63, 0x2f, 0x70, 0x61, 0x63, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/www/grpc/gen/java/pactus/blockchain/BlockchainOuterClass.java b/www/grpc/gen/java/pactus/blockchain/BlockchainOuterClass.java index d7200df09..f7bb37da6 100644 --- a/www/grpc/gen/java/pactus/blockchain/BlockchainOuterClass.java +++ b/www/grpc/gen/java/pactus/blockchain/BlockchainOuterClass.java @@ -10952,6 +10952,26 @@ public interface GetBlockchainInfoResponseOrBuilder extends */ pactus.blockchain.BlockchainOuterClass.ValidatorInfoOrBuilder getCommitteeValidatorsOrBuilder( int index); + + /** + *
+     * If the blocks are subject to pruning.
+     * 
+ * + * bool is_pruned = 8 [json_name = "isPruned"]; + * @return The isPruned. + */ + boolean getIsPruned(); + + /** + *
+     * Lowest-height block stored (only present if pruning is enabled)
+     * 
+ * + * int32 pruning_height = 9 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + int getPruningHeight(); } /** *
@@ -11180,6 +11200,36 @@ public pactus.blockchain.BlockchainOuterClass.ValidatorInfoOrBuilder getCommitte
       return committeeValidators_.get(index);
     }
 
+    public static final int IS_PRUNED_FIELD_NUMBER = 8;
+    private boolean isPruned_;
+    /**
+     * 
+     * If the blocks are subject to pruning.
+     * 
+ * + * bool is_pruned = 8 [json_name = "isPruned"]; + * @return The isPruned. + */ + @java.lang.Override + public boolean getIsPruned() { + return isPruned_; + } + + public static final int PRUNING_HEIGHT_FIELD_NUMBER = 9; + private int pruningHeight_; + /** + *
+     * Lowest-height block stored (only present if pruning is enabled)
+     * 
+ * + * int32 pruning_height = 9 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + @java.lang.Override + public int getPruningHeight() { + return pruningHeight_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -11215,6 +11265,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < committeeValidators_.size(); i++) { output.writeMessage(7, committeeValidators_.get(i)); } + if (isPruned_ != false) { + output.writeBool(8, isPruned_); + } + if (pruningHeight_ != 0) { + output.writeInt32(9, pruningHeight_); + } getUnknownFields().writeTo(output); } @@ -11251,6 +11307,14 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, committeeValidators_.get(i)); } + if (isPruned_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(8, isPruned_); + } + if (pruningHeight_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(9, pruningHeight_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -11280,6 +11344,10 @@ public boolean equals(final java.lang.Object obj) { != other.getCommitteePower()) return false; if (!getCommitteeValidatorsList() .equals(other.getCommitteeValidatorsList())) return false; + if (getIsPruned() + != other.getIsPruned()) return false; + if (getPruningHeight() + != other.getPruningHeight()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -11309,6 +11377,11 @@ public int hashCode() { hash = (37 * hash) + COMMITTEE_VALIDATORS_FIELD_NUMBER; hash = (53 * hash) + getCommitteeValidatorsList().hashCode(); } + hash = (37 * hash) + IS_PRUNED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsPruned()); + hash = (37 * hash) + PRUNING_HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getPruningHeight(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -11460,6 +11533,10 @@ public Builder clear() { committeeValidatorsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); + isPruned_ = false; + + pruningHeight_ = 0; + return this; } @@ -11502,6 +11579,8 @@ public pactus.blockchain.BlockchainOuterClass.GetBlockchainInfoResponse buildPar } else { result.committeeValidators_ = committeeValidatorsBuilder_.build(); } + result.isPruned_ = isPruned_; + result.pruningHeight_ = pruningHeight_; onBuilt(); return result; } @@ -11595,6 +11674,12 @@ public Builder mergeFrom(pactus.blockchain.BlockchainOuterClass.GetBlockchainInf } } } + if (other.getIsPruned() != false) { + setIsPruned(other.getIsPruned()); + } + if (other.getPruningHeight() != 0) { + setPruningHeight(other.getPruningHeight()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -11664,6 +11749,16 @@ public Builder mergeFrom( } break; } // case 58 + case 64: { + isPruned_ = input.readBool(); + + break; + } // case 64 + case 72: { + pruningHeight_ = input.readInt32(); + + break; + } // case 72 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -12303,6 +12398,92 @@ public pactus.blockchain.BlockchainOuterClass.ValidatorInfo.Builder addCommittee } return committeeValidatorsBuilder_; } + + private boolean isPruned_ ; + /** + *
+       * If the blocks are subject to pruning.
+       * 
+ * + * bool is_pruned = 8 [json_name = "isPruned"]; + * @return The isPruned. + */ + @java.lang.Override + public boolean getIsPruned() { + return isPruned_; + } + /** + *
+       * If the blocks are subject to pruning.
+       * 
+ * + * bool is_pruned = 8 [json_name = "isPruned"]; + * @param value The isPruned to set. + * @return This builder for chaining. + */ + public Builder setIsPruned(boolean value) { + + isPruned_ = value; + onChanged(); + return this; + } + /** + *
+       * If the blocks are subject to pruning.
+       * 
+ * + * bool is_pruned = 8 [json_name = "isPruned"]; + * @return This builder for chaining. + */ + public Builder clearIsPruned() { + + isPruned_ = false; + onChanged(); + return this; + } + + private int pruningHeight_ ; + /** + *
+       * Lowest-height block stored (only present if pruning is enabled)
+       * 
+ * + * int32 pruning_height = 9 [json_name = "pruningHeight"]; + * @return The pruningHeight. + */ + @java.lang.Override + public int getPruningHeight() { + return pruningHeight_; + } + /** + *
+       * Lowest-height block stored (only present if pruning is enabled)
+       * 
+ * + * int32 pruning_height = 9 [json_name = "pruningHeight"]; + * @param value The pruningHeight to set. + * @return This builder for chaining. + */ + public Builder setPruningHeight(int value) { + + pruningHeight_ = value; + onChanged(); + return this; + } + /** + *
+       * Lowest-height block stored (only present if pruning is enabled)
+       * 
+ * + * int32 pruning_height = 9 [json_name = "pruningHeight"]; + * @return This builder for chaining. + */ + public Builder clearPruningHeight() { + + pruningHeight_ = 0; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -23259,7 +23440,7 @@ public pactus.blockchain.BlockchainOuterClass.ConsensusInfo getDefaultInstanceFo "ashResponse\022\022\n\004hash\030\001 \001(\tR\004hash\"+\n\025GetBl" + "ockHeightRequest\022\022\n\004hash\030\001 \001(\tR\004hash\"0\n\026" + "GetBlockHeightResponse\022\026\n\006height\030\001 \001(\rR\006" + - "height\"\032\n\030GetBlockchainInfoRequest\"\325\002\n\031G" + + "height\"\032\n\030GetBlockchainInfoRequest\"\231\003\n\031G" + "etBlockchainInfoResponse\022*\n\021last_block_h" + "eight\030\001 \001(\rR\017lastBlockHeight\022&\n\017last_blo" + "ck_hash\030\002 \001(\tR\rlastBlockHash\022%\n\016total_ac" + @@ -23268,72 +23449,73 @@ public pactus.blockchain.BlockchainOuterClass.ConsensusInfo getDefaultInstanceFo "power\030\005 \001(\003R\ntotalPower\022\'\n\017committee_pow" + "er\030\006 \001(\003R\016committeePower\022H\n\024committee_va" + "lidators\030\007 \003(\0132\025.pactus.ValidatorInfoR\023c" + - "ommitteeValidators\"\031\n\027GetConsensusInfoRe" + - "quest\"O\n\030GetConsensusInfoResponse\0223\n\tins" + - "tances\030\001 \003(\0132\025.pactus.ConsensusInfoR\tins" + - "tances\"Q\n\027GetTxPoolContentRequest\0226\n\014pay" + - "load_type\030\001 \001(\0162\023.pactus.PayloadTypeR\013pa" + - "yloadType\"E\n\030GetTxPoolContentResponse\022)\n" + - "\003txs\030\001 \003(\0132\027.pactus.TransactionInfoR\003txs" + - "\"\334\002\n\rValidatorInfo\022\022\n\004hash\030\001 \001(\tR\004hash\022\022" + - "\n\004data\030\002 \001(\tR\004data\022\035\n\npublic_key\030\003 \001(\tR\t" + - "publicKey\022\026\n\006number\030\004 \001(\005R\006number\022\024\n\005sta" + - "ke\030\005 \001(\003R\005stake\022.\n\023last_bonding_height\030\006" + - " \001(\rR\021lastBondingHeight\0222\n\025last_sortitio" + - "n_height\030\007 \001(\rR\023lastSortitionHeight\022)\n\020u" + - "nbonding_height\030\010 \001(\rR\017unbondingHeight\022\030" + - "\n\007address\030\t \001(\tR\007address\022-\n\022availability" + - "_score\030\n \001(\001R\021availabilityScore\"\201\001\n\013Acco" + - "untInfo\022\022\n\004hash\030\001 \001(\tR\004hash\022\022\n\004data\030\002 \001(" + - "\tR\004data\022\026\n\006number\030\003 \001(\005R\006number\022\030\n\007balan" + - "ce\030\004 \001(\003R\007balance\022\030\n\007address\030\005 \001(\tR\007addr" + - "ess\"\304\001\n\017BlockHeaderInfo\022\030\n\007version\030\001 \001(\005" + - "R\007version\022&\n\017prev_block_hash\030\002 \001(\tR\rprev" + - "BlockHash\022\035\n\nstate_root\030\003 \001(\tR\tstateRoot" + - "\022%\n\016sortition_seed\030\004 \001(\tR\rsortitionSeed\022" + - ")\n\020proposer_address\030\005 \001(\tR\017proposerAddre" + - "ss\"\227\001\n\017CertificateInfo\022\022\n\004hash\030\001 \001(\tR\004ha" + - "sh\022\024\n\005round\030\002 \001(\005R\005round\022\036\n\ncommitters\030\003" + - " \003(\005R\ncommitters\022\034\n\tabsentees\030\004 \003(\005R\tabs" + - "entees\022\034\n\tsignature\030\005 \001(\tR\tsignature\"\261\001\n" + - "\010VoteInfo\022$\n\004type\030\001 \001(\0162\020.pactus.VoteTyp" + - "eR\004type\022\024\n\005voter\030\002 \001(\tR\005voter\022\035\n\nblock_h" + - "ash\030\003 \001(\tR\tblockHash\022\024\n\005round\030\004 \001(\005R\005rou" + - "nd\022\031\n\010cp_round\030\005 \001(\005R\007cpRound\022\031\n\010cp_valu" + - "e\030\006 \001(\005R\007cpValue\"\227\001\n\rConsensusInfo\022\030\n\007ad" + - "dress\030\001 \001(\tR\007address\022\026\n\006active\030\002 \001(\010R\006ac" + - "tive\022\026\n\006height\030\003 \001(\rR\006height\022\024\n\005round\030\004 " + - "\001(\005R\005round\022&\n\005votes\030\005 \003(\0132\020.pactus.VoteI" + - "nfoR\005votes*H\n\016BlockVerbosity\022\016\n\nBLOCK_DA" + - "TA\020\000\022\016\n\nBLOCK_INFO\020\001\022\026\n\022BLOCK_TRANSACTIO" + - "NS\020\002*\\\n\010VoteType\022\020\n\014VOTE_UNKNOWN\020\000\022\020\n\014VO" + - "TE_PREPARE\020\001\022\022\n\016VOTE_PRECOMMIT\020\002\022\030\n\024VOTE" + - "_CHANGE_PROPOSER\020\0032\213\007\n\nBlockchain\022=\n\010Get" + - "Block\022\027.pactus.GetBlockRequest\032\030.pactus." + - "GetBlockResponse\022I\n\014GetBlockHash\022\033.pactu" + - "s.GetBlockHashRequest\032\034.pactus.GetBlockH" + - "ashResponse\022O\n\016GetBlockHeight\022\035.pactus.G" + - "etBlockHeightRequest\032\036.pactus.GetBlockHe" + - "ightResponse\022X\n\021GetBlockchainInfo\022 .pact" + - "us.GetBlockchainInfoRequest\032!.pactus.Get" + - "BlockchainInfoResponse\022U\n\020GetConsensusIn" + - "fo\022\037.pactus.GetConsensusInfoRequest\032 .pa" + - "ctus.GetConsensusInfoResponse\022C\n\nGetAcco" + - "unt\022\031.pactus.GetAccountRequest\032\032.pactus." + - "GetAccountResponse\022I\n\014GetValidator\022\033.pac" + - "tus.GetValidatorRequest\032\034.pactus.GetVali" + - "datorResponse\022Y\n\024GetValidatorByNumber\022#." + - "pactus.GetValidatorByNumberRequest\032\034.pac" + - "tus.GetValidatorResponse\022d\n\025GetValidator" + - "Addresses\022$.pactus.GetValidatorAddresses" + - "Request\032%.pactus.GetValidatorAddressesRe" + - "sponse\022I\n\014GetPublicKey\022\033.pactus.GetPubli" + - "cKeyRequest\032\034.pactus.GetPublicKeyRespons" + - "e\022U\n\020GetTxPoolContent\022\037.pactus.GetTxPool" + - "ContentRequest\032 .pactus.GetTxPoolContent" + - "ResponseBE\n\021pactus.blockchainZ0github.co" + - "m/pactus-project/pactus/www/grpc/pactusb" + - "\006proto3" + "ommitteeValidators\022\033\n\tis_pruned\030\010 \001(\010R\010i" + + "sPruned\022%\n\016pruning_height\030\t \001(\005R\rpruning" + + "Height\"\031\n\027GetConsensusInfoRequest\"O\n\030Get" + + "ConsensusInfoResponse\0223\n\tinstances\030\001 \003(\013" + + "2\025.pactus.ConsensusInfoR\tinstances\"Q\n\027Ge" + + "tTxPoolContentRequest\0226\n\014payload_type\030\001 " + + "\001(\0162\023.pactus.PayloadTypeR\013payloadType\"E\n" + + "\030GetTxPoolContentResponse\022)\n\003txs\030\001 \003(\0132\027" + + ".pactus.TransactionInfoR\003txs\"\334\002\n\rValidat" + + "orInfo\022\022\n\004hash\030\001 \001(\tR\004hash\022\022\n\004data\030\002 \001(\t" + + "R\004data\022\035\n\npublic_key\030\003 \001(\tR\tpublicKey\022\026\n" + + "\006number\030\004 \001(\005R\006number\022\024\n\005stake\030\005 \001(\003R\005st" + + "ake\022.\n\023last_bonding_height\030\006 \001(\rR\021lastBo" + + "ndingHeight\0222\n\025last_sortition_height\030\007 \001" + + "(\rR\023lastSortitionHeight\022)\n\020unbonding_hei" + + "ght\030\010 \001(\rR\017unbondingHeight\022\030\n\007address\030\t " + + "\001(\tR\007address\022-\n\022availability_score\030\n \001(\001" + + "R\021availabilityScore\"\201\001\n\013AccountInfo\022\022\n\004h" + + "ash\030\001 \001(\tR\004hash\022\022\n\004data\030\002 \001(\tR\004data\022\026\n\006n" + + "umber\030\003 \001(\005R\006number\022\030\n\007balance\030\004 \001(\003R\007ba" + + "lance\022\030\n\007address\030\005 \001(\tR\007address\"\304\001\n\017Bloc" + + "kHeaderInfo\022\030\n\007version\030\001 \001(\005R\007version\022&\n" + + "\017prev_block_hash\030\002 \001(\tR\rprevBlockHash\022\035\n" + + "\nstate_root\030\003 \001(\tR\tstateRoot\022%\n\016sortitio" + + "n_seed\030\004 \001(\tR\rsortitionSeed\022)\n\020proposer_" + + "address\030\005 \001(\tR\017proposerAddress\"\227\001\n\017Certi" + + "ficateInfo\022\022\n\004hash\030\001 \001(\tR\004hash\022\024\n\005round\030" + + "\002 \001(\005R\005round\022\036\n\ncommitters\030\003 \003(\005R\ncommit" + + "ters\022\034\n\tabsentees\030\004 \003(\005R\tabsentees\022\034\n\tsi" + + "gnature\030\005 \001(\tR\tsignature\"\261\001\n\010VoteInfo\022$\n" + + "\004type\030\001 \001(\0162\020.pactus.VoteTypeR\004type\022\024\n\005v" + + "oter\030\002 \001(\tR\005voter\022\035\n\nblock_hash\030\003 \001(\tR\tb" + + "lockHash\022\024\n\005round\030\004 \001(\005R\005round\022\031\n\010cp_rou" + + "nd\030\005 \001(\005R\007cpRound\022\031\n\010cp_value\030\006 \001(\005R\007cpV" + + "alue\"\227\001\n\rConsensusInfo\022\030\n\007address\030\001 \001(\tR" + + "\007address\022\026\n\006active\030\002 \001(\010R\006active\022\026\n\006heig" + + "ht\030\003 \001(\rR\006height\022\024\n\005round\030\004 \001(\005R\005round\022&" + + "\n\005votes\030\005 \003(\0132\020.pactus.VoteInfoR\005votes*H" + + "\n\016BlockVerbosity\022\016\n\nBLOCK_DATA\020\000\022\016\n\nBLOC" + + "K_INFO\020\001\022\026\n\022BLOCK_TRANSACTIONS\020\002*\\\n\010Vote" + + "Type\022\020\n\014VOTE_UNKNOWN\020\000\022\020\n\014VOTE_PREPARE\020\001" + + "\022\022\n\016VOTE_PRECOMMIT\020\002\022\030\n\024VOTE_CHANGE_PROP" + + "OSER\020\0032\213\007\n\nBlockchain\022=\n\010GetBlock\022\027.pact" + + "us.GetBlockRequest\032\030.pactus.GetBlockResp" + + "onse\022I\n\014GetBlockHash\022\033.pactus.GetBlockHa" + + "shRequest\032\034.pactus.GetBlockHashResponse\022" + + "O\n\016GetBlockHeight\022\035.pactus.GetBlockHeigh" + + "tRequest\032\036.pactus.GetBlockHeightResponse" + + "\022X\n\021GetBlockchainInfo\022 .pactus.GetBlockc" + + "hainInfoRequest\032!.pactus.GetBlockchainIn" + + "foResponse\022U\n\020GetConsensusInfo\022\037.pactus." + + "GetConsensusInfoRequest\032 .pactus.GetCons" + + "ensusInfoResponse\022C\n\nGetAccount\022\031.pactus" + + ".GetAccountRequest\032\032.pactus.GetAccountRe" + + "sponse\022I\n\014GetValidator\022\033.pactus.GetValid" + + "atorRequest\032\034.pactus.GetValidatorRespons" + + "e\022Y\n\024GetValidatorByNumber\022#.pactus.GetVa" + + "lidatorByNumberRequest\032\034.pactus.GetValid" + + "atorResponse\022d\n\025GetValidatorAddresses\022$." + + "pactus.GetValidatorAddressesRequest\032%.pa" + + "ctus.GetValidatorAddressesResponse\022I\n\014Ge" + + "tPublicKey\022\033.pactus.GetPublicKeyRequest\032" + + "\034.pactus.GetPublicKeyResponse\022U\n\020GetTxPo" + + "olContent\022\037.pactus.GetTxPoolContentReque" + + "st\032 .pactus.GetTxPoolContentResponseBE\n\021" + + "pactus.blockchainZ0github.com/pactus-pro" + + "ject/pactus/www/grpc/pactusb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -23441,7 +23623,7 @@ public pactus.blockchain.BlockchainOuterClass.ConsensusInfo getDefaultInstanceFo internal_static_pactus_GetBlockchainInfoResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_pactus_GetBlockchainInfoResponse_descriptor, - new java.lang.String[] { "LastBlockHeight", "LastBlockHash", "TotalAccounts", "TotalValidators", "TotalPower", "CommitteePower", "CommitteeValidators", }); + new java.lang.String[] { "LastBlockHeight", "LastBlockHash", "TotalAccounts", "TotalValidators", "TotalPower", "CommitteePower", "CommitteeValidators", "IsPruned", "PruningHeight", }); internal_static_pactus_GetConsensusInfoRequest_descriptor = getDescriptor().getMessageTypes().get(17); internal_static_pactus_GetConsensusInfoRequest_fieldAccessorTable = new diff --git a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java index 178b105d6..e9f7b041f 100644 --- a/www/grpc/gen/java/pactus/network/NetworkOuterClass.java +++ b/www/grpc/gen/java/pactus/network/NetworkOuterClass.java @@ -3209,26 +3209,6 @@ public interface GetNodeInfoResponseOrBuilder extends com.google.protobuf.ByteString getProtocolsBytes(int index); - /** - *
-     * If the blocks are subject to pruning.
-     * 
- * - * bool is_pruned = 10 [json_name = "isPruned"]; - * @return The isPruned. - */ - boolean getIsPruned(); - - /** - *
-     * Lowest-height block stored (only present if pruning is enabled)
-     * 
- * - * int32 pruning_height = 11 [json_name = "pruningHeight"]; - * @return The pruningHeight. - */ - int getPruningHeight(); - /** *
      * Clock offset of the node.
@@ -3679,36 +3659,6 @@ public java.lang.String getProtocols(int index) {
       return protocols_.getByteString(index);
     }
 
-    public static final int IS_PRUNED_FIELD_NUMBER = 10;
-    private boolean isPruned_;
-    /**
-     * 
-     * If the blocks are subject to pruning.
-     * 
- * - * bool is_pruned = 10 [json_name = "isPruned"]; - * @return The isPruned. - */ - @java.lang.Override - public boolean getIsPruned() { - return isPruned_; - } - - public static final int PRUNING_HEIGHT_FIELD_NUMBER = 11; - private int pruningHeight_; - /** - *
-     * Lowest-height block stored (only present if pruning is enabled)
-     * 
- * - * int32 pruning_height = 11 [json_name = "pruningHeight"]; - * @return The pruningHeight. - */ - @java.lang.Override - public int getPruningHeight() { - return pruningHeight_; - } - public static final int CLOCK_OFFSET_FIELD_NUMBER = 13; private double clockOffset_; /** @@ -3803,12 +3753,6 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < protocols_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 9, protocols_.getRaw(i)); } - if (isPruned_ != false) { - output.writeBool(10, isPruned_); - } - if (pruningHeight_ != 0) { - output.writeInt32(11, pruningHeight_); - } if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { output.writeDouble(13, clockOffset_); } @@ -3863,14 +3807,6 @@ public int getSerializedSize() { size += dataSize; size += 1 * getProtocolsList().size(); } - if (isPruned_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(10, isPruned_); - } - if (pruningHeight_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(11, pruningHeight_); - } if (java.lang.Double.doubleToRawLongBits(clockOffset_) != 0) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(13, clockOffset_); @@ -3912,10 +3848,6 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getLocalAddrsList())) return false; if (!getProtocolsList() .equals(other.getProtocolsList())) return false; - if (getIsPruned() - != other.getIsPruned()) return false; - if (getPruningHeight() - != other.getPruningHeight()) return false; if (java.lang.Double.doubleToLongBits(getClockOffset()) != java.lang.Double.doubleToLongBits( other.getClockOffset())) return false; @@ -3958,11 +3890,6 @@ public int hashCode() { hash = (37 * hash) + PROTOCOLS_FIELD_NUMBER; hash = (53 * hash) + getProtocolsList().hashCode(); } - hash = (37 * hash) + IS_PRUNED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsPruned()); - hash = (37 * hash) + PRUNING_HEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getPruningHeight(); hash = (37 * hash) + CLOCK_OFFSET_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( java.lang.Double.doubleToLongBits(getClockOffset())); @@ -4120,10 +4047,6 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000001); protocols_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000002); - isPruned_ = false; - - pruningHeight_ = 0; - clockOffset_ = 0D; if (connectionInfoBuilder_ == null) { @@ -4176,8 +4099,6 @@ public pactus.network.NetworkOuterClass.GetNodeInfoResponse buildPartial() { bitField0_ = (bitField0_ & ~0x00000002); } result.protocols_ = protocols_; - result.isPruned_ = isPruned_; - result.pruningHeight_ = pruningHeight_; result.clockOffset_ = clockOffset_; if (connectionInfoBuilder_ == null) { result.connectionInfo_ = connectionInfo_; @@ -4278,12 +4199,6 @@ public Builder mergeFrom(pactus.network.NetworkOuterClass.GetNodeInfoResponse ot } onChanged(); } - if (other.getIsPruned() != false) { - setIsPruned(other.getIsPruned()); - } - if (other.getPruningHeight() != 0) { - setPruningHeight(other.getPruningHeight()); - } if (other.getClockOffset() != 0D) { setClockOffset(other.getClockOffset()); } @@ -4363,16 +4278,6 @@ public Builder mergeFrom( protocols_.add(s); break; } // case 74 - case 80: { - isPruned_ = input.readBool(); - - break; - } // case 80 - case 88: { - pruningHeight_ = input.readInt32(); - - break; - } // case 88 case 105: { clockOffset_ = input.readDouble(); @@ -5260,92 +5165,6 @@ public Builder addProtocolsBytes( return this; } - private boolean isPruned_ ; - /** - *
-       * If the blocks are subject to pruning.
-       * 
- * - * bool is_pruned = 10 [json_name = "isPruned"]; - * @return The isPruned. - */ - @java.lang.Override - public boolean getIsPruned() { - return isPruned_; - } - /** - *
-       * If the blocks are subject to pruning.
-       * 
- * - * bool is_pruned = 10 [json_name = "isPruned"]; - * @param value The isPruned to set. - * @return This builder for chaining. - */ - public Builder setIsPruned(boolean value) { - - isPruned_ = value; - onChanged(); - return this; - } - /** - *
-       * If the blocks are subject to pruning.
-       * 
- * - * bool is_pruned = 10 [json_name = "isPruned"]; - * @return This builder for chaining. - */ - public Builder clearIsPruned() { - - isPruned_ = false; - onChanged(); - return this; - } - - private int pruningHeight_ ; - /** - *
-       * Lowest-height block stored (only present if pruning is enabled)
-       * 
- * - * int32 pruning_height = 11 [json_name = "pruningHeight"]; - * @return The pruningHeight. - */ - @java.lang.Override - public int getPruningHeight() { - return pruningHeight_; - } - /** - *
-       * Lowest-height block stored (only present if pruning is enabled)
-       * 
- * - * int32 pruning_height = 11 [json_name = "pruningHeight"]; - * @param value The pruningHeight to set. - * @return This builder for chaining. - */ - public Builder setPruningHeight(int value) { - - pruningHeight_ = value; - onChanged(); - return this; - } - /** - *
-       * Lowest-height block stored (only present if pruning is enabled)
-       * 
- * - * int32 pruning_height = 11 [json_name = "pruningHeight"]; - * @return This builder for chaining. - */ - public Builder clearPruningHeight() { - - pruningHeight_ = 0; - onChanged(); - return this; - } - private double clockOffset_ ; /** *
@@ -10256,7 +10075,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType
       "\032<\n\016SentBytesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005" +
       "value\030\002 \001(\003R\005value:\0028\001\032@\n\022ReceivedBytesE" +
       "ntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005value\030\002 \001(\003R\005v" +
-      "alue:\0028\001\"\024\n\022GetNodeInfoRequest\"\313\003\n\023GetNo" +
+      "alue:\0028\001\"\024\n\022GetNodeInfoRequest\"\207\003\n\023GetNo" +
       "deInfoResponse\022\030\n\007moniker\030\001 \001(\tR\007moniker" +
       "\022\024\n\005agent\030\002 \001(\tR\005agent\022\027\n\007peer_id\030\003 \001(\tR" +
       "\006peerId\022\035\n\nstarted_at\030\004 \001(\004R\tstartedAt\022\"" +
@@ -10264,43 +10083,41 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType
       "rvices\030\006 \001(\005R\010services\022%\n\016services_names" +
       "\030\007 \001(\tR\rservicesNames\022\037\n\013local_addrs\030\010 \003" +
       "(\tR\nlocalAddrs\022\034\n\tprotocols\030\t \003(\tR\tproto" +
-      "cols\022\033\n\tis_pruned\030\n \001(\010R\010isPruned\022%\n\016pru" +
-      "ning_height\030\013 \001(\005R\rpruningHeight\022!\n\014cloc" +
-      "k_offset\030\r \001(\001R\013clockOffset\022?\n\017connectio" +
-      "n_info\030\016 \001(\0132\026.pactus.ConnectionInfoR\016co" +
-      "nnectionInfo\"\355\006\n\010PeerInfo\022\026\n\006status\030\001 \001(" +
-      "\005R\006status\022\030\n\007moniker\030\002 \001(\tR\007moniker\022\024\n\005a" +
-      "gent\030\003 \001(\tR\005agent\022\027\n\007peer_id\030\004 \001(\tR\006peer" +
-      "Id\022%\n\016consensus_keys\030\005 \003(\tR\rconsensusKey" +
-      "s\022/\n\023consensus_addresses\030\006 \003(\tR\022consensu" +
-      "sAddresses\022\032\n\010services\030\007 \001(\rR\010services\022&" +
-      "\n\017last_block_hash\030\010 \001(\tR\rlastBlockHash\022\026" +
-      "\n\006height\030\t \001(\rR\006height\022)\n\020received_bundl" +
-      "es\030\n \001(\005R\017receivedBundles\022\'\n\017invalid_bun" +
-      "dles\030\013 \001(\005R\016invalidBundles\022\033\n\tlast_sent\030" +
-      "\014 \001(\003R\010lastSent\022#\n\rlast_received\030\r \001(\003R\014" +
-      "lastReceived\022>\n\nsent_bytes\030\016 \003(\0132\037.pactu" +
-      "s.PeerInfo.SentBytesEntryR\tsentBytes\022J\n\016" +
-      "received_bytes\030\017 \003(\0132#.pactus.PeerInfo.R" +
-      "eceivedBytesEntryR\rreceivedBytes\022\030\n\007addr" +
-      "ess\030\020 \001(\tR\007address\022\034\n\tdirection\030\021 \001(\tR\td" +
-      "irection\022\034\n\tprotocols\030\022 \003(\tR\tprotocols\022%" +
-      "\n\016total_sessions\030\023 \001(\005R\rtotalSessions\022-\n" +
-      "\022completed_sessions\030\024 \001(\005R\021completedSess" +
-      "ions\032<\n\016SentBytesEntry\022\020\n\003key\030\001 \001(\005R\003key" +
-      "\022\024\n\005value\030\002 \001(\003R\005value:\0028\001\032@\n\022ReceivedBy" +
-      "tesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024\n\005value\030\002 \001(" +
-      "\003R\005value:\0028\001\"\226\001\n\016ConnectionInfo\022 \n\013conne" +
-      "ctions\030\001 \001(\004R\013connections\022/\n\023inbound_con" +
-      "nections\030\002 \001(\004R\022inboundConnections\0221\n\024ou" +
-      "tbound_connections\030\003 \001(\004R\023outboundConnec" +
-      "tions2\242\001\n\007Network\022O\n\016GetNetworkInfo\022\035.pa" +
-      "ctus.GetNetworkInfoRequest\032\036.pactus.GetN" +
-      "etworkInfoResponse\022F\n\013GetNodeInfo\022\032.pact" +
-      "us.GetNodeInfoRequest\032\033.pactus.GetNodeIn" +
-      "foResponseBB\n\016pactus.networkZ0github.com" +
-      "/pactus-project/pactus/www/grpc/pactusb\006" +
-      "proto3"
+      "cols\022!\n\014clock_offset\030\r \001(\001R\013clockOffset\022" +
+      "?\n\017connection_info\030\016 \001(\0132\026.pactus.Connec" +
+      "tionInfoR\016connectionInfo\"\355\006\n\010PeerInfo\022\026\n" +
+      "\006status\030\001 \001(\005R\006status\022\030\n\007moniker\030\002 \001(\tR\007" +
+      "moniker\022\024\n\005agent\030\003 \001(\tR\005agent\022\027\n\007peer_id" +
+      "\030\004 \001(\tR\006peerId\022%\n\016consensus_keys\030\005 \003(\tR\r" +
+      "consensusKeys\022/\n\023consensus_addresses\030\006 \003" +
+      "(\tR\022consensusAddresses\022\032\n\010services\030\007 \001(\r" +
+      "R\010services\022&\n\017last_block_hash\030\010 \001(\tR\rlas" +
+      "tBlockHash\022\026\n\006height\030\t \001(\rR\006height\022)\n\020re" +
+      "ceived_bundles\030\n \001(\005R\017receivedBundles\022\'\n" +
+      "\017invalid_bundles\030\013 \001(\005R\016invalidBundles\022\033" +
+      "\n\tlast_sent\030\014 \001(\003R\010lastSent\022#\n\rlast_rece" +
+      "ived\030\r \001(\003R\014lastReceived\022>\n\nsent_bytes\030\016" +
+      " \003(\0132\037.pactus.PeerInfo.SentBytesEntryR\ts" +
+      "entBytes\022J\n\016received_bytes\030\017 \003(\0132#.pactu" +
+      "s.PeerInfo.ReceivedBytesEntryR\rreceivedB" +
+      "ytes\022\030\n\007address\030\020 \001(\tR\007address\022\034\n\tdirect" +
+      "ion\030\021 \001(\tR\tdirection\022\034\n\tprotocols\030\022 \003(\tR" +
+      "\tprotocols\022%\n\016total_sessions\030\023 \001(\005R\rtota" +
+      "lSessions\022-\n\022completed_sessions\030\024 \001(\005R\021c" +
+      "ompletedSessions\032<\n\016SentBytesEntry\022\020\n\003ke" +
+      "y\030\001 \001(\005R\003key\022\024\n\005value\030\002 \001(\003R\005value:\0028\001\032@" +
+      "\n\022ReceivedBytesEntry\022\020\n\003key\030\001 \001(\005R\003key\022\024" +
+      "\n\005value\030\002 \001(\003R\005value:\0028\001\"\226\001\n\016ConnectionI" +
+      "nfo\022 \n\013connections\030\001 \001(\004R\013connections\022/\n" +
+      "\023inbound_connections\030\002 \001(\004R\022inboundConne" +
+      "ctions\0221\n\024outbound_connections\030\003 \001(\004R\023ou" +
+      "tboundConnections2\242\001\n\007Network\022O\n\016GetNetw" +
+      "orkInfo\022\035.pactus.GetNetworkInfoRequest\032\036" +
+      ".pactus.GetNetworkInfoResponse\022F\n\013GetNod" +
+      "eInfo\022\032.pactus.GetNodeInfoRequest\032\033.pact" +
+      "us.GetNodeInfoResponseBB\n\016pactus.network" +
+      "Z0github.com/pactus-project/pactus/www/g" +
+      "rpc/pactusb\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -10341,7 +10158,7 @@ public pactus.network.NetworkOuterClass.ConnectionInfo getDefaultInstanceForType
     internal_static_pactus_GetNodeInfoResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_pactus_GetNodeInfoResponse_descriptor,
-        new java.lang.String[] { "Moniker", "Agent", "PeerId", "StartedAt", "Reachability", "Services", "ServicesNames", "LocalAddrs", "Protocols", "IsPruned", "PruningHeight", "ClockOffset", "ConnectionInfo", });
+        new java.lang.String[] { "Moniker", "Agent", "PeerId", "StartedAt", "Reachability", "Services", "ServicesNames", "LocalAddrs", "Protocols", "ClockOffset", "ConnectionInfo", });
     internal_static_pactus_PeerInfo_descriptor =
       getDescriptor().getMessageTypes().get(4);
     internal_static_pactus_PeerInfo_fieldAccessorTable = new
diff --git a/www/grpc/gen/js/blockchain_pb.js b/www/grpc/gen/js/blockchain_pb.js
index 89e04b5f0..8bde73a8d 100644
--- a/www/grpc/gen/js/blockchain_pb.js
+++ b/www/grpc/gen/js/blockchain_pb.js
@@ -3037,7 +3037,9 @@ proto.pactus.GetBlockchainInfoResponse.toObject = function(includeInstance, msg)
     totalPower: jspb.Message.getFieldWithDefault(msg, 5, 0),
     committeePower: jspb.Message.getFieldWithDefault(msg, 6, 0),
     committeeValidatorsList: jspb.Message.toObjectList(msg.getCommitteeValidatorsList(),
-    proto.pactus.ValidatorInfo.toObject, includeInstance)
+    proto.pactus.ValidatorInfo.toObject, includeInstance),
+    isPruned: jspb.Message.getBooleanFieldWithDefault(msg, 8, false),
+    pruningHeight: jspb.Message.getFieldWithDefault(msg, 9, 0)
   };
 
   if (includeInstance) {
@@ -3103,6 +3105,14 @@ proto.pactus.GetBlockchainInfoResponse.deserializeBinaryFromReader = function(ms
       reader.readMessage(value,proto.pactus.ValidatorInfo.deserializeBinaryFromReader);
       msg.addCommitteeValidators(value);
       break;
+    case 8:
+      var value = /** @type {boolean} */ (reader.readBool());
+      msg.setIsPruned(value);
+      break;
+    case 9:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setPruningHeight(value);
+      break;
     default:
       reader.skipField();
       break;
@@ -3182,6 +3192,20 @@ proto.pactus.GetBlockchainInfoResponse.serializeBinaryToWriter = function(messag
       proto.pactus.ValidatorInfo.serializeBinaryToWriter
     );
   }
+  f = message.getIsPruned();
+  if (f) {
+    writer.writeBool(
+      8,
+      f
+    );
+  }
+  f = message.getPruningHeight();
+  if (f !== 0) {
+    writer.writeInt32(
+      9,
+      f
+    );
+  }
 };
 
 
@@ -3331,6 +3355,42 @@ proto.pactus.GetBlockchainInfoResponse.prototype.clearCommitteeValidatorsList =
 };
 
 
+/**
+ * optional bool is_pruned = 8;
+ * @return {boolean}
+ */
+proto.pactus.GetBlockchainInfoResponse.prototype.getIsPruned = function() {
+  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
+};
+
+
+/**
+ * @param {boolean} value
+ * @return {!proto.pactus.GetBlockchainInfoResponse} returns this
+ */
+proto.pactus.GetBlockchainInfoResponse.prototype.setIsPruned = function(value) {
+  return jspb.Message.setProto3BooleanField(this, 8, value);
+};
+
+
+/**
+ * optional int32 pruning_height = 9;
+ * @return {number}
+ */
+proto.pactus.GetBlockchainInfoResponse.prototype.getPruningHeight = function() {
+  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
+};
+
+
+/**
+ * @param {number} value
+ * @return {!proto.pactus.GetBlockchainInfoResponse} returns this
+ */
+proto.pactus.GetBlockchainInfoResponse.prototype.setPruningHeight = function(value) {
+  return jspb.Message.setProto3IntField(this, 9, value);
+};
+
+
 
 
 
diff --git a/www/grpc/gen/js/network_pb.js b/www/grpc/gen/js/network_pb.js
index 7afb9146a..b761863d4 100644
--- a/www/grpc/gen/js/network_pb.js
+++ b/www/grpc/gen/js/network_pb.js
@@ -780,8 +780,6 @@ proto.pactus.GetNodeInfoResponse.toObject = function(includeInstance, msg) {
     servicesNames: jspb.Message.getFieldWithDefault(msg, 7, ""),
     localAddrsList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,
     protocolsList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f,
-    isPruned: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
-    pruningHeight: jspb.Message.getFieldWithDefault(msg, 11, 0),
     clockOffset: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0),
     connectionInfo: (f = msg.getConnectionInfo()) && proto.pactus.ConnectionInfo.toObject(includeInstance, f)
   };
@@ -856,14 +854,6 @@ proto.pactus.GetNodeInfoResponse.deserializeBinaryFromReader = function(msg, rea
       var value = /** @type {string} */ (reader.readString());
       msg.addProtocols(value);
       break;
-    case 10:
-      var value = /** @type {boolean} */ (reader.readBool());
-      msg.setIsPruned(value);
-      break;
-    case 11:
-      var value = /** @type {number} */ (reader.readInt32());
-      msg.setPruningHeight(value);
-      break;
     case 13:
       var value = /** @type {number} */ (reader.readDouble());
       msg.setClockOffset(value);
@@ -965,20 +955,6 @@ proto.pactus.GetNodeInfoResponse.serializeBinaryToWriter = function(message, wri
       f
     );
   }
-  f = message.getIsPruned();
-  if (f) {
-    writer.writeBool(
-      10,
-      f
-    );
-  }
-  f = message.getPruningHeight();
-  if (f !== 0) {
-    writer.writeInt32(
-      11,
-      f
-    );
-  }
   f = message.getClockOffset();
   if (f !== 0.0) {
     writer.writeDouble(
@@ -1197,42 +1173,6 @@ proto.pactus.GetNodeInfoResponse.prototype.clearProtocolsList = function() {
 };
 
 
-/**
- * optional bool is_pruned = 10;
- * @return {boolean}
- */
-proto.pactus.GetNodeInfoResponse.prototype.getIsPruned = function() {
-  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
-};
-
-
-/**
- * @param {boolean} value
- * @return {!proto.pactus.GetNodeInfoResponse} returns this
- */
-proto.pactus.GetNodeInfoResponse.prototype.setIsPruned = function(value) {
-  return jspb.Message.setProto3BooleanField(this, 10, value);
-};
-
-
-/**
- * optional int32 pruning_height = 11;
- * @return {number}
- */
-proto.pactus.GetNodeInfoResponse.prototype.getPruningHeight = function() {
-  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
-};
-
-
-/**
- * @param {number} value
- * @return {!proto.pactus.GetNodeInfoResponse} returns this
- */
-proto.pactus.GetNodeInfoResponse.prototype.setPruningHeight = function(value) {
-  return jspb.Message.setProto3IntField(this, 11, value);
-};
-
-
 /**
  * optional double clock_offset = 13;
  * @return {number}
diff --git a/www/grpc/gen/python/blockchain_pb2.py b/www/grpc/gen/python/blockchain_pb2.py
index 24ce3e74f..291bc02cd 100644
--- a/www/grpc/gen/python/blockchain_pb2.py
+++ b/www/grpc/gen/python/blockchain_pb2.py
@@ -14,7 +14,7 @@
 import transaction_pb2 as transaction__pb2
 
 
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x62lockchain.proto\x12\x06pactus\x1a\x11transaction.proto\"-\n\x11GetAccountRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"C\n\x12GetAccountResponse\x12-\n\x07\x61\x63\x63ount\x18\x01 \x01(\x0b\x32\x13.pactus.AccountInfoR\x07\x61\x63\x63ount\"\x1e\n\x1cGetValidatorAddressesRequest\"=\n\x1dGetValidatorAddressesResponse\x12\x1c\n\taddresses\x18\x01 \x03(\tR\taddresses\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"5\n\x1bGetValidatorByNumberRequest\x12\x16\n\x06number\x18\x01 \x01(\x05R\x06number\"K\n\x14GetValidatorResponse\x12\x33\n\tvalidator\x18\x01 \x01(\x0b\x32\x15.pactus.ValidatorInfoR\tvalidator\"/\n\x13GetPublicKeyRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"5\n\x14GetPublicKeyResponse\x12\x1d\n\npublic_key\x18\x01 \x01(\tR\tpublicKey\"_\n\x0fGetBlockRequest\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\x12\x34\n\tverbosity\x18\x02 \x01(\x0e\x32\x16.pactus.BlockVerbosityR\tverbosity\"\x83\x02\n\x10GetBlockResponse\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\tR\x04\x64\x61ta\x12\x1d\n\nblock_time\x18\x04 \x01(\rR\tblockTime\x12/\n\x06header\x18\x05 \x01(\x0b\x32\x17.pactus.BlockHeaderInfoR\x06header\x12\x34\n\tprev_cert\x18\x06 \x01(\x0b\x32\x17.pactus.CertificateInfoR\x08prevCert\x12)\n\x03txs\x18\x07 \x03(\x0b\x32\x17.pactus.TransactionInfoR\x03txs\"-\n\x13GetBlockHashRequest\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\"*\n\x14GetBlockHashResponse\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"+\n\x15GetBlockHeightRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"0\n\x16GetBlockHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\"\x1a\n\x18GetBlockchainInfoRequest\"\xd5\x02\n\x19GetBlockchainInfoResponse\x12*\n\x11last_block_height\x18\x01 \x01(\rR\x0flastBlockHeight\x12&\n\x0flast_block_hash\x18\x02 \x01(\tR\rlastBlockHash\x12%\n\x0etotal_accounts\x18\x03 \x01(\x05R\rtotalAccounts\x12)\n\x10total_validators\x18\x04 \x01(\x05R\x0ftotalValidators\x12\x1f\n\x0btotal_power\x18\x05 \x01(\x03R\ntotalPower\x12\'\n\x0f\x63ommittee_power\x18\x06 \x01(\x03R\x0e\x63ommitteePower\x12H\n\x14\x63ommittee_validators\x18\x07 \x03(\x0b\x32\x15.pactus.ValidatorInfoR\x13\x63ommitteeValidators\"\x19\n\x17GetConsensusInfoRequest\"O\n\x18GetConsensusInfoResponse\x12\x33\n\tinstances\x18\x01 \x03(\x0b\x32\x15.pactus.ConsensusInfoR\tinstances\"Q\n\x17GetTxPoolContentRequest\x12\x36\n\x0cpayload_type\x18\x01 \x01(\x0e\x32\x13.pactus.PayloadTypeR\x0bpayloadType\"E\n\x18GetTxPoolContentResponse\x12)\n\x03txs\x18\x01 \x03(\x0b\x32\x17.pactus.TransactionInfoR\x03txs\"\xdc\x02\n\rValidatorInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\tR\x04\x64\x61ta\x12\x1d\n\npublic_key\x18\x03 \x01(\tR\tpublicKey\x12\x16\n\x06number\x18\x04 \x01(\x05R\x06number\x12\x14\n\x05stake\x18\x05 \x01(\x03R\x05stake\x12.\n\x13last_bonding_height\x18\x06 \x01(\rR\x11lastBondingHeight\x12\x32\n\x15last_sortition_height\x18\x07 \x01(\rR\x13lastSortitionHeight\x12)\n\x10unbonding_height\x18\x08 \x01(\rR\x0funbondingHeight\x12\x18\n\x07\x61\x64\x64ress\x18\t \x01(\tR\x07\x61\x64\x64ress\x12-\n\x12\x61vailability_score\x18\n \x01(\x01R\x11\x61vailabilityScore\"\x81\x01\n\x0b\x41\x63\x63ountInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\tR\x04\x64\x61ta\x12\x16\n\x06number\x18\x03 \x01(\x05R\x06number\x12\x18\n\x07\x62\x61lance\x18\x04 \x01(\x03R\x07\x62\x61lance\x12\x18\n\x07\x61\x64\x64ress\x18\x05 \x01(\tR\x07\x61\x64\x64ress\"\xc4\x01\n\x0f\x42lockHeaderInfo\x12\x18\n\x07version\x18\x01 \x01(\x05R\x07version\x12&\n\x0fprev_block_hash\x18\x02 \x01(\tR\rprevBlockHash\x12\x1d\n\nstate_root\x18\x03 \x01(\tR\tstateRoot\x12%\n\x0esortition_seed\x18\x04 \x01(\tR\rsortitionSeed\x12)\n\x10proposer_address\x18\x05 \x01(\tR\x0fproposerAddress\"\x97\x01\n\x0f\x43\x65rtificateInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x1e\n\ncommitters\x18\x03 \x03(\x05R\ncommitters\x12\x1c\n\tabsentees\x18\x04 \x03(\x05R\tabsentees\x12\x1c\n\tsignature\x18\x05 \x01(\tR\tsignature\"\xb1\x01\n\x08VoteInfo\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x10.pactus.VoteTypeR\x04type\x12\x14\n\x05voter\x18\x02 \x01(\tR\x05voter\x12\x1d\n\nblock_hash\x18\x03 \x01(\tR\tblockHash\x12\x14\n\x05round\x18\x04 \x01(\x05R\x05round\x12\x19\n\x08\x63p_round\x18\x05 \x01(\x05R\x07\x63pRound\x12\x19\n\x08\x63p_value\x18\x06 \x01(\x05R\x07\x63pValue\"\x97\x01\n\rConsensusInfo\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06height\x18\x03 \x01(\rR\x06height\x12\x14\n\x05round\x18\x04 \x01(\x05R\x05round\x12&\n\x05votes\x18\x05 \x03(\x0b\x32\x10.pactus.VoteInfoR\x05votes*H\n\x0e\x42lockVerbosity\x12\x0e\n\nBLOCK_DATA\x10\x00\x12\x0e\n\nBLOCK_INFO\x10\x01\x12\x16\n\x12\x42LOCK_TRANSACTIONS\x10\x02*\\\n\x08VoteType\x12\x10\n\x0cVOTE_UNKNOWN\x10\x00\x12\x10\n\x0cVOTE_PREPARE\x10\x01\x12\x12\n\x0eVOTE_PRECOMMIT\x10\x02\x12\x18\n\x14VOTE_CHANGE_PROPOSER\x10\x03\x32\x8b\x07\n\nBlockchain\x12=\n\x08GetBlock\x12\x17.pactus.GetBlockRequest\x1a\x18.pactus.GetBlockResponse\x12I\n\x0cGetBlockHash\x12\x1b.pactus.GetBlockHashRequest\x1a\x1c.pactus.GetBlockHashResponse\x12O\n\x0eGetBlockHeight\x12\x1d.pactus.GetBlockHeightRequest\x1a\x1e.pactus.GetBlockHeightResponse\x12X\n\x11GetBlockchainInfo\x12 .pactus.GetBlockchainInfoRequest\x1a!.pactus.GetBlockchainInfoResponse\x12U\n\x10GetConsensusInfo\x12\x1f.pactus.GetConsensusInfoRequest\x1a .pactus.GetConsensusInfoResponse\x12\x43\n\nGetAccount\x12\x19.pactus.GetAccountRequest\x1a\x1a.pactus.GetAccountResponse\x12I\n\x0cGetValidator\x12\x1b.pactus.GetValidatorRequest\x1a\x1c.pactus.GetValidatorResponse\x12Y\n\x14GetValidatorByNumber\x12#.pactus.GetValidatorByNumberRequest\x1a\x1c.pactus.GetValidatorResponse\x12\x64\n\x15GetValidatorAddresses\x12$.pactus.GetValidatorAddressesRequest\x1a%.pactus.GetValidatorAddressesResponse\x12I\n\x0cGetPublicKey\x12\x1b.pactus.GetPublicKeyRequest\x1a\x1c.pactus.GetPublicKeyResponse\x12U\n\x10GetTxPoolContent\x12\x1f.pactus.GetTxPoolContentRequest\x1a .pactus.GetTxPoolContentResponseBE\n\x11pactus.blockchainZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x62lockchain.proto\x12\x06pactus\x1a\x11transaction.proto\"-\n\x11GetAccountRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"C\n\x12GetAccountResponse\x12-\n\x07\x61\x63\x63ount\x18\x01 \x01(\x0b\x32\x13.pactus.AccountInfoR\x07\x61\x63\x63ount\"\x1e\n\x1cGetValidatorAddressesRequest\"=\n\x1dGetValidatorAddressesResponse\x12\x1c\n\taddresses\x18\x01 \x03(\tR\taddresses\"/\n\x13GetValidatorRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"5\n\x1bGetValidatorByNumberRequest\x12\x16\n\x06number\x18\x01 \x01(\x05R\x06number\"K\n\x14GetValidatorResponse\x12\x33\n\tvalidator\x18\x01 \x01(\x0b\x32\x15.pactus.ValidatorInfoR\tvalidator\"/\n\x13GetPublicKeyRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\"5\n\x14GetPublicKeyResponse\x12\x1d\n\npublic_key\x18\x01 \x01(\tR\tpublicKey\"_\n\x0fGetBlockRequest\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\x12\x34\n\tverbosity\x18\x02 \x01(\x0e\x32\x16.pactus.BlockVerbosityR\tverbosity\"\x83\x02\n\x10GetBlockResponse\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\x12\x12\n\x04hash\x18\x02 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\tR\x04\x64\x61ta\x12\x1d\n\nblock_time\x18\x04 \x01(\rR\tblockTime\x12/\n\x06header\x18\x05 \x01(\x0b\x32\x17.pactus.BlockHeaderInfoR\x06header\x12\x34\n\tprev_cert\x18\x06 \x01(\x0b\x32\x17.pactus.CertificateInfoR\x08prevCert\x12)\n\x03txs\x18\x07 \x03(\x0b\x32\x17.pactus.TransactionInfoR\x03txs\"-\n\x13GetBlockHashRequest\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\"*\n\x14GetBlockHashResponse\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"+\n\x15GetBlockHeightRequest\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\"0\n\x16GetBlockHeightResponse\x12\x16\n\x06height\x18\x01 \x01(\rR\x06height\"\x1a\n\x18GetBlockchainInfoRequest\"\x99\x03\n\x19GetBlockchainInfoResponse\x12*\n\x11last_block_height\x18\x01 \x01(\rR\x0flastBlockHeight\x12&\n\x0flast_block_hash\x18\x02 \x01(\tR\rlastBlockHash\x12%\n\x0etotal_accounts\x18\x03 \x01(\x05R\rtotalAccounts\x12)\n\x10total_validators\x18\x04 \x01(\x05R\x0ftotalValidators\x12\x1f\n\x0btotal_power\x18\x05 \x01(\x03R\ntotalPower\x12\'\n\x0f\x63ommittee_power\x18\x06 \x01(\x03R\x0e\x63ommitteePower\x12H\n\x14\x63ommittee_validators\x18\x07 \x03(\x0b\x32\x15.pactus.ValidatorInfoR\x13\x63ommitteeValidators\x12\x1b\n\tis_pruned\x18\x08 \x01(\x08R\x08isPruned\x12%\n\x0epruning_height\x18\t \x01(\x05R\rpruningHeight\"\x19\n\x17GetConsensusInfoRequest\"O\n\x18GetConsensusInfoResponse\x12\x33\n\tinstances\x18\x01 \x03(\x0b\x32\x15.pactus.ConsensusInfoR\tinstances\"Q\n\x17GetTxPoolContentRequest\x12\x36\n\x0cpayload_type\x18\x01 \x01(\x0e\x32\x13.pactus.PayloadTypeR\x0bpayloadType\"E\n\x18GetTxPoolContentResponse\x12)\n\x03txs\x18\x01 \x03(\x0b\x32\x17.pactus.TransactionInfoR\x03txs\"\xdc\x02\n\rValidatorInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\tR\x04\x64\x61ta\x12\x1d\n\npublic_key\x18\x03 \x01(\tR\tpublicKey\x12\x16\n\x06number\x18\x04 \x01(\x05R\x06number\x12\x14\n\x05stake\x18\x05 \x01(\x03R\x05stake\x12.\n\x13last_bonding_height\x18\x06 \x01(\rR\x11lastBondingHeight\x12\x32\n\x15last_sortition_height\x18\x07 \x01(\rR\x13lastSortitionHeight\x12)\n\x10unbonding_height\x18\x08 \x01(\rR\x0funbondingHeight\x12\x18\n\x07\x61\x64\x64ress\x18\t \x01(\tR\x07\x61\x64\x64ress\x12-\n\x12\x61vailability_score\x18\n \x01(\x01R\x11\x61vailabilityScore\"\x81\x01\n\x0b\x41\x63\x63ountInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x12\n\x04\x64\x61ta\x18\x02 \x01(\tR\x04\x64\x61ta\x12\x16\n\x06number\x18\x03 \x01(\x05R\x06number\x12\x18\n\x07\x62\x61lance\x18\x04 \x01(\x03R\x07\x62\x61lance\x12\x18\n\x07\x61\x64\x64ress\x18\x05 \x01(\tR\x07\x61\x64\x64ress\"\xc4\x01\n\x0f\x42lockHeaderInfo\x12\x18\n\x07version\x18\x01 \x01(\x05R\x07version\x12&\n\x0fprev_block_hash\x18\x02 \x01(\tR\rprevBlockHash\x12\x1d\n\nstate_root\x18\x03 \x01(\tR\tstateRoot\x12%\n\x0esortition_seed\x18\x04 \x01(\tR\rsortitionSeed\x12)\n\x10proposer_address\x18\x05 \x01(\tR\x0fproposerAddress\"\x97\x01\n\x0f\x43\x65rtificateInfo\x12\x12\n\x04hash\x18\x01 \x01(\tR\x04hash\x12\x14\n\x05round\x18\x02 \x01(\x05R\x05round\x12\x1e\n\ncommitters\x18\x03 \x03(\x05R\ncommitters\x12\x1c\n\tabsentees\x18\x04 \x03(\x05R\tabsentees\x12\x1c\n\tsignature\x18\x05 \x01(\tR\tsignature\"\xb1\x01\n\x08VoteInfo\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x10.pactus.VoteTypeR\x04type\x12\x14\n\x05voter\x18\x02 \x01(\tR\x05voter\x12\x1d\n\nblock_hash\x18\x03 \x01(\tR\tblockHash\x12\x14\n\x05round\x18\x04 \x01(\x05R\x05round\x12\x19\n\x08\x63p_round\x18\x05 \x01(\x05R\x07\x63pRound\x12\x19\n\x08\x63p_value\x18\x06 \x01(\x05R\x07\x63pValue\"\x97\x01\n\rConsensusInfo\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x16\n\x06\x61\x63tive\x18\x02 \x01(\x08R\x06\x61\x63tive\x12\x16\n\x06height\x18\x03 \x01(\rR\x06height\x12\x14\n\x05round\x18\x04 \x01(\x05R\x05round\x12&\n\x05votes\x18\x05 \x03(\x0b\x32\x10.pactus.VoteInfoR\x05votes*H\n\x0e\x42lockVerbosity\x12\x0e\n\nBLOCK_DATA\x10\x00\x12\x0e\n\nBLOCK_INFO\x10\x01\x12\x16\n\x12\x42LOCK_TRANSACTIONS\x10\x02*\\\n\x08VoteType\x12\x10\n\x0cVOTE_UNKNOWN\x10\x00\x12\x10\n\x0cVOTE_PREPARE\x10\x01\x12\x12\n\x0eVOTE_PRECOMMIT\x10\x02\x12\x18\n\x14VOTE_CHANGE_PROPOSER\x10\x03\x32\x8b\x07\n\nBlockchain\x12=\n\x08GetBlock\x12\x17.pactus.GetBlockRequest\x1a\x18.pactus.GetBlockResponse\x12I\n\x0cGetBlockHash\x12\x1b.pactus.GetBlockHashRequest\x1a\x1c.pactus.GetBlockHashResponse\x12O\n\x0eGetBlockHeight\x12\x1d.pactus.GetBlockHeightRequest\x1a\x1e.pactus.GetBlockHeightResponse\x12X\n\x11GetBlockchainInfo\x12 .pactus.GetBlockchainInfoRequest\x1a!.pactus.GetBlockchainInfoResponse\x12U\n\x10GetConsensusInfo\x12\x1f.pactus.GetConsensusInfoRequest\x1a .pactus.GetConsensusInfoResponse\x12\x43\n\nGetAccount\x12\x19.pactus.GetAccountRequest\x1a\x1a.pactus.GetAccountResponse\x12I\n\x0cGetValidator\x12\x1b.pactus.GetValidatorRequest\x1a\x1c.pactus.GetValidatorResponse\x12Y\n\x14GetValidatorByNumber\x12#.pactus.GetValidatorByNumberRequest\x1a\x1c.pactus.GetValidatorResponse\x12\x64\n\x15GetValidatorAddresses\x12$.pactus.GetValidatorAddressesRequest\x1a%.pactus.GetValidatorAddressesResponse\x12I\n\x0cGetPublicKey\x12\x1b.pactus.GetPublicKeyRequest\x1a\x1c.pactus.GetPublicKeyResponse\x12U\n\x10GetTxPoolContent\x12\x1f.pactus.GetTxPoolContentRequest\x1a .pactus.GetTxPoolContentResponseBE\n\x11pactus.blockchainZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3')
 
 _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
 _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'blockchain_pb2', globals())
@@ -22,10 +22,10 @@
 
   DESCRIPTOR._options = None
   DESCRIPTOR._serialized_options = b'\n\021pactus.blockchainZ0github.com/pactus-project/pactus/www/grpc/pactus'
-  _BLOCKVERBOSITY._serialized_start=2892
-  _BLOCKVERBOSITY._serialized_end=2964
-  _VOTETYPE._serialized_start=2966
-  _VOTETYPE._serialized_end=3058
+  _BLOCKVERBOSITY._serialized_start=2960
+  _BLOCKVERBOSITY._serialized_end=3032
+  _VOTETYPE._serialized_start=3034
+  _VOTETYPE._serialized_end=3126
   _GETACCOUNTREQUEST._serialized_start=47
   _GETACCOUNTREQUEST._serialized_end=92
   _GETACCOUNTRESPONSE._serialized_start=94
@@ -59,27 +59,27 @@
   _GETBLOCKCHAININFOREQUEST._serialized_start=1088
   _GETBLOCKCHAININFOREQUEST._serialized_end=1114
   _GETBLOCKCHAININFORESPONSE._serialized_start=1117
-  _GETBLOCKCHAININFORESPONSE._serialized_end=1458
-  _GETCONSENSUSINFOREQUEST._serialized_start=1460
-  _GETCONSENSUSINFOREQUEST._serialized_end=1485
-  _GETCONSENSUSINFORESPONSE._serialized_start=1487
-  _GETCONSENSUSINFORESPONSE._serialized_end=1566
-  _GETTXPOOLCONTENTREQUEST._serialized_start=1568
-  _GETTXPOOLCONTENTREQUEST._serialized_end=1649
-  _GETTXPOOLCONTENTRESPONSE._serialized_start=1651
-  _GETTXPOOLCONTENTRESPONSE._serialized_end=1720
-  _VALIDATORINFO._serialized_start=1723
-  _VALIDATORINFO._serialized_end=2071
-  _ACCOUNTINFO._serialized_start=2074
-  _ACCOUNTINFO._serialized_end=2203
-  _BLOCKHEADERINFO._serialized_start=2206
-  _BLOCKHEADERINFO._serialized_end=2402
-  _CERTIFICATEINFO._serialized_start=2405
-  _CERTIFICATEINFO._serialized_end=2556
-  _VOTEINFO._serialized_start=2559
-  _VOTEINFO._serialized_end=2736
-  _CONSENSUSINFO._serialized_start=2739
-  _CONSENSUSINFO._serialized_end=2890
-  _BLOCKCHAIN._serialized_start=3061
-  _BLOCKCHAIN._serialized_end=3968
+  _GETBLOCKCHAININFORESPONSE._serialized_end=1526
+  _GETCONSENSUSINFOREQUEST._serialized_start=1528
+  _GETCONSENSUSINFOREQUEST._serialized_end=1553
+  _GETCONSENSUSINFORESPONSE._serialized_start=1555
+  _GETCONSENSUSINFORESPONSE._serialized_end=1634
+  _GETTXPOOLCONTENTREQUEST._serialized_start=1636
+  _GETTXPOOLCONTENTREQUEST._serialized_end=1717
+  _GETTXPOOLCONTENTRESPONSE._serialized_start=1719
+  _GETTXPOOLCONTENTRESPONSE._serialized_end=1788
+  _VALIDATORINFO._serialized_start=1791
+  _VALIDATORINFO._serialized_end=2139
+  _ACCOUNTINFO._serialized_start=2142
+  _ACCOUNTINFO._serialized_end=2271
+  _BLOCKHEADERINFO._serialized_start=2274
+  _BLOCKHEADERINFO._serialized_end=2470
+  _CERTIFICATEINFO._serialized_start=2473
+  _CERTIFICATEINFO._serialized_end=2624
+  _VOTEINFO._serialized_start=2627
+  _VOTEINFO._serialized_end=2804
+  _CONSENSUSINFO._serialized_start=2807
+  _CONSENSUSINFO._serialized_end=2958
+  _BLOCKCHAIN._serialized_start=3129
+  _BLOCKCHAIN._serialized_end=4036
 # @@protoc_insertion_point(module_scope)
diff --git a/www/grpc/gen/python/network_pb2.py b/www/grpc/gen/python/network_pb2.py
index 459130ab4..3c67a0b93 100644
--- a/www/grpc/gen/python/network_pb2.py
+++ b/www/grpc/gen/python/network_pb2.py
@@ -13,7 +13,7 @@
 
 
 
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\xcb\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12\x1b\n\tis_pruned\x18\n \x01(\x08R\x08isPruned\x12%\n\x0epruning_height\x18\x0b \x01(\x05R\rpruningHeight\x12!\n\x0c\x63lock_offset\x18\r \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\x0e \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections2\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rnetwork.proto\x12\x06pactus\">\n\x15GetNetworkInfoRequest\x12%\n\x0eonly_connected\x18\x01 \x01(\x08R\ronlyConnected\"\xae\x04\n\x16GetNetworkInfoResponse\x12!\n\x0cnetwork_name\x18\x01 \x01(\tR\x0bnetworkName\x12(\n\x10total_sent_bytes\x18\x02 \x01(\x03R\x0etotalSentBytes\x12\x30\n\x14total_received_bytes\x18\x03 \x01(\x03R\x12totalReceivedBytes\x12\x32\n\x15\x63onnected_peers_count\x18\x04 \x01(\rR\x13\x63onnectedPeersCount\x12\x39\n\x0f\x63onnected_peers\x18\x05 \x03(\x0b\x32\x10.pactus.PeerInfoR\x0e\x63onnectedPeers\x12L\n\nsent_bytes\x18\x06 \x03(\x0b\x32-.pactus.GetNetworkInfoResponse.SentBytesEntryR\tsentBytes\x12X\n\x0ereceived_bytes\x18\x07 \x03(\x0b\x32\x31.pactus.GetNetworkInfoResponse.ReceivedBytesEntryR\rreceivedBytes\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x14\n\x12GetNodeInfoRequest\"\x87\x03\n\x13GetNodeInfoResponse\x12\x18\n\x07moniker\x18\x01 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x02 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x03 \x01(\tR\x06peerId\x12\x1d\n\nstarted_at\x18\x04 \x01(\x04R\tstartedAt\x12\"\n\x0creachability\x18\x05 \x01(\tR\x0creachability\x12\x1a\n\x08services\x18\x06 \x01(\x05R\x08services\x12%\n\x0eservices_names\x18\x07 \x01(\tR\rservicesNames\x12\x1f\n\x0blocal_addrs\x18\x08 \x03(\tR\nlocalAddrs\x12\x1c\n\tprotocols\x18\t \x03(\tR\tprotocols\x12!\n\x0c\x63lock_offset\x18\r \x01(\x01R\x0b\x63lockOffset\x12?\n\x0f\x63onnection_info\x18\x0e \x01(\x0b\x32\x16.pactus.ConnectionInfoR\x0e\x63onnectionInfo\"\xed\x06\n\x08PeerInfo\x12\x16\n\x06status\x18\x01 \x01(\x05R\x06status\x12\x18\n\x07moniker\x18\x02 \x01(\tR\x07moniker\x12\x14\n\x05\x61gent\x18\x03 \x01(\tR\x05\x61gent\x12\x17\n\x07peer_id\x18\x04 \x01(\tR\x06peerId\x12%\n\x0e\x63onsensus_keys\x18\x05 \x03(\tR\rconsensusKeys\x12/\n\x13\x63onsensus_addresses\x18\x06 \x03(\tR\x12\x63onsensusAddresses\x12\x1a\n\x08services\x18\x07 \x01(\rR\x08services\x12&\n\x0flast_block_hash\x18\x08 \x01(\tR\rlastBlockHash\x12\x16\n\x06height\x18\t \x01(\rR\x06height\x12)\n\x10received_bundles\x18\n \x01(\x05R\x0freceivedBundles\x12\'\n\x0finvalid_bundles\x18\x0b \x01(\x05R\x0einvalidBundles\x12\x1b\n\tlast_sent\x18\x0c \x01(\x03R\x08lastSent\x12#\n\rlast_received\x18\r \x01(\x03R\x0clastReceived\x12>\n\nsent_bytes\x18\x0e \x03(\x0b\x32\x1f.pactus.PeerInfo.SentBytesEntryR\tsentBytes\x12J\n\x0ereceived_bytes\x18\x0f \x03(\x0b\x32#.pactus.PeerInfo.ReceivedBytesEntryR\rreceivedBytes\x12\x18\n\x07\x61\x64\x64ress\x18\x10 \x01(\tR\x07\x61\x64\x64ress\x12\x1c\n\tdirection\x18\x11 \x01(\tR\tdirection\x12\x1c\n\tprotocols\x18\x12 \x03(\tR\tprotocols\x12%\n\x0etotal_sessions\x18\x13 \x01(\x05R\rtotalSessions\x12-\n\x12\x63ompleted_sessions\x18\x14 \x01(\x05R\x11\x63ompletedSessions\x1a<\n\x0eSentBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\x1a@\n\x12ReceivedBytesEntry\x12\x10\n\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value:\x02\x38\x01\"\x96\x01\n\x0e\x43onnectionInfo\x12 \n\x0b\x63onnections\x18\x01 \x01(\x04R\x0b\x63onnections\x12/\n\x13inbound_connections\x18\x02 \x01(\x04R\x12inboundConnections\x12\x31\n\x14outbound_connections\x18\x03 \x01(\x04R\x13outboundConnections2\xa2\x01\n\x07Network\x12O\n\x0eGetNetworkInfo\x12\x1d.pactus.GetNetworkInfoRequest\x1a\x1e.pactus.GetNetworkInfoResponse\x12\x46\n\x0bGetNodeInfo\x12\x1a.pactus.GetNodeInfoRequest\x1a\x1b.pactus.GetNodeInfoResponseBB\n\x0epactus.networkZ0github.com/pactus-project/pactus/www/grpc/pactusb\x06proto3')
 
 _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
 _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'network_pb2', globals())
@@ -40,15 +40,15 @@
   _GETNODEINFOREQUEST._serialized_start=650
   _GETNODEINFOREQUEST._serialized_end=670
   _GETNODEINFORESPONSE._serialized_start=673
-  _GETNODEINFORESPONSE._serialized_end=1132
-  _PEERINFO._serialized_start=1135
-  _PEERINFO._serialized_end=2012
+  _GETNODEINFORESPONSE._serialized_end=1064
+  _PEERINFO._serialized_start=1067
+  _PEERINFO._serialized_end=1944
   _PEERINFO_SENTBYTESENTRY._serialized_start=522
   _PEERINFO_SENTBYTESENTRY._serialized_end=582
   _PEERINFO_RECEIVEDBYTESENTRY._serialized_start=584
   _PEERINFO_RECEIVEDBYTESENTRY._serialized_end=648
-  _CONNECTIONINFO._serialized_start=2015
-  _CONNECTIONINFO._serialized_end=2165
-  _NETWORK._serialized_start=2168
-  _NETWORK._serialized_end=2330
+  _CONNECTIONINFO._serialized_start=1947
+  _CONNECTIONINFO._serialized_end=2097
+  _NETWORK._serialized_start=2100
+  _NETWORK._serialized_end=2262
 # @@protoc_insertion_point(module_scope)
diff --git a/www/grpc/gen/rust/pactus.rs b/www/grpc/gen/rust/pactus.rs
index 77807921b..f0eba66d4 100644
--- a/www/grpc/gen/rust/pactus.rs
+++ b/www/grpc/gen/rust/pactus.rs
@@ -526,6 +526,12 @@ pub struct GetBlockchainInfoResponse {
     /// List of committee validators.
     #[prost(message, repeated, tag="7")]
     pub committee_validators: ::prost::alloc::vec::Vec,
+    /// If the blocks are subject to pruning.
+    #[prost(bool, tag="8")]
+    pub is_pruned: bool,
+    /// Lowest-height block stored (only present if pruning is enabled)
+    #[prost(int32, tag="9")]
+    pub pruning_height: i32,
 }
 /// Message to request consensus information.
 #[allow(clippy::derive_partial_eq_without_eq)]
@@ -837,12 +843,6 @@ pub struct GetNodeInfoResponse {
     /// List of protocols supported by the node.
     #[prost(string, repeated, tag="9")]
     pub protocols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
-    /// If the blocks are subject to pruning.
-    #[prost(bool, tag="10")]
-    pub is_pruned: bool,
-    /// Lowest-height block stored (only present if pruning is enabled)
-    #[prost(int32, tag="11")]
-    pub pruning_height: i32,
     /// Clock offset of the node.
     #[prost(double, tag="13")]
     pub clock_offset: f64,
diff --git a/www/grpc/gen/rust/pactus.serde.rs b/www/grpc/gen/rust/pactus.serde.rs
index 0fb5876fa..613b9a562 100644
--- a/www/grpc/gen/rust/pactus.serde.rs
+++ b/www/grpc/gen/rust/pactus.serde.rs
@@ -2873,6 +2873,12 @@ impl serde::Serialize for GetBlockchainInfoResponse {
         if !self.committee_validators.is_empty() {
             len += 1;
         }
+        if self.is_pruned {
+            len += 1;
+        }
+        if self.pruning_height != 0 {
+            len += 1;
+        }
         let mut struct_ser = serializer.serialize_struct("pactus.GetBlockchainInfoResponse", len)?;
         if self.last_block_height != 0 {
             struct_ser.serialize_field("lastBlockHeight", &self.last_block_height)?;
@@ -2895,6 +2901,12 @@ impl serde::Serialize for GetBlockchainInfoResponse {
         if !self.committee_validators.is_empty() {
             struct_ser.serialize_field("committeeValidators", &self.committee_validators)?;
         }
+        if self.is_pruned {
+            struct_ser.serialize_field("isPruned", &self.is_pruned)?;
+        }
+        if self.pruning_height != 0 {
+            struct_ser.serialize_field("pruningHeight", &self.pruning_height)?;
+        }
         struct_ser.end()
     }
 }
@@ -2919,6 +2931,10 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
             "committeePower",
             "committee_validators",
             "committeeValidators",
+            "is_pruned",
+            "isPruned",
+            "pruning_height",
+            "pruningHeight",
         ];
 
         #[allow(clippy::enum_variant_names)]
@@ -2930,6 +2946,8 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
             TotalPower,
             CommitteePower,
             CommitteeValidators,
+            IsPruned,
+            PruningHeight,
         }
         impl<'de> serde::Deserialize<'de> for GeneratedField {
             fn deserialize(deserializer: D) -> std::result::Result
@@ -2958,6 +2976,8 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
                             "totalPower" | "total_power" => Ok(GeneratedField::TotalPower),
                             "committeePower" | "committee_power" => Ok(GeneratedField::CommitteePower),
                             "committeeValidators" | "committee_validators" => Ok(GeneratedField::CommitteeValidators),
+                            "isPruned" | "is_pruned" => Ok(GeneratedField::IsPruned),
+                            "pruningHeight" | "pruning_height" => Ok(GeneratedField::PruningHeight),
                             _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
                         }
                     }
@@ -2984,6 +3004,8 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
                 let mut total_power__ = None;
                 let mut committee_power__ = None;
                 let mut committee_validators__ = None;
+                let mut is_pruned__ = None;
+                let mut pruning_height__ = None;
                 while let Some(k) = map.next_key()? {
                     match k {
                         GeneratedField::LastBlockHeight => {
@@ -3038,6 +3060,20 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
                             }
                             committee_validators__ = Some(map.next_value()?);
                         }
+                        GeneratedField::IsPruned => {
+                            if is_pruned__.is_some() {
+                                return Err(serde::de::Error::duplicate_field("isPruned"));
+                            }
+                            is_pruned__ = Some(map.next_value()?);
+                        }
+                        GeneratedField::PruningHeight => {
+                            if pruning_height__.is_some() {
+                                return Err(serde::de::Error::duplicate_field("pruningHeight"));
+                            }
+                            pruning_height__ = 
+                                Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
+                            ;
+                        }
                     }
                 }
                 Ok(GetBlockchainInfoResponse {
@@ -3048,6 +3084,8 @@ impl<'de> serde::Deserialize<'de> for GetBlockchainInfoResponse {
                     total_power: total_power__.unwrap_or_default(),
                     committee_power: committee_power__.unwrap_or_default(),
                     committee_validators: committee_validators__.unwrap_or_default(),
+                    is_pruned: is_pruned__.unwrap_or_default(),
+                    pruning_height: pruning_height__.unwrap_or_default(),
                 })
             }
         }
@@ -3869,12 +3907,6 @@ impl serde::Serialize for GetNodeInfoResponse {
         if !self.protocols.is_empty() {
             len += 1;
         }
-        if self.is_pruned {
-            len += 1;
-        }
-        if self.pruning_height != 0 {
-            len += 1;
-        }
         if self.clock_offset != 0. {
             len += 1;
         }
@@ -3909,12 +3941,6 @@ impl serde::Serialize for GetNodeInfoResponse {
         if !self.protocols.is_empty() {
             struct_ser.serialize_field("protocols", &self.protocols)?;
         }
-        if self.is_pruned {
-            struct_ser.serialize_field("isPruned", &self.is_pruned)?;
-        }
-        if self.pruning_height != 0 {
-            struct_ser.serialize_field("pruningHeight", &self.pruning_height)?;
-        }
         if self.clock_offset != 0. {
             struct_ser.serialize_field("clockOffset", &self.clock_offset)?;
         }
@@ -3944,10 +3970,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
             "local_addrs",
             "localAddrs",
             "protocols",
-            "is_pruned",
-            "isPruned",
-            "pruning_height",
-            "pruningHeight",
             "clock_offset",
             "clockOffset",
             "connection_info",
@@ -3965,8 +3987,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
             ServicesNames,
             LocalAddrs,
             Protocols,
-            IsPruned,
-            PruningHeight,
             ClockOffset,
             ConnectionInfo,
         }
@@ -3999,8 +4019,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
                             "servicesNames" | "services_names" => Ok(GeneratedField::ServicesNames),
                             "localAddrs" | "local_addrs" => Ok(GeneratedField::LocalAddrs),
                             "protocols" => Ok(GeneratedField::Protocols),
-                            "isPruned" | "is_pruned" => Ok(GeneratedField::IsPruned),
-                            "pruningHeight" | "pruning_height" => Ok(GeneratedField::PruningHeight),
                             "clockOffset" | "clock_offset" => Ok(GeneratedField::ClockOffset),
                             "connectionInfo" | "connection_info" => Ok(GeneratedField::ConnectionInfo),
                             _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
@@ -4031,8 +4049,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
                 let mut services_names__ = None;
                 let mut local_addrs__ = None;
                 let mut protocols__ = None;
-                let mut is_pruned__ = None;
-                let mut pruning_height__ = None;
                 let mut clock_offset__ = None;
                 let mut connection_info__ = None;
                 while let Some(k) = map.next_key()? {
@@ -4095,20 +4111,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
                             }
                             protocols__ = Some(map.next_value()?);
                         }
-                        GeneratedField::IsPruned => {
-                            if is_pruned__.is_some() {
-                                return Err(serde::de::Error::duplicate_field("isPruned"));
-                            }
-                            is_pruned__ = Some(map.next_value()?);
-                        }
-                        GeneratedField::PruningHeight => {
-                            if pruning_height__.is_some() {
-                                return Err(serde::de::Error::duplicate_field("pruningHeight"));
-                            }
-                            pruning_height__ = 
-                                Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
-                            ;
-                        }
                         GeneratedField::ClockOffset => {
                             if clock_offset__.is_some() {
                                 return Err(serde::de::Error::duplicate_field("clockOffset"));
@@ -4135,8 +4137,6 @@ impl<'de> serde::Deserialize<'de> for GetNodeInfoResponse {
                     services_names: services_names__.unwrap_or_default(),
                     local_addrs: local_addrs__.unwrap_or_default(),
                     protocols: protocols__.unwrap_or_default(),
-                    is_pruned: is_pruned__.unwrap_or_default(),
-                    pruning_height: pruning_height__.unwrap_or_default(),
                     clock_offset: clock_offset__.unwrap_or_default(),
                     connection_info: connection_info__,
                 })
diff --git a/www/grpc/network.go b/www/grpc/network.go
index 8c43d71ca..ce2bd75a8 100644
--- a/www/grpc/network.go
+++ b/www/grpc/network.go
@@ -41,8 +41,6 @@ func (s *networkServer) GetNodeInfo(_ context.Context,
 		Services:      int32(s.sync.Services()),
 		ServicesNames: s.sync.Services().String(),
 		ClockOffset:   clockOffset.Seconds(),
-		IsPruned:      s.state.IsPruned(),
-		PruningHeight: int32(s.state.PruningHeight()),
 		ConnectionInfo: &pactus.ConnectionInfo{
 			Connections:         uint64(s.net.NumConnectedPeers()),
 			InboundConnections:  uint64(s.net.NumInbound()),
diff --git a/www/grpc/proto/blockchain.proto b/www/grpc/proto/blockchain.proto
index f7e8c81d4..38fd8c0cc 100644
--- a/www/grpc/proto/blockchain.proto
+++ b/www/grpc/proto/blockchain.proto
@@ -173,6 +173,10 @@ message GetBlockchainInfoResponse {
   int64 committee_power = 6;
   // List of committee validators.
   repeated ValidatorInfo committee_validators = 7;
+  // If the blocks are subject to pruning.
+  bool is_pruned = 8;
+  // Lowest-height block stored (only present if pruning is enabled)
+  int32 pruning_height = 9;
 }
 
 // Message to request consensus information.
diff --git a/www/grpc/proto/network.proto b/www/grpc/proto/network.proto
index 0546d0a5a..e99e262a0 100644
--- a/www/grpc/proto/network.proto
+++ b/www/grpc/proto/network.proto
@@ -61,10 +61,6 @@ message GetNodeInfoResponse {
   repeated string local_addrs = 8;
   // List of protocols supported by the node.
   repeated string protocols = 9;
-  // If the blocks are subject to pruning.
-  bool is_pruned = 10;
-  // Lowest-height block stored (only present if pruning is enabled)
-  int32 pruning_height = 11;
   // Clock offset of the node.
   double clock_offset = 13;
   // Information about the node's connections.
diff --git a/www/grpc/swagger-ui/pactus.swagger.json b/www/grpc/swagger-ui/pactus.swagger.json
index 7810df530..c20f91dab 100644
--- a/www/grpc/swagger-ui/pactus.swagger.json
+++ b/www/grpc/swagger-ui/pactus.swagger.json
@@ -1615,6 +1615,15 @@
             "$ref": "#/definitions/pactusValidatorInfo"
           },
           "description": "List of committee validators."
+        },
+        "isPruned": {
+          "type": "boolean",
+          "description": "If the blocks are subject to pruning."
+        },
+        "pruningHeight": {
+          "type": "integer",
+          "format": "int32",
+          "title": "Lowest-height block stored (only present if pruning is enabled)"
         }
       },
       "description": "Message containing the response with general blockchain information."
@@ -1743,15 +1752,6 @@
           },
           "description": "List of protocols supported by the node."
         },
-        "isPruned": {
-          "type": "boolean",
-          "description": "If the blocks are subject to pruning."
-        },
-        "pruningHeight": {
-          "type": "integer",
-          "format": "int32",
-          "title": "Lowest-height block stored (only present if pruning is enabled)"
-        },
         "clockOffset": {
           "type": "number",
           "format": "double",
diff --git a/www/http/blockchain.go b/www/http/blockchain.go
index 1a0fdc9b9..f925e9e5d 100644
--- a/www/http/blockchain.go
+++ b/www/http/blockchain.go
@@ -28,6 +28,8 @@ func (s *Server) BlockchainHandler(w http.ResponseWriter, r *http.Request) {
 	tm := newTableMaker()
 	tm.addRowBlockHash("Last Block Hash", res.LastBlockHash)
 	tm.addRowInt("Last Block Height", int(res.LastBlockHeight))
+	tm.addRowBool("Is Pruned", res.IsPruned)
+	tm.addRowInt("Pruning Height", int(res.PruningHeight))
 	tm.addRowString("--- Committee", "---")
 	tm.addRowPower("Total Power", res.TotalPower)
 	tm.addRowPower("Committee Power", res.CommitteePower)
diff --git a/www/http/network.go b/www/http/network.go
index e15026c2e..713f7aa0f 100644
--- a/www/http/network.go
+++ b/www/http/network.go
@@ -122,8 +122,6 @@ func (s *Server) NodeHandler(w http.ResponseWriter, r *http.Request) {
 	tm.addRowString("Moniker", res.Moniker)
 	tm.addRowTime("Started at", int64(res.StartedAt))
 	tm.addRowString("Reachability", res.Reachability)
-	tm.addRowBool("Is Pruned", res.IsPruned)
-	tm.addRowInt("Pruning Height", int(res.PruningHeight))
 	tm.addRowFloat64("Clock Offset", res.ClockOffset)
 	tm.addRowInt("Services", int(res.Services))
 	tm.addRowString("Services Names", res.ServicesNames)

From e67fe7a68e5aabbb68a60d95260d556bae823c13 Mon Sep 17 00:00:00 2001
From: kehiy 
Date: Sat, 20 Jul 2024 11:58:36 +0330
Subject: [PATCH 6/6] fix: set lock for PruningHeight

---
 store/store.go | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/store/store.go b/store/store.go
index fe21977e0..d9f9f181b 100644
--- a/store/store.go
+++ b/store/store.go
@@ -489,6 +489,9 @@ func (s *store) pruneBlock(blockHeight uint32) (bool, error) {
 }
 
 func (s *store) PruningHeight() uint32 {
+	s.lk.RLock()
+	defer s.lk.RUnlock()
+
 	cert := s.lastCertificate()
 	if cert == nil {
 		return 0