From 0adfb2dfbb0fb67f1cbe0621c319819b1b97bd8b Mon Sep 17 00:00:00 2001
From: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
Date: Mon, 31 May 2021 18:11:08 +0300
Subject: [PATCH] Implement NotifyVirtualDaaScoreChanged (#1737)
* Add notifyVirtualDaaScoreChanged to protowire.
* Add notifyVirtualDaaScoreChanged to the rest of kaspad.
* Add notifyVirtualDaaScoreChanged to the rest of kaspad.
* Test the DAA score notification in TestVirtualSelectedParentBlueScore.
* Rename TestVirtualSelectedParentBlueScore to TestVirtualSelectedParentBlueScoreAndVirtualDAAScore.
---
app/appmessage/message.go | 6 +
.../rpc_notify_virtual_daa_score_changed.go | 55 ++
app/rpc/manager.go | 18 +
app/rpc/rpc.go | 1 +
app/rpc/rpccontext/notificationmanager.go | 26 +
.../notify_virtual_daa_score_changed.go | 19 +
.../grpcserver/protowire/messages.pb.go | 135 ++++-
.../grpcserver/protowire/messages.proto | 3 +
.../grpcserver/protowire/messages_grpc.pb.go | 47 +-
.../server/grpcserver/protowire/p2p.pb.go | 7 +-
.../server/grpcserver/protowire/rpc.md | 545 ++++++++++--------
.../server/grpcserver/protowire/rpc.pb.go | 333 ++++++++---
.../server/grpcserver/protowire/rpc.proto | 19 +
.../rpc_notify_virtual_daa_score_changed.go | 73 +++
.../server/grpcserver/protowire/wire.go | 21 +
.../rpc_on_virtual_daa_score_changed.go | 41 ++
...virtual_selected_parent_blue_score_test.go | 25 +-
17 files changed, 1010 insertions(+), 364 deletions(-)
create mode 100644 app/appmessage/rpc_notify_virtual_daa_score_changed.go
create mode 100644 app/rpc/rpchandlers/notify_virtual_daa_score_changed.go
create mode 100644 infrastructure/network/netadapter/server/grpcserver/protowire/rpc_notify_virtual_daa_score_changed.go
create mode 100644 infrastructure/network/rpcclient/rpc_on_virtual_daa_score_changed.go
diff --git a/app/appmessage/message.go b/app/appmessage/message.go
index 22c023428..ede3f5a0c 100644
--- a/app/appmessage/message.go
+++ b/app/appmessage/message.go
@@ -137,6 +137,9 @@ const (
CmdPruningPointUTXOSetOverrideNotificationMessage
CmdStopNotifyingPruningPointUTXOSetOverrideRequestMessage
CmdStopNotifyingPruningPointUTXOSetOverrideResponseMessage
+ CmdNotifyVirtualDaaScoreChangedRequestMessage
+ CmdNotifyVirtualDaaScoreChangedResponseMessage
+ CmdVirtualDaaScoreChangedNotificationMessage
)
// ProtocolMessageCommandToString maps all MessageCommands to their string representation
@@ -248,6 +251,9 @@ var RPCMessageCommandToString = map[MessageCommand]string{
CmdPruningPointUTXOSetOverrideNotificationMessage: "PruningPointUTXOSetOverrideNotification",
CmdStopNotifyingPruningPointUTXOSetOverrideRequestMessage: "StopNotifyingPruningPointUTXOSetOverrideRequest",
CmdStopNotifyingPruningPointUTXOSetOverrideResponseMessage: "StopNotifyingPruningPointUTXOSetOverrideResponse",
+ CmdNotifyVirtualDaaScoreChangedRequestMessage: "NotifyVirtualDaaScoreChangedRequest",
+ CmdNotifyVirtualDaaScoreChangedResponseMessage: "NotifyVirtualDaaScoreChangedResponse",
+ CmdVirtualDaaScoreChangedNotificationMessage: "VirtualDaaScoreChangedNotification",
}
// Message is an interface that describes a kaspa message. A type that
diff --git a/app/appmessage/rpc_notify_virtual_daa_score_changed.go b/app/appmessage/rpc_notify_virtual_daa_score_changed.go
new file mode 100644
index 000000000..583155262
--- /dev/null
+++ b/app/appmessage/rpc_notify_virtual_daa_score_changed.go
@@ -0,0 +1,55 @@
+package appmessage
+
+// NotifyVirtualDaaScoreChangedRequestMessage is an appmessage corresponding to
+// its respective RPC message
+type NotifyVirtualDaaScoreChangedRequestMessage struct {
+ baseMessage
+}
+
+// Command returns the protocol command string for the message
+func (msg *NotifyVirtualDaaScoreChangedRequestMessage) Command() MessageCommand {
+ return CmdNotifyVirtualDaaScoreChangedRequestMessage
+}
+
+// NewNotifyVirtualDaaScoreChangedRequestMessage returns a instance of the message
+func NewNotifyVirtualDaaScoreChangedRequestMessage() *NotifyVirtualDaaScoreChangedRequestMessage {
+ return &NotifyVirtualDaaScoreChangedRequestMessage{}
+}
+
+// NotifyVirtualDaaScoreChangedResponseMessage is an appmessage corresponding to
+// its respective RPC message
+type NotifyVirtualDaaScoreChangedResponseMessage struct {
+ baseMessage
+ Error *RPCError
+}
+
+// Command returns the protocol command string for the message
+func (msg *NotifyVirtualDaaScoreChangedResponseMessage) Command() MessageCommand {
+ return CmdNotifyVirtualDaaScoreChangedResponseMessage
+}
+
+// NewNotifyVirtualDaaScoreChangedResponseMessage returns a instance of the message
+func NewNotifyVirtualDaaScoreChangedResponseMessage() *NotifyVirtualDaaScoreChangedResponseMessage {
+ return &NotifyVirtualDaaScoreChangedResponseMessage{}
+}
+
+// VirtualDaaScoreChangedNotificationMessage is an appmessage corresponding to
+// its respective RPC message
+type VirtualDaaScoreChangedNotificationMessage struct {
+ baseMessage
+ VirtualDaaScore uint64
+}
+
+// Command returns the protocol command string for the message
+func (msg *VirtualDaaScoreChangedNotificationMessage) Command() MessageCommand {
+ return CmdVirtualDaaScoreChangedNotificationMessage
+}
+
+// NewVirtualDaaScoreChangedNotificationMessage returns a instance of the message
+func NewVirtualDaaScoreChangedNotificationMessage(
+ virtualDaaScore uint64) *VirtualDaaScoreChangedNotificationMessage {
+
+ return &VirtualDaaScoreChangedNotificationMessage{
+ VirtualDaaScore: virtualDaaScore,
+ }
+}
diff --git a/app/rpc/manager.go b/app/rpc/manager.go
index ffd5c0823..51f5ff08f 100644
--- a/app/rpc/manager.go
+++ b/app/rpc/manager.go
@@ -64,6 +64,11 @@ func (m *Manager) NotifyBlockAddedToDAG(block *externalapi.DomainBlock, blockIns
return err
}
+ err = m.notifyVirtualDaaScoreChanged()
+ if err != nil {
+ return err
+ }
+
err = m.notifyVirtualSelectedParentChainChanged(blockInsertionResult)
if err != nil {
return err
@@ -153,6 +158,19 @@ func (m *Manager) notifyVirtualSelectedParentBlueScoreChanged() error {
return m.context.NotificationManager.NotifyVirtualSelectedParentBlueScoreChanged(notification)
}
+func (m *Manager) notifyVirtualDaaScoreChanged() error {
+ onEnd := logger.LogAndMeasureExecutionTime(log, "RPCManager.NotifyVirtualDaaScoreChanged")
+ defer onEnd()
+
+ virtualInfo, err := m.context.Domain.Consensus().GetVirtualInfo()
+ if err != nil {
+ return err
+ }
+
+ notification := appmessage.NewVirtualDaaScoreChangedNotificationMessage(virtualInfo.DAAScore)
+ return m.context.NotificationManager.NotifyVirtualDaaScoreChanged(notification)
+}
+
func (m *Manager) notifyVirtualSelectedParentChainChanged(blockInsertionResult *externalapi.BlockInsertionResult) error {
onEnd := logger.LogAndMeasureExecutionTime(log, "RPCManager.NotifyVirtualSelectedParentChainChanged")
defer onEnd()
diff --git a/app/rpc/rpc.go b/app/rpc/rpc.go
index ec87c698e..720767aee 100644
--- a/app/rpc/rpc.go
+++ b/app/rpc/rpc.go
@@ -44,6 +44,7 @@ var handlers = map[appmessage.MessageCommand]handler{
appmessage.CmdGetInfoRequestMessage: rpchandlers.HandleGetInfo,
appmessage.CmdNotifyPruningPointUTXOSetOverrideRequestMessage: rpchandlers.HandleNotifyPruningPointUTXOSetOverrideRequest,
appmessage.CmdStopNotifyingPruningPointUTXOSetOverrideRequestMessage: rpchandlers.HandleStopNotifyingPruningPointUTXOSetOverrideRequest,
+ appmessage.CmdNotifyVirtualDaaScoreChangedRequestMessage: rpchandlers.HandleNotifyVirtualDaaScoreChanged,
}
func (m *Manager) routerInitializer(router *router.Router, netConnection *netadapter.NetConnection) {
diff --git a/app/rpc/rpccontext/notificationmanager.go b/app/rpc/rpccontext/notificationmanager.go
index 58b1f2b6b..c75e79195 100644
--- a/app/rpc/rpccontext/notificationmanager.go
+++ b/app/rpc/rpccontext/notificationmanager.go
@@ -30,6 +30,7 @@ type NotificationListener struct {
propagateFinalityConflictResolvedNotifications bool
propagateUTXOsChangedNotifications bool
propagateVirtualSelectedParentBlueScoreChangedNotifications bool
+ propagateVirtualDaaScoreChangedNotifications bool
propagatePruningPointUTXOSetOverrideNotifications bool
propagateUTXOsChangedNotificationAddresses map[utxoindex.ScriptPublicKeyString]*UTXOsChangedNotificationAddress
@@ -181,6 +182,25 @@ func (nm *NotificationManager) NotifyVirtualSelectedParentBlueScoreChanged(
return nil
}
+// NotifyVirtualDaaScoreChanged notifies the notification manager that the DAG's
+// virtual DAA score has changed
+func (nm *NotificationManager) NotifyVirtualDaaScoreChanged(
+ notification *appmessage.VirtualDaaScoreChangedNotificationMessage) error {
+
+ nm.RLock()
+ defer nm.RUnlock()
+
+ for router, listener := range nm.listeners {
+ if listener.propagateVirtualDaaScoreChangedNotifications {
+ err := router.OutgoingRoute().Enqueue(notification)
+ if err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
// NotifyPruningPointUTXOSetOverride notifies the notification manager that the UTXO index
// reset due to pruning point change via IBD.
func (nm *NotificationManager) NotifyPruningPointUTXOSetOverride() error {
@@ -308,6 +328,12 @@ func (nl *NotificationListener) PropagateVirtualSelectedParentBlueScoreChangedNo
nl.propagateVirtualSelectedParentBlueScoreChangedNotifications = true
}
+// PropagateVirtualDaaScoreChangedNotifications instructs the listener to send
+// virtual DAA score notifications to the remote listener
+func (nl *NotificationListener) PropagateVirtualDaaScoreChangedNotifications() {
+ nl.propagateVirtualDaaScoreChangedNotifications = true
+}
+
// PropagatePruningPointUTXOSetOverrideNotifications instructs the listener to send pruning point UTXO set override notifications
// to the remote listener.
func (nl *NotificationListener) PropagatePruningPointUTXOSetOverrideNotifications() {
diff --git a/app/rpc/rpchandlers/notify_virtual_daa_score_changed.go b/app/rpc/rpchandlers/notify_virtual_daa_score_changed.go
new file mode 100644
index 000000000..d7d6d8329
--- /dev/null
+++ b/app/rpc/rpchandlers/notify_virtual_daa_score_changed.go
@@ -0,0 +1,19 @@
+package rpchandlers
+
+import (
+ "github.com/kaspanet/kaspad/app/appmessage"
+ "github.com/kaspanet/kaspad/app/rpc/rpccontext"
+ "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
+)
+
+// HandleNotifyVirtualDaaScoreChanged handles the respectively named RPC command
+func HandleNotifyVirtualDaaScoreChanged(context *rpccontext.Context, router *router.Router, _ appmessage.Message) (appmessage.Message, error) {
+ listener, err := context.NotificationManager.Listener(router)
+ if err != nil {
+ return nil, err
+ }
+ listener.PropagateVirtualDaaScoreChangedNotifications()
+
+ response := appmessage.NewNotifyVirtualDaaScoreChangedResponseMessage()
+ return response, nil
+}
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go
index 588fdb26b..8203edab0 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.pb.go
@@ -1,13 +1,12 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.25.0
+// protoc-gen-go v1.26.0
// protoc v3.12.3
// source: messages.proto
package protowire
import (
- proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
@@ -21,10 +20,6 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
type KaspadMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -134,6 +129,9 @@ type KaspadMessage struct {
// *KaspadMessage_PruningPointUTXOSetOverrideNotification
// *KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideRequest
// *KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideResponse
+ // *KaspadMessage_NotifyVirtualDaaScoreChangedRequest
+ // *KaspadMessage_NotifyVirtualDaaScoreChangedResponse
+ // *KaspadMessage_VirtualDaaScoreChangedNotification
Payload isKaspadMessage_Payload `protobuf_oneof:"payload"`
}
@@ -897,6 +895,27 @@ func (x *KaspadMessage) GetStopNotifyingPruningPointUTXOSetOverrideResponse() *S
return nil
}
+func (x *KaspadMessage) GetNotifyVirtualDaaScoreChangedRequest() *NotifyVirtualDaaScoreChangedRequestMessage {
+ if x, ok := x.GetPayload().(*KaspadMessage_NotifyVirtualDaaScoreChangedRequest); ok {
+ return x.NotifyVirtualDaaScoreChangedRequest
+ }
+ return nil
+}
+
+func (x *KaspadMessage) GetNotifyVirtualDaaScoreChangedResponse() *NotifyVirtualDaaScoreChangedResponseMessage {
+ if x, ok := x.GetPayload().(*KaspadMessage_NotifyVirtualDaaScoreChangedResponse); ok {
+ return x.NotifyVirtualDaaScoreChangedResponse
+ }
+ return nil
+}
+
+func (x *KaspadMessage) GetVirtualDaaScoreChangedNotification() *VirtualDaaScoreChangedNotificationMessage {
+ if x, ok := x.GetPayload().(*KaspadMessage_VirtualDaaScoreChangedNotification); ok {
+ return x.VirtualDaaScoreChangedNotification
+ }
+ return nil
+}
+
type isKaspadMessage_Payload interface {
isKaspadMessage_Payload()
}
@@ -1313,6 +1332,18 @@ type KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideResponse struct {
StopNotifyingPruningPointUTXOSetOverrideResponse *StopNotifyingPruningPointUTXOSetOverrideResponseMessage `protobuf:"bytes,1071,opt,name=stopNotifyingPruningPointUTXOSetOverrideResponse,proto3,oneof"`
}
+type KaspadMessage_NotifyVirtualDaaScoreChangedRequest struct {
+ NotifyVirtualDaaScoreChangedRequest *NotifyVirtualDaaScoreChangedRequestMessage `protobuf:"bytes,1072,opt,name=notifyVirtualDaaScoreChangedRequest,proto3,oneof"`
+}
+
+type KaspadMessage_NotifyVirtualDaaScoreChangedResponse struct {
+ NotifyVirtualDaaScoreChangedResponse *NotifyVirtualDaaScoreChangedResponseMessage `protobuf:"bytes,1073,opt,name=notifyVirtualDaaScoreChangedResponse,proto3,oneof"`
+}
+
+type KaspadMessage_VirtualDaaScoreChangedNotification struct {
+ VirtualDaaScoreChangedNotification *VirtualDaaScoreChangedNotificationMessage `protobuf:"bytes,1074,opt,name=virtualDaaScoreChangedNotification,proto3,oneof"`
+}
+
func (*KaspadMessage_Addresses) isKaspadMessage_Payload() {}
func (*KaspadMessage_Block) isKaspadMessage_Payload() {}
@@ -1519,13 +1550,19 @@ func (*KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideRequest) isKaspadMe
func (*KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideResponse) isKaspadMessage_Payload() {}
+func (*KaspadMessage_NotifyVirtualDaaScoreChangedRequest) isKaspadMessage_Payload() {}
+
+func (*KaspadMessage_NotifyVirtualDaaScoreChangedResponse) isKaspadMessage_Payload() {}
+
+func (*KaspadMessage_VirtualDaaScoreChangedNotification) isKaspadMessage_Payload() {}
+
var File_messages_proto protoreflect.FileDescriptor
var file_messages_proto_rawDesc = []byte{
0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x1a, 0x09, 0x70, 0x32, 0x70,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x09, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x22, 0xa4, 0x55, 0x0a, 0x0d, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x6f, 0x22, 0xcb, 0x58, 0x0a, 0x0d, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69,
0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73,
@@ -2206,21 +2243,48 @@ var file_messages_proto_rawDesc = []byte{
0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x30, 0x73, 0x74, 0x6f,
0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x69, 0x6e,
0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x53, 0x65, 0x74, 0x4f, 0x76, 0x65,
- 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a,
- 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x32, 0x50, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x12,
- 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73,
- 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x32, 0x50, 0x0a, 0x03, 0x52, 0x50,
- 0x43, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b,
- 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24,
- 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61,
- 0x6e, 0x65, 0x74, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x77, 0x69, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01,
+ 0x0a, 0x23, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44,
+ 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xb0, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56,
+ 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x23, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72,
+ 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x24, 0x6e,
+ 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53,
+ 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x18, 0xb1, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72,
+ 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x48, 0x00, 0x52, 0x24, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72, 0x74,
+ 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x22, 0x76,
+ 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0xb2, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x77, 0x69, 0x72, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53,
+ 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00,
+ 0x52, 0x22, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72,
+ 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x32,
+ 0x50, 0x0a, 0x03, 0x50, 0x32, 0x50, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77,
+ 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61,
+ 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30,
+ 0x01, 0x32, 0x50, 0x0a, 0x03, 0x52, 0x50, 0x43, 0x12, 0x49, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e,
+ 0x4b, 0x61, 0x73, 0x70, 0x61, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28,
+ 0x01, 0x30, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61, 0x6e, 0x65, 0x74, 0x2f, 0x6b, 0x61, 0x73, 0x70, 0x61,
+ 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var (
@@ -2340,6 +2404,9 @@ var file_messages_proto_goTypes = []interface{}{
(*PruningPointUTXOSetOverrideNotificationMessage)(nil), // 100: protowire.PruningPointUTXOSetOverrideNotificationMessage
(*StopNotifyingPruningPointUTXOSetOverrideRequestMessage)(nil), // 101: protowire.StopNotifyingPruningPointUTXOSetOverrideRequestMessage
(*StopNotifyingPruningPointUTXOSetOverrideResponseMessage)(nil), // 102: protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage
+ (*NotifyVirtualDaaScoreChangedRequestMessage)(nil), // 103: protowire.NotifyVirtualDaaScoreChangedRequestMessage
+ (*NotifyVirtualDaaScoreChangedResponseMessage)(nil), // 104: protowire.NotifyVirtualDaaScoreChangedResponseMessage
+ (*VirtualDaaScoreChangedNotificationMessage)(nil), // 105: protowire.VirtualDaaScoreChangedNotificationMessage
}
var file_messages_proto_depIdxs = []int32{
1, // 0: protowire.KaspadMessage.addresses:type_name -> protowire.AddressesMessage
@@ -2445,15 +2512,18 @@ var file_messages_proto_depIdxs = []int32{
100, // 100: protowire.KaspadMessage.pruningPointUTXOSetOverrideNotification:type_name -> protowire.PruningPointUTXOSetOverrideNotificationMessage
101, // 101: protowire.KaspadMessage.stopNotifyingPruningPointUTXOSetOverrideRequest:type_name -> protowire.StopNotifyingPruningPointUTXOSetOverrideRequestMessage
102, // 102: protowire.KaspadMessage.stopNotifyingPruningPointUTXOSetOverrideResponse:type_name -> protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage
- 0, // 103: protowire.P2P.MessageStream:input_type -> protowire.KaspadMessage
- 0, // 104: protowire.RPC.MessageStream:input_type -> protowire.KaspadMessage
- 0, // 105: protowire.P2P.MessageStream:output_type -> protowire.KaspadMessage
- 0, // 106: protowire.RPC.MessageStream:output_type -> protowire.KaspadMessage
- 105, // [105:107] is the sub-list for method output_type
- 103, // [103:105] is the sub-list for method input_type
- 103, // [103:103] is the sub-list for extension type_name
- 103, // [103:103] is the sub-list for extension extendee
- 0, // [0:103] is the sub-list for field type_name
+ 103, // 103: protowire.KaspadMessage.notifyVirtualDaaScoreChangedRequest:type_name -> protowire.NotifyVirtualDaaScoreChangedRequestMessage
+ 104, // 104: protowire.KaspadMessage.notifyVirtualDaaScoreChangedResponse:type_name -> protowire.NotifyVirtualDaaScoreChangedResponseMessage
+ 105, // 105: protowire.KaspadMessage.virtualDaaScoreChangedNotification:type_name -> protowire.VirtualDaaScoreChangedNotificationMessage
+ 0, // 106: protowire.P2P.MessageStream:input_type -> protowire.KaspadMessage
+ 0, // 107: protowire.RPC.MessageStream:input_type -> protowire.KaspadMessage
+ 0, // 108: protowire.P2P.MessageStream:output_type -> protowire.KaspadMessage
+ 0, // 109: protowire.RPC.MessageStream:output_type -> protowire.KaspadMessage
+ 108, // [108:110] is the sub-list for method output_type
+ 106, // [106:108] is the sub-list for method input_type
+ 106, // [106:106] is the sub-list for extension type_name
+ 106, // [106:106] is the sub-list for extension extendee
+ 0, // [0:106] is the sub-list for field type_name
}
func init() { file_messages_proto_init() }
@@ -2581,6 +2651,9 @@ func file_messages_proto_init() {
(*KaspadMessage_PruningPointUTXOSetOverrideNotification)(nil),
(*KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideRequest)(nil),
(*KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideResponse)(nil),
+ (*KaspadMessage_NotifyVirtualDaaScoreChangedRequest)(nil),
+ (*KaspadMessage_NotifyVirtualDaaScoreChangedResponse)(nil),
+ (*KaspadMessage_VirtualDaaScoreChangedNotification)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto
index 43f1f7290..858f0526c 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/messages.proto
@@ -112,6 +112,9 @@ message KaspadMessage {
PruningPointUTXOSetOverrideNotificationMessage pruningPointUTXOSetOverrideNotification = 1069;
StopNotifyingPruningPointUTXOSetOverrideRequestMessage stopNotifyingPruningPointUTXOSetOverrideRequest = 1070;
StopNotifyingPruningPointUTXOSetOverrideResponseMessage stopNotifyingPruningPointUTXOSetOverrideResponse = 1071;
+ NotifyVirtualDaaScoreChangedRequestMessage notifyVirtualDaaScoreChangedRequest = 1072;
+ NotifyVirtualDaaScoreChangedResponseMessage notifyVirtualDaaScoreChangedResponse = 1073;
+ VirtualDaaScoreChangedNotificationMessage virtualDaaScoreChangedNotification = 1074;
}
}
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/messages_grpc.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/messages_grpc.pb.go
index 102e61cfd..09653ed68 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/messages_grpc.pb.go
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/messages_grpc.pb.go
@@ -11,7 +11,8 @@ import (
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion6
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
// P2PClient is the client API for P2P service.
//
@@ -29,7 +30,7 @@ func NewP2PClient(cc grpc.ClientConnInterface) P2PClient {
}
func (c *p2PClient) MessageStream(ctx context.Context, opts ...grpc.CallOption) (P2P_MessageStreamClient, error) {
- stream, err := c.cc.NewStream(ctx, &_P2P_serviceDesc.Streams[0], "/protowire.P2P/MessageStream", opts...)
+ stream, err := c.cc.NewStream(ctx, &P2P_ServiceDesc.Streams[0], "/protowire.P2P/MessageStream", opts...)
if err != nil {
return nil, err
}
@@ -71,13 +72,20 @@ type P2PServer interface {
type UnimplementedP2PServer struct {
}
-func (*UnimplementedP2PServer) MessageStream(P2P_MessageStreamServer) error {
+func (UnimplementedP2PServer) MessageStream(P2P_MessageStreamServer) error {
return status.Errorf(codes.Unimplemented, "method MessageStream not implemented")
}
-func (*UnimplementedP2PServer) mustEmbedUnimplementedP2PServer() {}
+func (UnimplementedP2PServer) mustEmbedUnimplementedP2PServer() {}
-func RegisterP2PServer(s *grpc.Server, srv P2PServer) {
- s.RegisterService(&_P2P_serviceDesc, srv)
+// UnsafeP2PServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to P2PServer will
+// result in compilation errors.
+type UnsafeP2PServer interface {
+ mustEmbedUnimplementedP2PServer()
+}
+
+func RegisterP2PServer(s grpc.ServiceRegistrar, srv P2PServer) {
+ s.RegisterService(&P2P_ServiceDesc, srv)
}
func _P2P_MessageStream_Handler(srv interface{}, stream grpc.ServerStream) error {
@@ -106,7 +114,10 @@ func (x *p2PMessageStreamServer) Recv() (*KaspadMessage, error) {
return m, nil
}
-var _P2P_serviceDesc = grpc.ServiceDesc{
+// P2P_ServiceDesc is the grpc.ServiceDesc for P2P service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var P2P_ServiceDesc = grpc.ServiceDesc{
ServiceName: "protowire.P2P",
HandlerType: (*P2PServer)(nil),
Methods: []grpc.MethodDesc{},
@@ -137,7 +148,7 @@ func NewRPCClient(cc grpc.ClientConnInterface) RPCClient {
}
func (c *rPCClient) MessageStream(ctx context.Context, opts ...grpc.CallOption) (RPC_MessageStreamClient, error) {
- stream, err := c.cc.NewStream(ctx, &_RPC_serviceDesc.Streams[0], "/protowire.RPC/MessageStream", opts...)
+ stream, err := c.cc.NewStream(ctx, &RPC_ServiceDesc.Streams[0], "/protowire.RPC/MessageStream", opts...)
if err != nil {
return nil, err
}
@@ -179,13 +190,20 @@ type RPCServer interface {
type UnimplementedRPCServer struct {
}
-func (*UnimplementedRPCServer) MessageStream(RPC_MessageStreamServer) error {
+func (UnimplementedRPCServer) MessageStream(RPC_MessageStreamServer) error {
return status.Errorf(codes.Unimplemented, "method MessageStream not implemented")
}
-func (*UnimplementedRPCServer) mustEmbedUnimplementedRPCServer() {}
+func (UnimplementedRPCServer) mustEmbedUnimplementedRPCServer() {}
-func RegisterRPCServer(s *grpc.Server, srv RPCServer) {
- s.RegisterService(&_RPC_serviceDesc, srv)
+// UnsafeRPCServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to RPCServer will
+// result in compilation errors.
+type UnsafeRPCServer interface {
+ mustEmbedUnimplementedRPCServer()
+}
+
+func RegisterRPCServer(s grpc.ServiceRegistrar, srv RPCServer) {
+ s.RegisterService(&RPC_ServiceDesc, srv)
}
func _RPC_MessageStream_Handler(srv interface{}, stream grpc.ServerStream) error {
@@ -214,7 +232,10 @@ func (x *rPCMessageStreamServer) Recv() (*KaspadMessage, error) {
return m, nil
}
-var _RPC_serviceDesc = grpc.ServiceDesc{
+// RPC_ServiceDesc is the grpc.ServiceDesc for RPC service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var RPC_ServiceDesc = grpc.ServiceDesc{
ServiceName: "protowire.RPC",
HandlerType: (*RPCServer)(nil),
Methods: []grpc.MethodDesc{},
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/p2p.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/p2p.pb.go
index e32ec2205..449a1c050 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/p2p.pb.go
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/p2p.pb.go
@@ -1,13 +1,12 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.25.0
+// protoc-gen-go v1.26.0
// protoc v3.12.3
// source: p2p.proto
package protowire
import (
- proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
@@ -21,10 +20,6 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
type RequestAddressesMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md
index 0ceda4cd6..c36db3f34 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.md
@@ -4,32 +4,42 @@
## Table of Contents
- [rpc.proto](#rpc.proto)
- - [RPCError](#protowire.RPCError)
- - [GetCurrentNetworkRequestMessage](#protowire.GetCurrentNetworkRequestMessage)
- - [GetCurrentNetworkResponseMessage](#protowire.GetCurrentNetworkResponseMessage)
- - [SubmitBlockRequestMessage](#protowire.SubmitBlockRequestMessage)
- - [RpcBlock](#protowire.RpcBlock)
- - [RpcBlockHeader](#protowire.RpcBlockHeader)
- - [SubmitBlockResponseMessage](#protowire.SubmitBlockResponseMessage)
- - [GetBlockTemplateRequestMessage](#protowire.GetBlockTemplateRequestMessage)
- - [GetBlockTemplateResponseMessage](#protowire.GetBlockTemplateResponseMessage)
- - [NotifyBlockAddedRequestMessage](#protowire.NotifyBlockAddedRequestMessage)
- - [NotifyBlockAddedResponseMessage](#protowire.NotifyBlockAddedResponseMessage)
- - [BlockAddedNotificationMessage](#protowire.BlockAddedNotificationMessage)
- - [GetPeerAddressesRequestMessage](#protowire.GetPeerAddressesRequestMessage)
- - [GetPeerAddressesResponseMessage](#protowire.GetPeerAddressesResponseMessage)
- - [GetPeerAddressesKnownAddressMessage](#protowire.GetPeerAddressesKnownAddressMessage)
- - [GetSelectedTipHashRequestMessage](#protowire.GetSelectedTipHashRequestMessage)
- - [GetSelectedTipHashResponseMessage](#protowire.GetSelectedTipHashResponseMessage)
- - [GetMempoolEntryRequestMessage](#protowire.GetMempoolEntryRequestMessage)
- - [GetMempoolEntryResponseMessage](#protowire.GetMempoolEntryResponseMessage)
- - [GetMempoolEntriesRequestMessage](#protowire.GetMempoolEntriesRequestMessage)
- - [GetMempoolEntriesResponseMessage](#protowire.GetMempoolEntriesResponseMessage)
- - [MempoolEntry](#protowire.MempoolEntry)
- - [GetConnectedPeerInfoRequestMessage](#protowire.GetConnectedPeerInfoRequestMessage)
- - [GetConnectedPeerInfoResponseMessage](#protowire.GetConnectedPeerInfoResponseMessage)
- - [GetConnectedPeerInfoMessage](#protowire.GetConnectedPeerInfoMessage)
- - [AddPeerRequestMessage](#protowire.AddPeerRequestMessage)
+ - [RPCError](#protowire.RPCError)
+ - [RpcBlock](#protowire.RpcBlock)
+ - [RpcBlockHeader](#protowire.RpcBlockHeader)
+ - [RpcBlockVerboseData](#protowire.RpcBlockVerboseData)
+ - [RpcTransaction](#protowire.RpcTransaction)
+ - [RpcTransactionInput](#protowire.RpcTransactionInput)
+ - [RpcScriptPublicKey](#protowire.RpcScriptPublicKey)
+ - [RpcTransactionOutput](#protowire.RpcTransactionOutput)
+ - [RpcOutpoint](#protowire.RpcOutpoint)
+ - [RpcUtxoEntry](#protowire.RpcUtxoEntry)
+ - [RpcTransactionVerboseData](#protowire.RpcTransactionVerboseData)
+ - [RpcTransactionInputVerboseData](#protowire.RpcTransactionInputVerboseData)
+ - [RpcTransactionOutputVerboseData](#protowire.RpcTransactionOutputVerboseData)
+ - [GetCurrentNetworkRequestMessage](#protowire.GetCurrentNetworkRequestMessage)
+ - [GetCurrentNetworkResponseMessage](#protowire.GetCurrentNetworkResponseMessage)
+ - [SubmitBlockRequestMessage](#protowire.SubmitBlockRequestMessage)
+ - [SubmitBlockResponseMessage](#protowire.SubmitBlockResponseMessage)
+ - [GetBlockTemplateRequestMessage](#protowire.GetBlockTemplateRequestMessage)
+ - [GetBlockTemplateResponseMessage](#protowire.GetBlockTemplateResponseMessage)
+ - [NotifyBlockAddedRequestMessage](#protowire.NotifyBlockAddedRequestMessage)
+ - [NotifyBlockAddedResponseMessage](#protowire.NotifyBlockAddedResponseMessage)
+ - [BlockAddedNotificationMessage](#protowire.BlockAddedNotificationMessage)
+ - [GetPeerAddressesRequestMessage](#protowire.GetPeerAddressesRequestMessage)
+ - [GetPeerAddressesResponseMessage](#protowire.GetPeerAddressesResponseMessage)
+ - [GetPeerAddressesKnownAddressMessage](#protowire.GetPeerAddressesKnownAddressMessage)
+ - [GetSelectedTipHashRequestMessage](#protowire.GetSelectedTipHashRequestMessage)
+ - [GetSelectedTipHashResponseMessage](#protowire.GetSelectedTipHashResponseMessage)
+ - [GetMempoolEntryRequestMessage](#protowire.GetMempoolEntryRequestMessage)
+ - [GetMempoolEntryResponseMessage](#protowire.GetMempoolEntryResponseMessage)
+ - [GetMempoolEntriesRequestMessage](#protowire.GetMempoolEntriesRequestMessage)
+ - [GetMempoolEntriesResponseMessage](#protowire.GetMempoolEntriesResponseMessage)
+ - [MempoolEntry](#protowire.MempoolEntry)
+ - [GetConnectedPeerInfoRequestMessage](#protowire.GetConnectedPeerInfoRequestMessage)
+ - [GetConnectedPeerInfoResponseMessage](#protowire.GetConnectedPeerInfoResponseMessage)
+ - [GetConnectedPeerInfoMessage](#protowire.GetConnectedPeerInfoMessage)
+ - [AddPeerRequestMessage](#protowire.AddPeerRequestMessage)
- [AddPeerResponseMessage](#protowire.AddPeerResponseMessage)
- [SubmitTransactionRequestMessage](#protowire.SubmitTransactionRequestMessage)
- [SubmitTransactionResponseMessage](#protowire.SubmitTransactionResponseMessage)
@@ -40,10 +50,6 @@
- [AcceptedBlock](#protowire.AcceptedBlock)
- [GetBlockRequestMessage](#protowire.GetBlockRequestMessage)
- [GetBlockResponseMessage](#protowire.GetBlockResponseMessage)
- - [BlockVerboseData](#protowire.BlockVerboseData)
- - [TransactionVerboseData](#protowire.TransactionVerboseData)
- - [TransactionVerboseInput](#protowire.TransactionVerboseInput)
- - [TransactionVerboseOutput](#protowire.TransactionVerboseOutput)
- [GetSubnetworkRequestMessage](#protowire.GetSubnetworkRequestMessage)
- [GetSubnetworkResponseMessage](#protowire.GetSubnetworkResponseMessage)
- [GetVirtualSelectedParentChainFromBlockRequestMessage](#protowire.GetVirtualSelectedParentChainFromBlockRequestMessage)
@@ -70,12 +76,6 @@
- [UtxosByAddressesEntry](#protowire.UtxosByAddressesEntry)
- [StopNotifyingUtxosChangedRequestMessage](#protowire.StopNotifyingUtxosChangedRequestMessage)
- [StopNotifyingUtxosChangedResponseMessage](#protowire.StopNotifyingUtxosChangedResponseMessage)
- - [RpcTransaction](#protowire.RpcTransaction)
- - [RpcTransactionInput](#protowire.RpcTransactionInput)
- - [RpcScriptPublicKey](#protowire.RpcScriptPublicKey)
- - [RpcTransactionOutput](#protowire.RpcTransactionOutput)
- - [RpcOutpoint](#protowire.RpcOutpoint)
- - [RpcUtxoEntry](#protowire.RpcUtxoEntry)
- [GetUtxosByAddressesRequestMessage](#protowire.GetUtxosByAddressesRequestMessage)
- [GetUtxosByAddressesResponseMessage](#protowire.GetUtxosByAddressesResponseMessage)
- [GetVirtualSelectedParentBlueScoreRequestMessage](#protowire.GetVirtualSelectedParentBlueScoreRequestMessage)
@@ -83,6 +83,9 @@
- [NotifyVirtualSelectedParentBlueScoreChangedRequestMessage](#protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage)
- [NotifyVirtualSelectedParentBlueScoreChangedResponseMessage](#protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage)
- [VirtualSelectedParentBlueScoreChangedNotificationMessage](#protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage)
+ - [NotifyVirtualDaaScoreChangedRequestMessage](#protowire.NotifyVirtualDaaScoreChangedRequestMessage)
+ - [NotifyVirtualDaaScoreChangedResponseMessage](#protowire.NotifyVirtualDaaScoreChangedResponseMessage)
+ - [VirtualDaaScoreChangedNotificationMessage](#protowire.VirtualDaaScoreChangedNotificationMessage)
- [NotifyPruningPointUTXOSetOverrideRequestMessage](#protowire.NotifyPruningPointUTXOSetOverrideRequestMessage)
- [NotifyPruningPointUTXOSetOverrideResponseMessage](#protowire.NotifyPruningPointUTXOSetOverrideResponseMessage)
- [PruningPointUTXOSetOverrideNotificationMessage](#protowire.PruningPointUTXOSetOverrideNotificationMessage)
@@ -132,6 +135,218 @@ Receivers of any ResponseMessage are expected to check whether its error field i
+
+
+### RpcBlock
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| header | [RpcBlockHeader](#protowire.RpcBlockHeader) | | |
+| transactions | [RpcTransaction](#protowire.RpcTransaction) | repeated | |
+| verboseData | [RpcBlockVerboseData](#protowire.RpcBlockVerboseData) | | |
+
+
+
+
+
+
+
+
+### RpcBlockHeader
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| version | [uint32](#uint32) | | |
+| parentHashes | [string](#string) | repeated | |
+| hashMerkleRoot | [string](#string) | | |
+| acceptedIdMerkleRoot | [string](#string) | | |
+| utxoCommitment | [string](#string) | | |
+| timestamp | [int64](#int64) | | |
+| bits | [uint32](#uint32) | | |
+| nonce | [uint64](#uint64) | | |
+
+
+
+
+
+
+
+
+### RpcBlockVerboseData
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| hash | [string](#string) | | |
+| difficulty | [double](#double) | | |
+| selectedParentHash | [string](#string) | | |
+| transactionIds | [string](#string) | repeated | |
+| isHeaderOnly | [bool](#bool) | | |
+| blueScore | [uint64](#uint64) | | |
+| childrenHashes | [string](#string) | repeated | |
+
+
+
+
+
+
+
+
+### RpcTransaction
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| version | [uint32](#uint32) | | |
+| inputs | [RpcTransactionInput](#protowire.RpcTransactionInput) | repeated | |
+| outputs | [RpcTransactionOutput](#protowire.RpcTransactionOutput) | repeated | |
+| lockTime | [uint64](#uint64) | | |
+| subnetworkId | [string](#string) | | |
+| gas | [uint64](#uint64) | | |
+| payload | [string](#string) | | |
+| verboseData | [RpcTransactionVerboseData](#protowire.RpcTransactionVerboseData) | | |
+
+
+
+
+
+
+
+
+### RpcTransactionInput
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| previousOutpoint | [RpcOutpoint](#protowire.RpcOutpoint) | | |
+| signatureScript | [string](#string) | | |
+| sequence | [uint64](#uint64) | | |
+| verboseData | [RpcTransactionInputVerboseData](#protowire.RpcTransactionInputVerboseData) | | |
+
+
+
+
+
+
+
+
+### RpcScriptPublicKey
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| version | [uint32](#uint32) | | |
+| scriptPublicKey | [string](#string) | | |
+
+
+
+
+
+
+
+
+### RpcTransactionOutput
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| amount | [uint64](#uint64) | | |
+| scriptPublicKey | [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) | | |
+| verboseData | [RpcTransactionOutputVerboseData](#protowire.RpcTransactionOutputVerboseData) | | |
+
+
+
+
+
+
+
+
+### RpcOutpoint
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| transactionId | [string](#string) | | |
+| index | [uint32](#uint32) | | |
+
+
+
+
+
+
+
+
+### RpcUtxoEntry
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| amount | [uint64](#uint64) | | |
+| scriptPublicKey | [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) | | |
+| blockDaaScore | [uint64](#uint64) | | |
+| isCoinbase | [bool](#bool) | | |
+
+
+
+
+
+
+
+
+### RpcTransactionVerboseData
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| transactionId | [string](#string) | | |
+| hash | [string](#string) | | |
+| size | [uint64](#uint64) | | |
+| blockHash | [string](#string) | | |
+| blockTime | [uint64](#uint64) | | |
+
+
+
+
+
+
+
+
+### RpcTransactionInputVerboseData
+
+
+
+
+
+
+
+
+
+### RpcTransactionOutputVerboseData
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| scriptPublicKeyType | [string](#string) | | |
+| scriptPublicKeyAddress | [string](#string) | | |
+
+
+
+
+
+
### GetCurrentNetworkRequestMessage
@@ -163,44 +378,27 @@ Possible networks are: Mainnet, Testnet, Simnet, Devnet
### SubmitBlockRequestMessage
-
-SubmitBlockRequestMessage requests to submit a block into the DAG. Blocks are generally expected to have been generated
-using the getBlockTemplate call.
+SubmitBlockRequestMessage requests to submit a block into the DAG.
+Blocks are generally expected to have been generated using the getBlockTemplate call.
See: GetBlockTemplateRequestMessage
+
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| block | [RpcBlock](#protowire.RpcBlock) | | |
-
-### RpcBlock
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| header | [RpcBlockHeader](#protowire.RpcBlockHeader) | | |
-| transactions | [RpcTransaction](#protowire.RpcTransaction) | repeated | |
-
-### RpcBlockHeader
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| version | [uint32](#uint32) | | |
-| parentHashes | [string](#string) | repeated | |
-| hashMerkleRoot | [string](#string) | | |
-| acceptedIdMerkleRoot | [string](#string) | | |
-| utxoCommitment | [string](#string) | | |
-| timestamp | [int64](#int64) | | |
-| bits | [uint32](#uint32) | | |
-| nonce | [uint64](#uint64) | | |
### SubmitBlockResponseMessage
+
+
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| rejectReason | [SubmitBlockResponseMessage.RejectReason](#protowire.SubmitBlockResponseMessage.RejectReason) | | |
@@ -284,7 +482,7 @@ See: NotifyBlockAddedRequestMessage
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| blockVerboseData | [BlockVerboseData](#protowire.BlockVerboseData) | | |
+| block | [RpcBlock](#protowire.RpcBlock) | | |
@@ -429,7 +627,7 @@ currently in the mempool.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| fee | [uint64](#uint64) | | |
-| transactionVerboseData | [TransactionVerboseData](#protowire.TransactionVerboseData) | | |
+| transaction | [RpcTransaction](#protowire.RpcTransaction) | | |
@@ -651,78 +849,8 @@ GetBlockRequestMessage requests information about a specific block
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
-| blockHash | [string](#string) | | |
-| blockVerboseData | [BlockVerboseData](#protowire.BlockVerboseData) | | |
-| error | [RPCError](#protowire.RPCError) | | |
-
-
-
-
-
-
-
-
-### BlockVerboseData
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| hash | [string](#string) | | |
| block | [RpcBlock](#protowire.RpcBlock) | | |
-| transactionVerboseData | [TransactionVerboseData](#protowire.TransactionVerboseData) | repeated | |
-| difficulty | [double](#double) | | |
-| childrenHashes | [string](#string) | repeated | |
-| selectedParentHash | [string](#string) | | |
-| transactionIDs | [string](#string) | repeated | |
-| isHeaderOnly | [bool](#bool) | | |
-| blueScore | [uint64](#uint64) | | |
-
-
-
-
-
-
-
-
-### TransactionVerboseData
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| txId | [string](#string) | | |
-| hash | [string](#string) | | |
-| size | [uint64](#uint64) | | |
-| transactionVerboseInputs | [TransactionVerboseInput](#protowire.TransactionVerboseInput) | repeated | |
-| transactionVerboseOutputs | [TransactionVerboseOutput](#protowire.TransactionVerboseOutput) | repeated | |
-| blockHash | [string](#string) | | |
-| blockTime | [uint64](#uint64) | | |
-| transaction | [RpcTransaction](#protowire.RpcTransaction) | | |
-
-
-
-
-
-
-
-
-### TransactionVerboseInput
-
-
-
-
-
-
-
-
-
-### TransactionVerboseOutput
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| scriptPublicKeyType | [string](#string) | | |
-| scriptPublicKeyAddress | [string](#string) | | |
+| error | [RPCError](#protowire.RPCError) | | |
@@ -805,7 +933,7 @@ kaspad's current virtual.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| lowHash | [string](#string) | | |
-| includeBlockVerboseData | [bool](#bool) | | |
+| includeBlocks | [bool](#bool) | | |
| includeTransactionVerboseData | [bool](#bool) | | |
@@ -822,7 +950,7 @@ kaspad's current virtual.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| blockHashes | [string](#string) | repeated | |
-| blockVerboseData | [BlockVerboseData](#protowire.BlockVerboseData) | repeated | |
+| blocks | [RpcBlock](#protowire.RpcBlock) | repeated | |
| error | [RPCError](#protowire.RPCError) | | |
@@ -885,6 +1013,7 @@ of this kaspad's DAG.
| pastMedianTime | [int64](#int64) | | |
| virtualParentHashes | [string](#string) | repeated | |
| pruningPointHash | [string](#string) | | |
+| virtualDaaScore | [uint64](#uint64) | | |
| error | [RPCError](#protowire.RPCError) | | |
@@ -1141,110 +1270,6 @@ See: UtxosChangedNotificationMessage
-
-
-### RpcTransaction
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| version | [uint32](#uint32) | | |
-| inputs | [RpcTransactionInput](#protowire.RpcTransactionInput) | repeated | |
-| outputs | [RpcTransactionOutput](#protowire.RpcTransactionOutput) | repeated | |
-| lockTime | [uint64](#uint64) | | |
-| subnetworkId | [string](#string) | | |
-| gas | [uint64](#uint64) | | |
-| payload | [string](#string) | | |
-
-
-
-
-
-
-
-
-### RpcTransactionInput
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| previousOutpoint | [RpcOutpoint](#protowire.RpcOutpoint) | | |
-| signatureScript | [string](#string) | | |
-| sequence | [uint64](#uint64) | | |
-
-
-
-
-
-
-
-
-### RpcScriptPublicKey
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| version | [uint32](#uint32) | | |
-| scriptPublicKey | [string](#string) | | |
-
-
-
-
-
-
-
-
-### RpcTransactionOutput
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| amount | [uint64](#uint64) | | |
-| scriptPublicKey | [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) | | |
-
-
-
-
-
-
-
-
-### RpcOutpoint
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| transactionId | [string](#string) | | |
-| index | [uint32](#uint32) | | |
-
-
-
-
-
-
-
-
-### RpcUtxoEntry
-
-
-
-| Field | Type | Label | Description |
-| ----- | ---- | ----- | ----------- |
-| amount | [uint64](#uint64) | | |
-| scriptPublicKey | [RpcScriptPublicKey](#protowire.RpcScriptPublicKey) | | |
-| blockDaaScore | [uint64](#uint64) | | |
-| isCoinbase | [bool](#bool) | | |
-
-
-
-
-
-
### GetUtxosByAddressesRequestMessage
@@ -1351,6 +1376,52 @@ See NotifyVirtualSelectedParentBlueScoreChangedRequestMessage
+
+
+### NotifyVirtualDaaScoreChangedRequestMessage
+NotifyVirtualDaaScoreChangedRequestMessage registers this connection for
+virtualDaaScoreChanged notifications.
+
+See: VirtualDaaScoreChangedNotificationMessage
+
+
+
+
+
+
+
+
+### NotifyVirtualDaaScoreChangedResponseMessage
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [RPCError](#protowire.RPCError) | | |
+
+
+
+
+
+
+
+
+### VirtualDaaScoreChangedNotificationMessage
+VirtualDaaScoreChangedNotificationMessage is sent whenever the DAA score
+of the virtual changes.
+
+See NotifyVirtualDaaScoreChangedRequestMessage
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| virtualDaaScore | [uint64](#uint64) | | |
+
+
+
+
+
+
### NotifyPruningPointUTXOSetOverrideRequestMessage
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go
index 194728c6b..2b58ea918 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.pb.go
@@ -10,14 +10,13 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.25.0
+// protoc-gen-go v1.26.0
// protoc v3.12.3
// source: rpc.proto
package protowire
import (
- proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
@@ -31,10 +30,6 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
type SubmitBlockResponseMessage_RejectReason int32
const (
@@ -4486,6 +4481,146 @@ func (x *VirtualSelectedParentBlueScoreChangedNotificationMessage) GetVirtualSel
return 0
}
+// NotifyVirtualDaaScoreChangedRequestMessage registers this connection for
+// virtualDaaScoreChanged notifications.
+//
+// See: VirtualDaaScoreChangedNotificationMessage
+type NotifyVirtualDaaScoreChangedRequestMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *NotifyVirtualDaaScoreChangedRequestMessage) Reset() {
+ *x = NotifyVirtualDaaScoreChangedRequestMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rpc_proto_msgTypes[79]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NotifyVirtualDaaScoreChangedRequestMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NotifyVirtualDaaScoreChangedRequestMessage) ProtoMessage() {}
+
+func (x *NotifyVirtualDaaScoreChangedRequestMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_rpc_proto_msgTypes[79]
+ 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 NotifyVirtualDaaScoreChangedRequestMessage.ProtoReflect.Descriptor instead.
+func (*NotifyVirtualDaaScoreChangedRequestMessage) Descriptor() ([]byte, []int) {
+ return file_rpc_proto_rawDescGZIP(), []int{79}
+}
+
+type NotifyVirtualDaaScoreChangedResponseMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Error *RPCError `protobuf:"bytes,1000,opt,name=error,proto3" json:"error,omitempty"`
+}
+
+func (x *NotifyVirtualDaaScoreChangedResponseMessage) Reset() {
+ *x = NotifyVirtualDaaScoreChangedResponseMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rpc_proto_msgTypes[80]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NotifyVirtualDaaScoreChangedResponseMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NotifyVirtualDaaScoreChangedResponseMessage) ProtoMessage() {}
+
+func (x *NotifyVirtualDaaScoreChangedResponseMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_rpc_proto_msgTypes[80]
+ 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 NotifyVirtualDaaScoreChangedResponseMessage.ProtoReflect.Descriptor instead.
+func (*NotifyVirtualDaaScoreChangedResponseMessage) Descriptor() ([]byte, []int) {
+ return file_rpc_proto_rawDescGZIP(), []int{80}
+}
+
+func (x *NotifyVirtualDaaScoreChangedResponseMessage) GetError() *RPCError {
+ if x != nil {
+ return x.Error
+ }
+ return nil
+}
+
+// VirtualDaaScoreChangedNotificationMessage is sent whenever the DAA score
+// of the virtual changes.
+//
+// See NotifyVirtualDaaScoreChangedRequestMessage
+type VirtualDaaScoreChangedNotificationMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ VirtualDaaScore uint64 `protobuf:"varint,1,opt,name=virtualDaaScore,proto3" json:"virtualDaaScore,omitempty"`
+}
+
+func (x *VirtualDaaScoreChangedNotificationMessage) Reset() {
+ *x = VirtualDaaScoreChangedNotificationMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rpc_proto_msgTypes[81]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *VirtualDaaScoreChangedNotificationMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VirtualDaaScoreChangedNotificationMessage) ProtoMessage() {}
+
+func (x *VirtualDaaScoreChangedNotificationMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_rpc_proto_msgTypes[81]
+ 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 VirtualDaaScoreChangedNotificationMessage.ProtoReflect.Descriptor instead.
+func (*VirtualDaaScoreChangedNotificationMessage) Descriptor() ([]byte, []int) {
+ return file_rpc_proto_rawDescGZIP(), []int{81}
+}
+
+func (x *VirtualDaaScoreChangedNotificationMessage) GetVirtualDaaScore() uint64 {
+ if x != nil {
+ return x.VirtualDaaScore
+ }
+ return 0
+}
+
// NotifyPruningPointUTXOSetOverrideRequestMessage registers this connection for
// pruning point UTXO set override notifications.
//
@@ -4501,7 +4636,7 @@ type NotifyPruningPointUTXOSetOverrideRequestMessage struct {
func (x *NotifyPruningPointUTXOSetOverrideRequestMessage) Reset() {
*x = NotifyPruningPointUTXOSetOverrideRequestMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[79]
+ mi := &file_rpc_proto_msgTypes[82]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4514,7 +4649,7 @@ func (x *NotifyPruningPointUTXOSetOverrideRequestMessage) String() string {
func (*NotifyPruningPointUTXOSetOverrideRequestMessage) ProtoMessage() {}
func (x *NotifyPruningPointUTXOSetOverrideRequestMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[79]
+ mi := &file_rpc_proto_msgTypes[82]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4527,7 +4662,7 @@ func (x *NotifyPruningPointUTXOSetOverrideRequestMessage) ProtoReflect() protore
// Deprecated: Use NotifyPruningPointUTXOSetOverrideRequestMessage.ProtoReflect.Descriptor instead.
func (*NotifyPruningPointUTXOSetOverrideRequestMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{79}
+ return file_rpc_proto_rawDescGZIP(), []int{82}
}
type NotifyPruningPointUTXOSetOverrideResponseMessage struct {
@@ -4541,7 +4676,7 @@ type NotifyPruningPointUTXOSetOverrideResponseMessage struct {
func (x *NotifyPruningPointUTXOSetOverrideResponseMessage) Reset() {
*x = NotifyPruningPointUTXOSetOverrideResponseMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[80]
+ mi := &file_rpc_proto_msgTypes[83]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4554,7 +4689,7 @@ func (x *NotifyPruningPointUTXOSetOverrideResponseMessage) String() string {
func (*NotifyPruningPointUTXOSetOverrideResponseMessage) ProtoMessage() {}
func (x *NotifyPruningPointUTXOSetOverrideResponseMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[80]
+ mi := &file_rpc_proto_msgTypes[83]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4567,7 +4702,7 @@ func (x *NotifyPruningPointUTXOSetOverrideResponseMessage) ProtoReflect() protor
// Deprecated: Use NotifyPruningPointUTXOSetOverrideResponseMessage.ProtoReflect.Descriptor instead.
func (*NotifyPruningPointUTXOSetOverrideResponseMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{80}
+ return file_rpc_proto_rawDescGZIP(), []int{83}
}
func (x *NotifyPruningPointUTXOSetOverrideResponseMessage) GetError() *RPCError {
@@ -4590,7 +4725,7 @@ type PruningPointUTXOSetOverrideNotificationMessage struct {
func (x *PruningPointUTXOSetOverrideNotificationMessage) Reset() {
*x = PruningPointUTXOSetOverrideNotificationMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[81]
+ mi := &file_rpc_proto_msgTypes[84]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4603,7 +4738,7 @@ func (x *PruningPointUTXOSetOverrideNotificationMessage) String() string {
func (*PruningPointUTXOSetOverrideNotificationMessage) ProtoMessage() {}
func (x *PruningPointUTXOSetOverrideNotificationMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[81]
+ mi := &file_rpc_proto_msgTypes[84]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4616,7 +4751,7 @@ func (x *PruningPointUTXOSetOverrideNotificationMessage) ProtoReflect() protoref
// Deprecated: Use PruningPointUTXOSetOverrideNotificationMessage.ProtoReflect.Descriptor instead.
func (*PruningPointUTXOSetOverrideNotificationMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{81}
+ return file_rpc_proto_rawDescGZIP(), []int{84}
}
// StopNotifyingPruningPointUTXOSetOverrideRequestMessage unregisters this connection for
@@ -4634,7 +4769,7 @@ type StopNotifyingPruningPointUTXOSetOverrideRequestMessage struct {
func (x *StopNotifyingPruningPointUTXOSetOverrideRequestMessage) Reset() {
*x = StopNotifyingPruningPointUTXOSetOverrideRequestMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[82]
+ mi := &file_rpc_proto_msgTypes[85]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4647,7 +4782,7 @@ func (x *StopNotifyingPruningPointUTXOSetOverrideRequestMessage) String() string
func (*StopNotifyingPruningPointUTXOSetOverrideRequestMessage) ProtoMessage() {}
func (x *StopNotifyingPruningPointUTXOSetOverrideRequestMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[82]
+ mi := &file_rpc_proto_msgTypes[85]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4660,7 +4795,7 @@ func (x *StopNotifyingPruningPointUTXOSetOverrideRequestMessage) ProtoReflect()
// Deprecated: Use StopNotifyingPruningPointUTXOSetOverrideRequestMessage.ProtoReflect.Descriptor instead.
func (*StopNotifyingPruningPointUTXOSetOverrideRequestMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{82}
+ return file_rpc_proto_rawDescGZIP(), []int{85}
}
type StopNotifyingPruningPointUTXOSetOverrideResponseMessage struct {
@@ -4674,7 +4809,7 @@ type StopNotifyingPruningPointUTXOSetOverrideResponseMessage struct {
func (x *StopNotifyingPruningPointUTXOSetOverrideResponseMessage) Reset() {
*x = StopNotifyingPruningPointUTXOSetOverrideResponseMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[83]
+ mi := &file_rpc_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4687,7 +4822,7 @@ func (x *StopNotifyingPruningPointUTXOSetOverrideResponseMessage) String() strin
func (*StopNotifyingPruningPointUTXOSetOverrideResponseMessage) ProtoMessage() {}
func (x *StopNotifyingPruningPointUTXOSetOverrideResponseMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[83]
+ mi := &file_rpc_proto_msgTypes[86]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4700,7 +4835,7 @@ func (x *StopNotifyingPruningPointUTXOSetOverrideResponseMessage) ProtoReflect()
// Deprecated: Use StopNotifyingPruningPointUTXOSetOverrideResponseMessage.ProtoReflect.Descriptor instead.
func (*StopNotifyingPruningPointUTXOSetOverrideResponseMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{83}
+ return file_rpc_proto_rawDescGZIP(), []int{86}
}
func (x *StopNotifyingPruningPointUTXOSetOverrideResponseMessage) GetError() *RPCError {
@@ -4722,7 +4857,7 @@ type BanRequestMessage struct {
func (x *BanRequestMessage) Reset() {
*x = BanRequestMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[84]
+ mi := &file_rpc_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4735,7 +4870,7 @@ func (x *BanRequestMessage) String() string {
func (*BanRequestMessage) ProtoMessage() {}
func (x *BanRequestMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[84]
+ mi := &file_rpc_proto_msgTypes[87]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4748,7 +4883,7 @@ func (x *BanRequestMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use BanRequestMessage.ProtoReflect.Descriptor instead.
func (*BanRequestMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{84}
+ return file_rpc_proto_rawDescGZIP(), []int{87}
}
func (x *BanRequestMessage) GetIp() string {
@@ -4769,7 +4904,7 @@ type BanResponseMessage struct {
func (x *BanResponseMessage) Reset() {
*x = BanResponseMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[85]
+ mi := &file_rpc_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4782,7 +4917,7 @@ func (x *BanResponseMessage) String() string {
func (*BanResponseMessage) ProtoMessage() {}
func (x *BanResponseMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[85]
+ mi := &file_rpc_proto_msgTypes[88]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4795,7 +4930,7 @@ func (x *BanResponseMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use BanResponseMessage.ProtoReflect.Descriptor instead.
func (*BanResponseMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{85}
+ return file_rpc_proto_rawDescGZIP(), []int{88}
}
func (x *BanResponseMessage) GetError() *RPCError {
@@ -4817,7 +4952,7 @@ type UnbanRequestMessage struct {
func (x *UnbanRequestMessage) Reset() {
*x = UnbanRequestMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[86]
+ mi := &file_rpc_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4830,7 +4965,7 @@ func (x *UnbanRequestMessage) String() string {
func (*UnbanRequestMessage) ProtoMessage() {}
func (x *UnbanRequestMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[86]
+ mi := &file_rpc_proto_msgTypes[89]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4843,7 +4978,7 @@ func (x *UnbanRequestMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use UnbanRequestMessage.ProtoReflect.Descriptor instead.
func (*UnbanRequestMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{86}
+ return file_rpc_proto_rawDescGZIP(), []int{89}
}
func (x *UnbanRequestMessage) GetIp() string {
@@ -4864,7 +4999,7 @@ type UnbanResponseMessage struct {
func (x *UnbanResponseMessage) Reset() {
*x = UnbanResponseMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[87]
+ mi := &file_rpc_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4877,7 +5012,7 @@ func (x *UnbanResponseMessage) String() string {
func (*UnbanResponseMessage) ProtoMessage() {}
func (x *UnbanResponseMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[87]
+ mi := &file_rpc_proto_msgTypes[90]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4890,7 +5025,7 @@ func (x *UnbanResponseMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use UnbanResponseMessage.ProtoReflect.Descriptor instead.
func (*UnbanResponseMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{87}
+ return file_rpc_proto_rawDescGZIP(), []int{90}
}
func (x *UnbanResponseMessage) GetError() *RPCError {
@@ -4910,7 +5045,7 @@ type GetInfoRequestMessage struct {
func (x *GetInfoRequestMessage) Reset() {
*x = GetInfoRequestMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[88]
+ mi := &file_rpc_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4923,7 +5058,7 @@ func (x *GetInfoRequestMessage) String() string {
func (*GetInfoRequestMessage) ProtoMessage() {}
func (x *GetInfoRequestMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[88]
+ mi := &file_rpc_proto_msgTypes[91]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4936,7 +5071,7 @@ func (x *GetInfoRequestMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetInfoRequestMessage.ProtoReflect.Descriptor instead.
func (*GetInfoRequestMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{88}
+ return file_rpc_proto_rawDescGZIP(), []int{91}
}
type GetInfoResponseMessage struct {
@@ -4952,7 +5087,7 @@ type GetInfoResponseMessage struct {
func (x *GetInfoResponseMessage) Reset() {
*x = GetInfoResponseMessage{}
if protoimpl.UnsafeEnabled {
- mi := &file_rpc_proto_msgTypes[89]
+ mi := &file_rpc_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4965,7 +5100,7 @@ func (x *GetInfoResponseMessage) String() string {
func (*GetInfoResponseMessage) ProtoMessage() {}
func (x *GetInfoResponseMessage) ProtoReflect() protoreflect.Message {
- mi := &file_rpc_proto_msgTypes[89]
+ mi := &file_rpc_proto_msgTypes[92]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4978,7 +5113,7 @@ func (x *GetInfoResponseMessage) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetInfoResponseMessage.ProtoReflect.Descriptor instead.
func (*GetInfoResponseMessage) Descriptor() ([]byte, []int) {
- return file_rpc_proto_rawDescGZIP(), []int{89}
+ return file_rpc_proto_rawDescGZIP(), []int{92}
}
func (x *GetInfoResponseMessage) GetP2PId() string {
@@ -5583,6 +5718,20 @@ var file_rpc_proto_rawDesc = []byte{
0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65,
+ 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x2c, 0x0a, 0x2a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56,
+ 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x22, 0x59, 0x0a, 0x2b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x56, 0x69, 0x72,
+ 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xe8, 0x07, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x77, 0x69, 0x72, 0x65, 0x2e, 0x52,
+ 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x55,
+ 0x0a, 0x29, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72,
+ 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x76,
+ 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x61,
0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x31, 0x0a, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50,
0x72, 0x75, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x54, 0x58, 0x4f, 0x53,
0x65, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
@@ -5647,7 +5796,7 @@ func file_rpc_proto_rawDescGZIP() []byte {
}
var file_rpc_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 90)
+var file_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 93)
var file_rpc_proto_goTypes = []interface{}{
(SubmitBlockResponseMessage_RejectReason)(0), // 0: protowire.SubmitBlockResponseMessage.RejectReason
(*RPCError)(nil), // 1: protowire.RPCError
@@ -5729,17 +5878,20 @@ var file_rpc_proto_goTypes = []interface{}{
(*NotifyVirtualSelectedParentBlueScoreChangedRequestMessage)(nil), // 77: protowire.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage
(*NotifyVirtualSelectedParentBlueScoreChangedResponseMessage)(nil), // 78: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage
(*VirtualSelectedParentBlueScoreChangedNotificationMessage)(nil), // 79: protowire.VirtualSelectedParentBlueScoreChangedNotificationMessage
- (*NotifyPruningPointUTXOSetOverrideRequestMessage)(nil), // 80: protowire.NotifyPruningPointUTXOSetOverrideRequestMessage
- (*NotifyPruningPointUTXOSetOverrideResponseMessage)(nil), // 81: protowire.NotifyPruningPointUTXOSetOverrideResponseMessage
- (*PruningPointUTXOSetOverrideNotificationMessage)(nil), // 82: protowire.PruningPointUTXOSetOverrideNotificationMessage
- (*StopNotifyingPruningPointUTXOSetOverrideRequestMessage)(nil), // 83: protowire.StopNotifyingPruningPointUTXOSetOverrideRequestMessage
- (*StopNotifyingPruningPointUTXOSetOverrideResponseMessage)(nil), // 84: protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage
- (*BanRequestMessage)(nil), // 85: protowire.BanRequestMessage
- (*BanResponseMessage)(nil), // 86: protowire.BanResponseMessage
- (*UnbanRequestMessage)(nil), // 87: protowire.UnbanRequestMessage
- (*UnbanResponseMessage)(nil), // 88: protowire.UnbanResponseMessage
- (*GetInfoRequestMessage)(nil), // 89: protowire.GetInfoRequestMessage
- (*GetInfoResponseMessage)(nil), // 90: protowire.GetInfoResponseMessage
+ (*NotifyVirtualDaaScoreChangedRequestMessage)(nil), // 80: protowire.NotifyVirtualDaaScoreChangedRequestMessage
+ (*NotifyVirtualDaaScoreChangedResponseMessage)(nil), // 81: protowire.NotifyVirtualDaaScoreChangedResponseMessage
+ (*VirtualDaaScoreChangedNotificationMessage)(nil), // 82: protowire.VirtualDaaScoreChangedNotificationMessage
+ (*NotifyPruningPointUTXOSetOverrideRequestMessage)(nil), // 83: protowire.NotifyPruningPointUTXOSetOverrideRequestMessage
+ (*NotifyPruningPointUTXOSetOverrideResponseMessage)(nil), // 84: protowire.NotifyPruningPointUTXOSetOverrideResponseMessage
+ (*PruningPointUTXOSetOverrideNotificationMessage)(nil), // 85: protowire.PruningPointUTXOSetOverrideNotificationMessage
+ (*StopNotifyingPruningPointUTXOSetOverrideRequestMessage)(nil), // 86: protowire.StopNotifyingPruningPointUTXOSetOverrideRequestMessage
+ (*StopNotifyingPruningPointUTXOSetOverrideResponseMessage)(nil), // 87: protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage
+ (*BanRequestMessage)(nil), // 88: protowire.BanRequestMessage
+ (*BanResponseMessage)(nil), // 89: protowire.BanResponseMessage
+ (*UnbanRequestMessage)(nil), // 90: protowire.UnbanRequestMessage
+ (*UnbanResponseMessage)(nil), // 91: protowire.UnbanResponseMessage
+ (*GetInfoRequestMessage)(nil), // 92: protowire.GetInfoRequestMessage
+ (*GetInfoResponseMessage)(nil), // 93: protowire.GetInfoResponseMessage
}
var file_rpc_proto_depIdxs = []int32{
3, // 0: protowire.RpcBlock.header:type_name -> protowire.RpcBlockHeader
@@ -5801,16 +5953,17 @@ var file_rpc_proto_depIdxs = []int32{
1, // 56: protowire.GetUtxosByAddressesResponseMessage.error:type_name -> protowire.RPCError
1, // 57: protowire.GetVirtualSelectedParentBlueScoreResponseMessage.error:type_name -> protowire.RPCError
1, // 58: protowire.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage.error:type_name -> protowire.RPCError
- 1, // 59: protowire.NotifyPruningPointUTXOSetOverrideResponseMessage.error:type_name -> protowire.RPCError
- 1, // 60: protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage.error:type_name -> protowire.RPCError
- 1, // 61: protowire.BanResponseMessage.error:type_name -> protowire.RPCError
- 1, // 62: protowire.UnbanResponseMessage.error:type_name -> protowire.RPCError
- 1, // 63: protowire.GetInfoResponseMessage.error:type_name -> protowire.RPCError
- 64, // [64:64] is the sub-list for method output_type
- 64, // [64:64] is the sub-list for method input_type
- 64, // [64:64] is the sub-list for extension type_name
- 64, // [64:64] is the sub-list for extension extendee
- 0, // [0:64] is the sub-list for field type_name
+ 1, // 59: protowire.NotifyVirtualDaaScoreChangedResponseMessage.error:type_name -> protowire.RPCError
+ 1, // 60: protowire.NotifyPruningPointUTXOSetOverrideResponseMessage.error:type_name -> protowire.RPCError
+ 1, // 61: protowire.StopNotifyingPruningPointUTXOSetOverrideResponseMessage.error:type_name -> protowire.RPCError
+ 1, // 62: protowire.BanResponseMessage.error:type_name -> protowire.RPCError
+ 1, // 63: protowire.UnbanResponseMessage.error:type_name -> protowire.RPCError
+ 1, // 64: protowire.GetInfoResponseMessage.error:type_name -> protowire.RPCError
+ 65, // [65:65] is the sub-list for method output_type
+ 65, // [65:65] is the sub-list for method input_type
+ 65, // [65:65] is the sub-list for extension type_name
+ 65, // [65:65] is the sub-list for extension extendee
+ 0, // [0:65] is the sub-list for field type_name
}
func init() { file_rpc_proto_init() }
@@ -6768,7 +6921,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NotifyPruningPointUTXOSetOverrideRequestMessage); i {
+ switch v := v.(*NotifyVirtualDaaScoreChangedRequestMessage); i {
case 0:
return &v.state
case 1:
@@ -6780,7 +6933,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NotifyPruningPointUTXOSetOverrideResponseMessage); i {
+ switch v := v.(*NotifyVirtualDaaScoreChangedResponseMessage); i {
case 0:
return &v.state
case 1:
@@ -6792,7 +6945,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PruningPointUTXOSetOverrideNotificationMessage); i {
+ switch v := v.(*VirtualDaaScoreChangedNotificationMessage); i {
case 0:
return &v.state
case 1:
@@ -6804,7 +6957,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StopNotifyingPruningPointUTXOSetOverrideRequestMessage); i {
+ switch v := v.(*NotifyPruningPointUTXOSetOverrideRequestMessage); i {
case 0:
return &v.state
case 1:
@@ -6816,7 +6969,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StopNotifyingPruningPointUTXOSetOverrideResponseMessage); i {
+ switch v := v.(*NotifyPruningPointUTXOSetOverrideResponseMessage); i {
case 0:
return &v.state
case 1:
@@ -6828,7 +6981,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BanRequestMessage); i {
+ switch v := v.(*PruningPointUTXOSetOverrideNotificationMessage); i {
case 0:
return &v.state
case 1:
@@ -6840,7 +6993,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BanResponseMessage); i {
+ switch v := v.(*StopNotifyingPruningPointUTXOSetOverrideRequestMessage); i {
case 0:
return &v.state
case 1:
@@ -6852,7 +7005,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UnbanRequestMessage); i {
+ switch v := v.(*StopNotifyingPruningPointUTXOSetOverrideResponseMessage); i {
case 0:
return &v.state
case 1:
@@ -6864,7 +7017,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UnbanResponseMessage); i {
+ switch v := v.(*BanRequestMessage); i {
case 0:
return &v.state
case 1:
@@ -6876,7 +7029,7 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetInfoRequestMessage); i {
+ switch v := v.(*BanResponseMessage); i {
case 0:
return &v.state
case 1:
@@ -6888,6 +7041,42 @@ func file_rpc_proto_init() {
}
}
file_rpc_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnbanRequestMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_rpc_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnbanResponseMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_rpc_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetInfoRequestMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_rpc_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetInfoResponseMessage); i {
case 0:
return &v.state
@@ -6906,7 +7095,7 @@ func file_rpc_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_rpc_proto_rawDesc,
NumEnums: 1,
- NumMessages: 90,
+ NumMessages: 93,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto
index 15ecbb549..ace6a754c 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc.proto
@@ -528,6 +528,25 @@ message VirtualSelectedParentBlueScoreChangedNotificationMessage {
uint64 virtualSelectedParentBlueScore = 1;
}
+// NotifyVirtualDaaScoreChangedRequestMessage registers this connection for
+// virtualDaaScoreChanged notifications.
+//
+// See: VirtualDaaScoreChangedNotificationMessage
+message NotifyVirtualDaaScoreChangedRequestMessage {
+}
+
+message NotifyVirtualDaaScoreChangedResponseMessage {
+ RPCError error = 1000;
+}
+
+// VirtualDaaScoreChangedNotificationMessage is sent whenever the DAA score
+// of the virtual changes.
+//
+// See NotifyVirtualDaaScoreChangedRequestMessage
+message VirtualDaaScoreChangedNotificationMessage {
+ uint64 virtualDaaScore = 1;
+}
+
// NotifyPruningPointUTXOSetOverrideRequestMessage registers this connection for
// pruning point UTXO set override notifications.
//
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_notify_virtual_daa_score_changed.go b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_notify_virtual_daa_score_changed.go
new file mode 100644
index 000000000..b6b59ea46
--- /dev/null
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/rpc_notify_virtual_daa_score_changed.go
@@ -0,0 +1,73 @@
+package protowire
+
+import (
+ "github.com/kaspanet/kaspad/app/appmessage"
+ "github.com/pkg/errors"
+)
+
+func (x *KaspadMessage_NotifyVirtualDaaScoreChangedRequest) toAppMessage() (appmessage.Message, error) {
+ if x == nil {
+ return nil, errors.Wrapf(errorNil, "KaspadMessage_NotifyVirtualDaaScoreChangedRequest is nil")
+ }
+ return &appmessage.NotifyVirtualDaaScoreChangedRequestMessage{}, nil
+}
+
+func (x *KaspadMessage_NotifyVirtualDaaScoreChangedRequest) fromAppMessage(_ *appmessage.NotifyVirtualDaaScoreChangedRequestMessage) error {
+ x.NotifyVirtualDaaScoreChangedRequest = &NotifyVirtualDaaScoreChangedRequestMessage{}
+ return nil
+}
+
+func (x *KaspadMessage_NotifyVirtualDaaScoreChangedResponse) toAppMessage() (appmessage.Message, error) {
+ if x == nil {
+ return nil, errors.Wrapf(errorNil, "KaspadMessage_NotifyVirtualDaaScoreChangedResponse is nil")
+ }
+ return x.NotifyVirtualDaaScoreChangedResponse.toAppMessage()
+}
+
+func (x *KaspadMessage_NotifyVirtualDaaScoreChangedResponse) fromAppMessage(message *appmessage.NotifyVirtualDaaScoreChangedResponseMessage) error {
+ var err *RPCError
+ if message.Error != nil {
+ err = &RPCError{Message: message.Error.Message}
+ }
+ x.NotifyVirtualDaaScoreChangedResponse = &NotifyVirtualDaaScoreChangedResponseMessage{
+ Error: err,
+ }
+ return nil
+}
+
+func (x *NotifyVirtualDaaScoreChangedResponseMessage) toAppMessage() (appmessage.Message, error) {
+ if x == nil {
+ return nil, errors.Wrapf(errorNil, "NotifyVirtualDaaScoreChangedResponseMessage is nil")
+ }
+ rpcErr, err := x.Error.toAppMessage()
+ // Error is an optional field
+ if err != nil && !errors.Is(err, errorNil) {
+ return nil, err
+ }
+ return &appmessage.NotifyVirtualDaaScoreChangedResponseMessage{
+ Error: rpcErr,
+ }, nil
+}
+
+func (x *KaspadMessage_VirtualDaaScoreChangedNotification) toAppMessage() (appmessage.Message, error) {
+ if x == nil {
+ return nil, errors.Wrapf(errorNil, "KaspadMessage_VirtualDaaScoreChangedNotification is nil")
+ }
+ return x.VirtualDaaScoreChangedNotification.toAppMessage()
+}
+
+func (x *KaspadMessage_VirtualDaaScoreChangedNotification) fromAppMessage(message *appmessage.VirtualDaaScoreChangedNotificationMessage) error {
+ x.VirtualDaaScoreChangedNotification = &VirtualDaaScoreChangedNotificationMessage{
+ VirtualDaaScore: message.VirtualDaaScore,
+ }
+ return nil
+}
+
+func (x *VirtualDaaScoreChangedNotificationMessage) toAppMessage() (appmessage.Message, error) {
+ if x == nil {
+ return nil, errors.Wrapf(errorNil, "VirtualDaaScoreChangedNotificationMessage is nil")
+ }
+ return &appmessage.VirtualDaaScoreChangedNotificationMessage{
+ VirtualDaaScore: x.VirtualDaaScore,
+ }, nil
+}
diff --git a/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go b/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go
index b6ac2f064..48794ff50 100644
--- a/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go
+++ b/infrastructure/network/netadapter/server/grpcserver/protowire/wire.go
@@ -779,6 +779,27 @@ func toRPCPayload(message appmessage.Message) (isKaspadMessage_Payload, error) {
return nil, err
}
return payload, nil
+ case *appmessage.NotifyVirtualDaaScoreChangedRequestMessage:
+ payload := new(KaspadMessage_NotifyVirtualDaaScoreChangedRequest)
+ err := payload.fromAppMessage(message)
+ if err != nil {
+ return nil, err
+ }
+ return payload, nil
+ case *appmessage.NotifyVirtualDaaScoreChangedResponseMessage:
+ payload := new(KaspadMessage_NotifyVirtualDaaScoreChangedResponse)
+ err := payload.fromAppMessage(message)
+ if err != nil {
+ return nil, err
+ }
+ return payload, nil
+ case *appmessage.VirtualDaaScoreChangedNotificationMessage:
+ payload := new(KaspadMessage_VirtualDaaScoreChangedNotification)
+ err := payload.fromAppMessage(message)
+ if err != nil {
+ return nil, err
+ }
+ return payload, nil
default:
return nil, nil
}
diff --git a/infrastructure/network/rpcclient/rpc_on_virtual_daa_score_changed.go b/infrastructure/network/rpcclient/rpc_on_virtual_daa_score_changed.go
new file mode 100644
index 000000000..8b6d044d0
--- /dev/null
+++ b/infrastructure/network/rpcclient/rpc_on_virtual_daa_score_changed.go
@@ -0,0 +1,41 @@
+package rpcclient
+
+import (
+ "github.com/kaspanet/kaspad/app/appmessage"
+ routerpkg "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
+ "github.com/pkg/errors"
+)
+
+// RegisterForVirtualDaaScoreChangedNotifications sends an RPC request respective to the function's
+// name and returns the RPC server's response. Additionally, it starts listening for the appropriate notification
+// using the given handler function
+func (c *RPCClient) RegisterForVirtualDaaScoreChangedNotifications(
+ onVirtualDaaScoreChanged func(notification *appmessage.VirtualDaaScoreChangedNotificationMessage)) error {
+
+ err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewNotifyVirtualDaaScoreChangedRequestMessage())
+ if err != nil {
+ return err
+ }
+ response, err := c.route(appmessage.CmdNotifyVirtualDaaScoreChangedResponseMessage).DequeueWithTimeout(c.timeout)
+ if err != nil {
+ return err
+ }
+ notifyVirtualDaaScoreChangedResponse := response.(*appmessage.NotifyVirtualDaaScoreChangedResponseMessage)
+ if notifyVirtualDaaScoreChangedResponse.Error != nil {
+ return c.convertRPCError(notifyVirtualDaaScoreChangedResponse.Error)
+ }
+ spawn("RegisterForVirtualDaaScoreChangedNotifications", func() {
+ for {
+ notification, err := c.route(appmessage.CmdVirtualDaaScoreChangedNotificationMessage).Dequeue()
+ if err != nil {
+ if errors.Is(err, routerpkg.ErrRouteClosed) {
+ break
+ }
+ panic(err)
+ }
+ VirtualDaaScoreChangedNotification := notification.(*appmessage.VirtualDaaScoreChangedNotificationMessage)
+ onVirtualDaaScoreChanged(VirtualDaaScoreChangedNotification)
+ }
+ })
+ return nil
+}
diff --git a/testing/integration/virtual_selected_parent_blue_score_test.go b/testing/integration/virtual_selected_parent_blue_score_test.go
index f3ce0969e..2d22289bd 100644
--- a/testing/integration/virtual_selected_parent_blue_score_test.go
+++ b/testing/integration/virtual_selected_parent_blue_score_test.go
@@ -5,7 +5,7 @@ import (
"testing"
)
-func TestVirtualSelectedParentBlueScore(t *testing.T) {
+func TestVirtualSelectedParentBlueScoreAndVirtualDAAScore(t *testing.T) {
// Setup a single kaspad instance
harnessParams := &harnessParams{
p2pAddress: p2pAddress1,
@@ -38,15 +38,30 @@ func TestVirtualSelectedParentBlueScore(t *testing.T) {
"blue score change notifications: %s", err)
}
+ // Register to virtual DAA score changes
+ onVirtualDaaScoreChangedChan := make(chan *appmessage.VirtualDaaScoreChangedNotificationMessage)
+ err = kaspad.rpcClient.RegisterForVirtualDaaScoreChangedNotifications(
+ func(notification *appmessage.VirtualDaaScoreChangedNotificationMessage) {
+ onVirtualDaaScoreChangedChan <- notification
+ })
+ if err != nil {
+ t.Fatalf("Failed to register for virtual DAA score change notifications: %s", err)
+ }
+
// Mine some blocks and make sure that the notifications
- // report correct blue score values
+ // report correct values
const blockAmountToMine = 100
for i := 0; i < blockAmountToMine; i++ {
mineNextBlock(t, kaspad)
- notification := <-onVirtualSelectedParentBlueScoreChangedChan
- if notification.VirtualSelectedParentBlueScore != 1+uint64(i) {
+ blueScoreChangedNotification := <-onVirtualSelectedParentBlueScoreChangedChan
+ if blueScoreChangedNotification.VirtualSelectedParentBlueScore != 1+uint64(i) {
t.Fatalf("Unexpected virtual selected parent blue score. Want: %d, got: %d",
- 1+uint64(i), notification.VirtualSelectedParentBlueScore)
+ 1+uint64(i), blueScoreChangedNotification.VirtualSelectedParentBlueScore)
+ }
+ daaScoreChangedNotification := <-onVirtualDaaScoreChangedChan
+ if daaScoreChangedNotification.VirtualDaaScore > 1+uint64(i) {
+ t.Fatalf("Unexpected virtual DAA score. Want: %d, got: %d",
+ 1+uint64(i), daaScoreChangedNotification.VirtualDaaScore)
}
}