mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-06 14:16:43 +00:00
Fix stability test mining (allow submission of non DAA blocks too) (#1917)
* Fix stability test mining (allow submission of non DAA blocks too) * Comments for go fmt * Use SubmitBlockAlsoIfNonDAA for all tests Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com>
This commit is contained in:
parent
504ec36612
commit
0e1d247915
@ -14,9 +14,10 @@ func (msg *SubmitBlockRequestMessage) Command() MessageCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewSubmitBlockRequestMessage returns a instance of the message
|
// NewSubmitBlockRequestMessage returns a instance of the message
|
||||||
func NewSubmitBlockRequestMessage(block *RPCBlock) *SubmitBlockRequestMessage {
|
func NewSubmitBlockRequestMessage(block *RPCBlock, allowNonDAABlocks bool) *SubmitBlockRequestMessage {
|
||||||
return &SubmitBlockRequestMessage{
|
return &SubmitBlockRequestMessage{
|
||||||
Block: block,
|
Block: block,
|
||||||
|
AllowNonDAABlocks: allowNonDAABlocks,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ func (x *KaspadMessage_SubmitBlockRequest) toAppMessage() (appmessage.Message, e
|
|||||||
|
|
||||||
func (x *KaspadMessage_SubmitBlockRequest) fromAppMessage(message *appmessage.SubmitBlockRequestMessage) error {
|
func (x *KaspadMessage_SubmitBlockRequest) fromAppMessage(message *appmessage.SubmitBlockRequestMessage) error {
|
||||||
x.SubmitBlockRequest = &SubmitBlockRequestMessage{Block: &RpcBlock{}}
|
x.SubmitBlockRequest = &SubmitBlockRequestMessage{Block: &RpcBlock{}}
|
||||||
|
x.SubmitBlockRequest.AllowNonDAABlocks = message.AllowNonDAABlocks
|
||||||
return x.SubmitBlockRequest.Block.fromAppMessage(message.Block)
|
return x.SubmitBlockRequest.Block.fromAppMessage(message.Block)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,10 +5,9 @@ import (
|
|||||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SubmitBlock sends an RPC request respective to the function's name and returns the RPC server's response
|
func (c *RPCClient) submitBlock(block *externalapi.DomainBlock, allowNonDAABlocks bool) (appmessage.RejectReason, error) {
|
||||||
func (c *RPCClient) SubmitBlock(block *externalapi.DomainBlock) (appmessage.RejectReason, error) {
|
|
||||||
err := c.rpcRouter.outgoingRoute().Enqueue(
|
err := c.rpcRouter.outgoingRoute().Enqueue(
|
||||||
appmessage.NewSubmitBlockRequestMessage(appmessage.DomainBlockToRPCBlock(block)))
|
appmessage.NewSubmitBlockRequestMessage(appmessage.DomainBlockToRPCBlock(block), allowNonDAABlocks))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return appmessage.RejectReasonNone, err
|
return appmessage.RejectReasonNone, err
|
||||||
}
|
}
|
||||||
@ -22,3 +21,13 @@ func (c *RPCClient) SubmitBlock(block *externalapi.DomainBlock) (appmessage.Reje
|
|||||||
}
|
}
|
||||||
return appmessage.RejectReasonNone, nil
|
return appmessage.RejectReasonNone, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SubmitBlock sends an RPC request respective to the function's name and returns the RPC server's response
|
||||||
|
func (c *RPCClient) SubmitBlock(block *externalapi.DomainBlock) (appmessage.RejectReason, error) {
|
||||||
|
return c.submitBlock(block, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SubmitBlockAlsoIfNonDAA operates the same as SubmitBlock with the exception that `allowNonDAABlocks` is set to true
|
||||||
|
func (c *RPCClient) SubmitBlockAlsoIfNonDAA(block *externalapi.DomainBlock) (appmessage.RejectReason, error) {
|
||||||
|
return c.submitBlock(block, true)
|
||||||
|
}
|
||||||
|
@ -75,7 +75,7 @@ func mineBlocks(consensusConfig *consensus.Config, rpcClient *rpc.Client, blockC
|
|||||||
}
|
}
|
||||||
|
|
||||||
beforeSubmitBlockTime := time.Now()
|
beforeSubmitBlockTime := time.Now()
|
||||||
rejectReason, err := rpcClient.SubmitBlock(block)
|
rejectReason, err := rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "error in SubmitBlock")
|
return errors.Wrap(err, "error in SubmitBlock")
|
||||||
}
|
}
|
||||||
|
@ -297,7 +297,7 @@ func logMinedBlockStatsAndUpdateStatFields(t *testing.T, rpcClient *rpcclient.RP
|
|||||||
}
|
}
|
||||||
|
|
||||||
func submitMinedBlock(t *testing.T, rpcClient *rpcclient.RPCClient, block *externalapi.DomainBlock) {
|
func submitMinedBlock(t *testing.T, rpcClient *rpcclient.RPCClient, block *externalapi.DomainBlock) {
|
||||||
_, err := rpcClient.SubmitBlock(block)
|
_, err := rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("SubmitBlock: %s", err)
|
t.Fatalf("SubmitBlock: %s", err)
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ func realMain() error {
|
|||||||
mutableHeader.SetTimeInMilliseconds(genesisTimestamp + 1000)
|
mutableHeader.SetTimeInMilliseconds(genesisTimestamp + 1000)
|
||||||
block.Header = mutableHeader.ToImmutable()
|
block.Header = mutableHeader.ToImmutable()
|
||||||
mining.SolveBlock(block, rand.New(rand.NewSource(time.Now().UnixNano())))
|
mining.SolveBlock(block, rand.New(rand.NewSource(time.Now().UnixNano())))
|
||||||
_, err = rpcClient.SubmitBlock(block)
|
_, err = rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -183,7 +183,7 @@ func mineBlock(rpcClient *rpc.Client, miningAddress util.Address) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
mining.SolveBlock(block, rand.New(rand.NewSource(time.Now().UnixNano())))
|
mining.SolveBlock(block, rand.New(rand.NewSource(time.Now().UnixNano())))
|
||||||
_, err = rpcClient.SubmitBlock(block)
|
_, err = rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -202,7 +202,7 @@ func mineTips(numOfTips int, miningAddress util.Address, rpcClient *rpc.Client)
|
|||||||
rd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
rd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
for i := 0; i < numOfTips; i++ {
|
for i := 0; i < numOfTips; i++ {
|
||||||
mining.SolveBlock(block, rd)
|
mining.SolveBlock(block, rd)
|
||||||
_, err = rpcClient.SubmitBlock(block)
|
_, err = rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ func mineBlockAndGetCoinbaseTransaction(t *testing.T, rpcClient *rpcclient.RPCCl
|
|||||||
t.Fatalf("RPCBlockToDomainBlock: %+v", err)
|
t.Fatalf("RPCBlockToDomainBlock: %+v", err)
|
||||||
}
|
}
|
||||||
mine.SolveBlock(templateBlock)
|
mine.SolveBlock(templateBlock)
|
||||||
_, err = rpcClient.SubmitBlock(templateBlock)
|
_, err = rpcClient.SubmitBlockAlsoIfNonDAA(templateBlock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("SubmitBlock: %+v", err)
|
t.Fatalf("SubmitBlock: %+v", err)
|
||||||
}
|
}
|
||||||
|
@ -199,5 +199,5 @@ func mineOnTips(client *rpc.Client) (appmessage.RejectReason, error) {
|
|||||||
mine.SolveBlock(domainBlock)
|
mine.SolveBlock(domainBlock)
|
||||||
}
|
}
|
||||||
|
|
||||||
return client.SubmitBlock(domainBlock)
|
return client.SubmitBlockAlsoIfNonDAA(domainBlock)
|
||||||
}
|
}
|
||||||
|
@ -228,7 +228,7 @@ func mineNextBlockWithMockTimestamps(t *testing.T, harness *appHarness, rd *rand
|
|||||||
|
|
||||||
mining.SolveBlock(block, rd)
|
mining.SolveBlock(block, rd)
|
||||||
|
|
||||||
_, err = harness.rpcClient.SubmitBlock(block)
|
_, err = harness.rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error submitting block: %s", err)
|
t.Fatalf("Error submitting block: %s", err)
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ func mineNextBlock(t *testing.T, harness *appHarness) *externalapi.DomainBlock {
|
|||||||
rd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
rd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
mining.SolveBlock(block, rd)
|
mining.SolveBlock(block, rd)
|
||||||
|
|
||||||
_, err = harness.rpcClient.SubmitBlock(block)
|
_, err = harness.rpcClient.SubmitBlockAlsoIfNonDAA(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Error submitting block: %s", err)
|
t.Fatalf("Error submitting block: %s", err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user