Export DefaultPath + Add logging to kaspawallet daemon (#1730)

* Export DefaultPath + Add logging to kaspawallet daemon

* Export purpose and CoinType instead of defaultPath

* Move TODO to correct place
This commit is contained in:
Svarog 2021-05-26 18:51:11 +03:00 committed by GitHub
parent 6613faee2d
commit 16ba2bd312
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 21 deletions

View File

@ -1,6 +1,12 @@
package server
import (
"fmt"
"os"
"path/filepath"
"github.com/kaspanet/kaspad/util"
"github.com/kaspanet/kaspad/infrastructure/logger"
"github.com/kaspanet/kaspad/util/panics"
)
@ -9,4 +15,33 @@ var (
backendLog = logger.NewBackend()
log = backendLog.Logger("KSWD")
spawn = panics.GoroutineWrapperFunc(log)
defaultAppDir = util.AppDir("kaspawallet", false)
defaultLogFile = filepath.Join(defaultAppDir, "daemon.log")
defaultErrLogFile = filepath.Join(defaultAppDir, "daemon_err.log")
)
func initLog(logFile, errLogFile string) {
log.SetLevel(logger.LevelDebug)
err := backendLog.AddLogFile(logFile, logger.LevelTrace)
if err != nil {
fmt.Fprintf(os.Stderr, "Error adding log file %s as log rotator for level %s: %s", logFile, logger.LevelTrace, err)
os.Exit(1)
}
err = backendLog.AddLogFile(errLogFile, logger.LevelWarn)
if err != nil {
fmt.Fprintf(os.Stderr, "Error adding log file %s as log rotator for level %s: %s", errLogFile, logger.LevelWarn, err)
os.Exit(1)
}
err = backendLog.AddLogWriter(os.Stdout, logger.LevelInfo)
if err != nil {
fmt.Fprintf(os.Stderr, "Error adding stdout to the loggerfor level %s: %s", logger.LevelWarn, err)
os.Exit(1)
}
err = backendLog.Run()
if err != nil {
fmt.Fprintf(os.Stderr, "Error starting the logger: %s ", err)
os.Exit(1)
}
}

View File

@ -2,6 +2,11 @@ package server
import (
"fmt"
"net"
"os"
"sync"
"time"
"github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/pb"
"github.com/kaspanet/kaspad/cmd/kaspawallet/keys"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
@ -10,10 +15,6 @@ import (
"github.com/kaspanet/kaspad/infrastructure/os/signal"
"github.com/kaspanet/kaspad/util/panics"
"github.com/pkg/errors"
"net"
"os"
"sync"
"time"
"google.golang.org/grpc"
)
@ -33,6 +34,8 @@ type server struct {
// Start starts the kaspawalletd server
func Start(params *dagconfig.Params, listen, rpcServer string, keysFilePath string) error {
initLog(defaultLogFile, defaultErrLogFile)
defer panics.HandlePanic(log, "MAIN", nil)
interrupt := signal.InterruptListener()
@ -40,6 +43,7 @@ func Start(params *dagconfig.Params, listen, rpcServer string, keysFilePath stri
if err != nil {
return (errors.Wrapf(err, "Error listening to tcp at %s", listen))
}
log.Infof("Listening on %s", listen)
rpcClient, err := connectToRPC(params, rpcServer)
if err != nil {

View File

@ -16,23 +16,23 @@ func CreateMnemonic() (string, error) {
return bip39.NewMnemonic(entropy)
}
func defaultPath(isMultisig bool) string {
const (
singleSignerPurpose = 44
// Purpose and CoinType constants
const (
SingleSignerPurpose = 44
// Note: this is not entirely compatible to BIP 45 since
// BIP 45 doesn't have a coin type in its derivation path.
multiSigPurpose = 45
)
MultiSigPurpose = 45
// TODO: Register the coin type in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
CoinType = 111111
)
purpose := singleSignerPurpose
func defaultPath(isMultisig bool) string {
purpose := SingleSignerPurpose
if isMultisig {
purpose = multiSigPurpose
purpose = MultiSigPurpose
}
// TODO: Register the coin type in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
const coinType = 111111
return fmt.Sprintf("m/%d'/%d'/0'", purpose, coinType)
return fmt.Sprintf("m/%d'/%d'/0'", purpose, CoinType)
}
// MasterPublicKeyFromMnemonic returns the master public key with the correct derivation for the given mnemonic.

View File

@ -1,14 +1,15 @@
package libkaspawallet
import (
"math"
"sort"
"strings"
"github.com/kaspanet/go-secp256k1"
"github.com/kaspanet/kaspad/cmd/kaspawallet/libkaspawallet/bip32"
"github.com/kaspanet/kaspad/domain/dagconfig"
"github.com/kaspanet/kaspad/util"
"github.com/pkg/errors"
"math"
"sort"
"strings"
)
// CreateKeyPair generates a private-public key pair

View File

@ -3,13 +3,15 @@ package utils
import (
"bufio"
"strings"
"github.com/pkg/errors"
)
// ReadLine reads one line from the given reader with trimmed white space.
func ReadLine(reader *bufio.Reader) (string, error) {
line, err := reader.ReadBytes('\n')
if err != nil {
return "", err
return "", errors.WithStack(err)
}
return strings.TrimSpace(string(line)), nil