/** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output) { $math = Bitcoin::getMath(); $params = new Params($math); $loop = \React\EventLoop\Factory::create(); $app = new BitcoinNode($params, $loop); $app->start(); $loop->run(); return 0; }
/** * @param BitcoinNode $node * @return array */ public function onInfo(BitcoinNode $node) { $chain = $node->chain(); $bestHeaderIdx = $chain->getChain()->getIndex(); $bestHeader = $bestHeaderIdx->getHeader(); $bestBlockIdx = $chain->getLastBlock(); $bestBlockHeader = $bestBlockIdx->getHeader(); $nChain = count($node->chains->getChains()); $info = ['height' => $bestHeaderIdx->getHeight(), 'work' => $bestHeaderIdx->getWork(), 'best_header' => ['height' => $bestHeaderIdx->getHeight(), 'hash' => $bestHeaderIdx->getHash(), 'prevBlock' => $bestHeader->getPrevBlock(), 'merkleRoot' => $bestHeader->getMerkleRoot(), 'nBits' => $bestHeader->getBits()->getInt(), 'nTimestamp' => $bestHeader->getTimestamp(), 'nNonce' => $bestHeader->getNonce()], 'best_block' => ['height' => $bestBlockIdx->getHeight(), 'hash' => $bestBlockIdx->getHash(), 'prevBlock' => $bestBlockHeader->getPrevBlock(), 'merkleRoot' => $bestBlockHeader->getMerkleRoot(), 'nBits' => $bestBlockHeader->getBits()->getInt(), 'nTimestamp' => $bestBlockHeader->getTimestamp(), 'nNonce' => $bestBlockHeader->getNonce()], 'nChain' => $nChain]; return $info; }