func (n *Node) getBlockMakeManager() (consensus.ConsensusInterface, error) {
	return consensus.NewConsensusManager(n.MinterAddress, n.DBConn.DB(), n.Logger)
}
Init block maker object. It is used to make new blocks
package nodemanager
import (
	"crypto/ecdsa"
	"errors"
	"math/rand"
	"time"
	"github.com/gelembjuk/democoin/lib/net"
	"github.com/gelembjuk/democoin/lib/nodeclient"
	"github.com/gelembjuk/democoin/lib/utils"
	"github.com/gelembjuk/democoin/lib/wallet"
	"github.com/gelembjuk/democoin/node/blockchain"
	"github.com/gelembjuk/democoin/node/consensus"
	"github.com/gelembjuk/democoin/node/structures"
	"github.com/gelembjuk/democoin/node/transactions"
)
type Node struct {
	NodeBC  NodeBlockchain
	NodeNet net.NodeNetwork
	Logger  *utils.LoggerMan
	DataDir string
	MinterAddress string
	NodeClient    *nodeclient.NodeClient
	OtherNodes    []net.NodeAddr
	DBConn        *Database
	SessionID     string
}
func (n *Node) Init() {
	n.NodeNet.Init()
	n.NodeNet.Logger = n.Logger
	n.NodeBC.Logger = n.Logger
	n.NodeBC.MinterAddress = n.MinterAddress
	n.NodeBC.DBConn = n.DBConn
	n.NodeNet.SetExtraManager(NodesListStorage{n.DBConn, n.SessionID})
	n.NodeNet.SetNodes([]net.NodeAddr{}, true)
	n.InitClient()
	rand.Seed(time.Now().UTC().UnixNano())
}
func (n *Node) GetTransactionsManager() transactions.TransactionsManagerInterface {
	return transactions.NewManager(n.DBConn.DB(), n.Logger)
}
func (n *Node) GetBCManager() (*blockchain.Blockchain, error) {
	return blockchain.NewBlockchainManager(n.DBConn.DB(), n.Logger)
}
func (n *Node) GetBlockChainIterator() (*blockchain.BlockchainIterator, error) {
	return blockchain.NewBlockchainIterator(n.DBConn.DB())
}