From 90bc669d9665aca2875521a0ae438cf2735e5faa Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Wed, 24 Aug 2022 12:47:02 +0300 Subject: [PATCH] Add UpdatePruningPointIfRequired on init --- domain/consensus/factory.go | 7 +++++++ infrastructure/network/rpcclient/rpc_ban.go | 20 +++++++++++++++++++ infrastructure/network/rpcclient/rpc_unban.go | 20 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 infrastructure/network/rpcclient/rpc_ban.go create mode 100644 infrastructure/network/rpcclient/rpc_unban.go diff --git a/domain/consensus/factory.go b/domain/consensus/factory.go index 3b92ecb93..d53e49bb4 100644 --- a/domain/consensus/factory.go +++ b/domain/consensus/factory.go @@ -540,6 +540,8 @@ func (f *factory) NewConsensus(config *Config, db infrastructuredatabase.Databas return nil, false, err } + // If the virtual moved before shutdown but the pruning point hasn't, we + // move it if needed. stagingArea := model.NewStagingArea() err = pruningManager.UpdatePruningPointByVirtual(stagingArea) if err != nil { @@ -551,6 +553,11 @@ func (f *factory) NewConsensus(config *Config, db infrastructuredatabase.Databas return nil, false, err } + err = pruningManager.UpdatePruningPointIfRequired() + if err != nil { + return nil, false, err + } + return c, false, nil } diff --git a/infrastructure/network/rpcclient/rpc_ban.go b/infrastructure/network/rpcclient/rpc_ban.go new file mode 100644 index 000000000..66499a9e7 --- /dev/null +++ b/infrastructure/network/rpcclient/rpc_ban.go @@ -0,0 +1,20 @@ +package rpcclient + +import "github.com/kaspanet/kaspad/app/appmessage" + +// Ban sends an RPC request respective to the function's name and returns the RPC server's response +func (c *RPCClient) Ban(ip string) (*appmessage.BanResponseMessage, error) { + err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewBanRequestMessage(ip)) + if err != nil { + return nil, err + } + response, err := c.route(appmessage.CmdBanRequestMessage).DequeueWithTimeout(c.timeout) + if err != nil { + return nil, err + } + banResponse := response.(*appmessage.BanResponseMessage) + if banResponse.Error != nil { + return nil, c.convertRPCError(banResponse.Error) + } + return banResponse, nil +} diff --git a/infrastructure/network/rpcclient/rpc_unban.go b/infrastructure/network/rpcclient/rpc_unban.go new file mode 100644 index 000000000..6e82ebe65 --- /dev/null +++ b/infrastructure/network/rpcclient/rpc_unban.go @@ -0,0 +1,20 @@ +package rpcclient + +import "github.com/kaspanet/kaspad/app/appmessage" + +// Unban sends an RPC request respective to the function's name and returns the RPC server's response +func (c *RPCClient) Unban(ip string) (*appmessage.UnbanResponseMessage, error) { + err := c.rpcRouter.outgoingRoute().Enqueue(appmessage.NewUnbanRequestMessage(ip)) + if err != nil { + return nil, err + } + response, err := c.route(appmessage.CmdUnbanRequestMessage).DequeueWithTimeout(c.timeout) + if err != nil { + return nil, err + } + unbanResponse := response.(*appmessage.UnbanResponseMessage) + if unbanResponse.Error != nil { + return nil, c.convertRPCError(unbanResponse.Error) + } + return unbanResponse, nil +}