mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00
76 lines
1.6 KiB
Go
76 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"sync/atomic"
|
|
|
|
"github.com/kaspanet/kaspad/stability-tests/common"
|
|
"github.com/kaspanet/kaspad/stability-tests/common/rpc"
|
|
"github.com/kaspanet/kaspad/util/panics"
|
|
"github.com/kaspanet/kaspad/util/profiling"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func main() {
|
|
err := realMain()
|
|
|
|
if err != nil {
|
|
log.Criticalf("An error occured: %+v", err)
|
|
backendLog.Close()
|
|
os.Exit(1)
|
|
}
|
|
backendLog.Close()
|
|
}
|
|
|
|
func realMain() error {
|
|
defer panics.HandlePanic(log, "simple-sync-main", nil)
|
|
|
|
err := parseConfig()
|
|
if err != nil {
|
|
return errors.Wrap(err, "error in parseConfig")
|
|
}
|
|
common.UseLogger(backendLog, log.Level())
|
|
cfg := activeConfig()
|
|
if cfg.Profile != "" {
|
|
profiling.Start(cfg.Profile, log)
|
|
}
|
|
|
|
shutdown := uint64(0)
|
|
|
|
teardown, err := startNodes()
|
|
if err != nil {
|
|
return errors.Wrap(err, "error in startNodes")
|
|
}
|
|
defer teardown()
|
|
|
|
syncerRPCClient, err := rpc.ConnectToRPC(&rpc.Config{
|
|
RPCServer: syncerRPCAddress,
|
|
}, activeConfig().NetParams())
|
|
if err != nil {
|
|
return errors.Wrap(err, "error connecting to RPC server")
|
|
}
|
|
defer syncerRPCClient.Disconnect()
|
|
|
|
syncedRPCClient, err := rpc.ConnectToRPC(&rpc.Config{
|
|
RPCServer: syncedRPCAddress,
|
|
}, activeConfig().NetParams())
|
|
if err != nil {
|
|
return errors.Wrap(err, "error connecting to RPC server")
|
|
}
|
|
defer syncedRPCClient.Disconnect()
|
|
|
|
err = syncedRPCClient.RegisterForBlockAddedNotifications()
|
|
if err != nil {
|
|
return errors.Wrap(err, "error registering for blockAdded notifications")
|
|
}
|
|
|
|
err = mineLoop(syncerRPCClient, syncedRPCClient)
|
|
if err != nil {
|
|
return errors.Wrap(err, "error in mineLoop")
|
|
}
|
|
|
|
atomic.StoreUint64(&shutdown, 1)
|
|
|
|
return nil
|
|
}
|