arnaucube
arnaucube/slowlorisdbPublic Self-hosted repository
slowlorisdb/node/node.go
node/node.goRaw
 1package node
 2
 3import (
 4	"crypto/ecdsa"
 5
 6	"github.com/arnaucube/slowlorisdb/core"
 7	"github.com/arnaucube/slowlorisdb/db"
 8)
 9
10type Node struct {
11	PrivK *ecdsa.PrivateKey
12	Addr  core.Address
13	Bc    *core.Blockchain
14}
15
16func NewNode(db *db.Db) (*Node, error) {
17	privK, err := core.NewKey()
18	if err != nil {
19		return nil, err
20	}
21	addr := core.AddressFromPrivK(privK)
22
23	bc := core.NewBlockchain(db)
24
25	node := &Node{
26		PrivK: privK,
27		Addr:  addr,
28		Bc:    bc,
29	}
30	return node, nil
31}
32
33func (node *Node) Sign(m []byte) (*core.Signature, error) {
34	return core.Sign(node.PrivK, m)
35}