github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/setup/super_dependence.go (about)

     1  package setup
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/ontio/ontology-eventbus/actor"
     7  	"github.com/sixexorg/magnetic-ring/account"
     8  	"github.com/sixexorg/magnetic-ring/consense/dpoa"
     9  	netreqactor "github.com/sixexorg/magnetic-ring/p2pserver/actor/req"
    10  	"github.com/sixexorg/magnetic-ring/radar/mainchain"
    11  	storeactor "github.com/sixexorg/magnetic-ring/store/mainchain/actor"
    12  	"github.com/sixexorg/magnetic-ring/store/mainchain/extstorages"
    13  	mainstore "github.com/sixexorg/magnetic-ring/store/mainchain/storages"
    14  	"github.com/sixexorg/magnetic-ring/store/orgchain/validation"
    15  	txpool "github.com/sixexorg/magnetic-ring/txpool/mainchain"
    16  )
    17  
    18  func initAcrossStore(dbDir string) *extstorages.LedgerStoreImp {
    19  	extLedger, err := extstorages.NewLedgerStore(dbDir)
    20  	if err != nil {
    21  		panic(fmt.Errorf("init extLedger error ", err))
    22  	}
    23  	return extLedger
    24  }
    25  
    26  func initMainRadar(nodeAcc account.Account, ledger *mainstore.LedgerStoreImp, extLedger *extstorages.LedgerStoreImp) *mainchain.LeagueConsumers {
    27  	nodeacct := nodeAcc.(account.NormalAccount)
    28  	adpter := &mainchain.ConsumerAdapter{
    29  		FuncGenesis:  ledger.GetTxByLeagueId,
    30  		FuncTx:       ledger.GetTxByHash,
    31  		FuncBlk:      ledger.GetBlockHeaderByHeight,
    32  		Ledger:       extLedger,
    33  		FuncValidate: validation.ValidateBlock,
    34  		NodeId:       nodeacct.PublicKey().Hex(),
    35  	}
    36  	mainchain.NewNodeLHCache()
    37  	return mainchain.NewLeagueConsumers(adpter)
    38  }
    39  
    40  func initConsensus(p2pPid *actor.PID, nodeAcc account.Account) {
    41  	nmlAcct := nodeAcc.(account.NormalAccount)
    42  	consensusService, err := dpoa.NewServer(nmlAcct, p2pPid)
    43  	if err != nil {
    44  		panic(fmt.Errorf("init consensus error ", err))
    45  	}
    46  	consensusService.Start()
    47  	netreqactor.SetConsensusPid(consensusService.GetPID())
    48  	storeactor.SetConsensusPid(consensusService.GetPID())
    49  }
    50  
    51  func initTxPool() *txpool.TxPool {
    52  	pool, err := txpool.InitPool()
    53  	if err != nil {
    54  		panic(fmt.Errorf("init txpool err %s", err))
    55  	}
    56  	netreqactor.SetTxnPoolPid(pool.GetTxpoolPID())
    57  	return pool
    58  }