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}