mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-10-14 00:59:33 +00:00
[NOD-244] Don't validate subnetwork registry transactions when they are being registered (#354)
This commit is contained in:
parent
2147d16c1f
commit
54b681460d
@ -28,15 +28,12 @@ func newSubnetworkStore(db database.DB) *SubnetworkStore {
|
|||||||
// subnetwork based on it.
|
// subnetwork based on it.
|
||||||
// This function returns an error if one or more transactions are invalid
|
// This function returns an error if one or more transactions are invalid
|
||||||
func registerSubnetworks(dbTx database.Tx, txs []*util.Tx) error {
|
func registerSubnetworks(dbTx database.Tx, txs []*util.Tx) error {
|
||||||
validSubnetworkRegistryTxs := make([]*wire.MsgTx, 0)
|
subnetworkRegistryTxs := make([]*wire.MsgTx, 0)
|
||||||
for _, tx := range txs {
|
for _, tx := range txs {
|
||||||
msgTx := tx.MsgTx()
|
msgTx := tx.MsgTx()
|
||||||
|
|
||||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) {
|
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) {
|
||||||
err := validateSubnetworkRegistryTransaction(msgTx)
|
subnetworkRegistryTxs = append(subnetworkRegistryTxs, msgTx)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
validSubnetworkRegistryTxs = append(validSubnetworkRegistryTxs, msgTx)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if subnetworkid.Less(subnetworkid.SubnetworkIDRegistry, &msgTx.SubnetworkID) {
|
if subnetworkid.Less(subnetworkid.SubnetworkIDRegistry, &msgTx.SubnetworkID) {
|
||||||
@ -47,7 +44,7 @@ func registerSubnetworks(dbTx database.Tx, txs []*util.Tx) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, registryTx := range validSubnetworkRegistryTxs {
|
for _, registryTx := range subnetworkRegistryTxs {
|
||||||
subnetworkID, err := TxToSubnetworkID(registryTx)
|
subnetworkID, err := TxToSubnetworkID(registryTx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -216,6 +216,13 @@ func CheckTransactionSanity(tx *util.Tx, subnetworkID *subnetworkid.SubnetworkID
|
|||||||
"registry subnetworks has gas > 0 ")
|
"registry subnetworks has gas > 0 ")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) {
|
||||||
|
err := validateSubnetworkRegistryTransaction(msgTx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDNative) &&
|
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDNative) &&
|
||||||
len(msgTx.Payload) > 0 {
|
len(msgTx.Payload) > 0 {
|
||||||
|
|
||||||
@ -223,14 +230,6 @@ func CheckTransactionSanity(tx *util.Tx, subnetworkID *subnetworkid.SubnetworkID
|
|||||||
"transaction in the native subnetwork includes a payload")
|
"transaction in the native subnetwork includes a payload")
|
||||||
}
|
}
|
||||||
|
|
||||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) &&
|
|
||||||
len(msgTx.Payload) != 8 {
|
|
||||||
|
|
||||||
return ruleError(ErrInvalidPayload,
|
|
||||||
"transaction in the subnetwork registry include a payload "+
|
|
||||||
"with length != 8 bytes")
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we are a partial node, only transactions on built in subnetworks
|
// If we are a partial node, only transactions on built in subnetworks
|
||||||
// or our own subnetwork may have a payload
|
// or our own subnetwork may have a payload
|
||||||
isLocalNodeFull := subnetworkID == nil
|
isLocalNodeFull := subnetworkID == nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user