BIP0144+wire: introduce new segregated witness inventory types
This commit adds the new inventory types for segwit which are used by the responder to explicitly request that transactions/blocks sent for a particular inv hash should include all witness data.
This commit is contained in:
parent
48abfdf87c
commit
28c5ce8e5c
1 changed files with 18 additions and 8 deletions
|
@ -18,6 +18,10 @@ const (
|
||||||
|
|
||||||
// Maximum payload size for an inventory vector.
|
// Maximum payload size for an inventory vector.
|
||||||
maxInvVectPayload = 4 + chainhash.HashSize
|
maxInvVectPayload = 4 + chainhash.HashSize
|
||||||
|
|
||||||
|
// InvWitnessFlag denotes that the inventory vector type is requesting,
|
||||||
|
// or sending a version which includes witness data.
|
||||||
|
InvWitnessFlag = 1 << 30
|
||||||
)
|
)
|
||||||
|
|
||||||
// InvType represents the allowed types of inventory vectors. See InvVect.
|
// InvType represents the allowed types of inventory vectors. See InvVect.
|
||||||
|
@ -25,18 +29,24 @@ type InvType uint32
|
||||||
|
|
||||||
// These constants define the various supported inventory vector types.
|
// These constants define the various supported inventory vector types.
|
||||||
const (
|
const (
|
||||||
InvTypeError InvType = 0
|
InvTypeError InvType = 0
|
||||||
InvTypeTx InvType = 1
|
InvTypeTx InvType = 1
|
||||||
InvTypeBlock InvType = 2
|
InvTypeBlock InvType = 2
|
||||||
InvTypeFilteredBlock InvType = 3
|
InvTypeFilteredBlock InvType = 3
|
||||||
|
InvTypeWitnessBlock InvType = InvTypeBlock | InvWitnessFlag
|
||||||
|
InvTypeWitnessTx InvType = InvTypeTx | InvWitnessFlag
|
||||||
|
InvTypeFilteredWitnessBlock InvType = InvTypeFilteredBlock | InvWitnessFlag
|
||||||
)
|
)
|
||||||
|
|
||||||
// Map of service flags back to their constant names for pretty printing.
|
// Map of service flags back to their constant names for pretty printing.
|
||||||
var ivStrings = map[InvType]string{
|
var ivStrings = map[InvType]string{
|
||||||
InvTypeError: "ERROR",
|
InvTypeError: "ERROR",
|
||||||
InvTypeTx: "MSG_TX",
|
InvTypeTx: "MSG_TX",
|
||||||
InvTypeBlock: "MSG_BLOCK",
|
InvTypeBlock: "MSG_BLOCK",
|
||||||
InvTypeFilteredBlock: "MSG_FILTERED_BLOCK",
|
InvTypeFilteredBlock: "MSG_FILTERED_BLOCK",
|
||||||
|
InvTypeWitnessBlock: "MSG_WITNESS_BLOCK",
|
||||||
|
InvTypeWitnessTx: "MSG_WITNESS_TX",
|
||||||
|
InvTypeFilteredWitnessBlock: "MSG_FILTERED_WITNESS_BLOCK",
|
||||||
}
|
}
|
||||||
|
|
||||||
// String returns the InvType in human-readable form.
|
// String returns the InvType in human-readable form.
|
||||||
|
|
Loading…
Reference in a new issue