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 }