mirror of
https://github.com/kaspanet/kaspad.git
synced 2026-03-06 17:11:31 +00:00
wire for new request past diff message
This commit is contained in:
@@ -71,6 +71,7 @@ const (
|
||||
CmdBlockWithTrustedDataV4
|
||||
CmdRequestIBDChainBlockLocator
|
||||
CmdIBDChainBlockLocator
|
||||
CmdRequestPastDiff
|
||||
|
||||
// rpc
|
||||
CmdGetCurrentNetworkRequestMessage
|
||||
|
||||
33
app/appmessage/p2p_msgrequestpastdiff.go
Normal file
33
app/appmessage/p2p_msgrequestpastdiff.go
Normal file
@@ -0,0 +1,33 @@
|
||||
// Copyright (c) 2013-2016 The btcsuite developers
|
||||
// Use of this source code is governed by an ISC
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package appmessage
|
||||
|
||||
import (
|
||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||
)
|
||||
|
||||
// MsgRequestPastDiff implements the Message interface and represents a kaspa
|
||||
// RequestHeaders message. It is used to request a past diff past(RequestedHash) \setminus past(HasHash)
|
||||
type MsgRequestPastDiff struct {
|
||||
baseMessage
|
||||
HasHash *externalapi.DomainHash
|
||||
RequestedHash *externalapi.DomainHash
|
||||
}
|
||||
|
||||
// Command returns the protocol command string for the message. This is part
|
||||
// of the Message interface implementation.
|
||||
func (msg *MsgRequestPastDiff) Command() MessageCommand {
|
||||
return CmdRequestPastDiff
|
||||
}
|
||||
|
||||
// NewMsgRequestPastDiff returns a new kaspa RequestPastDiff message that conforms to the
|
||||
// Message interface using the passed parameters and defaults for the remaining
|
||||
// fields.
|
||||
func NewMsgRequestPastDiff(hasHash, requestedHash *externalapi.DomainHash) *MsgRequestPastDiff {
|
||||
return &MsgRequestPastDiff{
|
||||
HasHash: hasHash,
|
||||
RequestedHash: requestedHash,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package protowire
|
||||
|
||||
import (
|
||||
"github.com/kaspanet/kaspad/app/appmessage"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func (x *KaspadMessage_RequestPastDiff) toAppMessage() (appmessage.Message, error) {
|
||||
if x == nil {
|
||||
return nil, errors.Wrapf(errorNil, "KaspadMessage_RequestPastDiff is nil")
|
||||
}
|
||||
return x.RequestPastDiff.toAppMessage()
|
||||
}
|
||||
|
||||
func (x *RequestPastDiffMessage) toAppMessage() (appmessage.Message, error) {
|
||||
if x == nil {
|
||||
return nil, errors.Wrapf(errorNil, "RequestPastDiffMessage is nil")
|
||||
}
|
||||
hasHash, err := x.HasHash.toDomain()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
requestedHash, err := x.RequestedHash.toDomain()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &appmessage.MsgRequestPastDiff{
|
||||
HasHash: hasHash,
|
||||
RequestedHash: requestedHash,
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
func (x *KaspadMessage_RequestPastDiff) fromAppMessage(msgRequestPastDiff *appmessage.MsgRequestPastDiff) error {
|
||||
x.RequestPastDiff = &RequestPastDiffMessage{
|
||||
HasHash: domainHashToProto(msgRequestPastDiff.HasHash),
|
||||
RequestedHash: domainHashToProto(msgRequestPastDiff.RequestedHash),
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -345,6 +345,13 @@ func toP2PPayload(message appmessage.Message) (isKaspadMessage_Payload, error) {
|
||||
return nil, err
|
||||
}
|
||||
return payload, nil
|
||||
case *appmessage.MsgRequestPastDiff:
|
||||
payload := new(KaspadMessage_RequestPastDiff)
|
||||
err := payload.fromAppMessage(message)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return payload, nil
|
||||
default:
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user