/** * @param PeerState $state * @param Peer $peer * @param Inventory[] $vInv */ public function onInvBlocks(PeerState $state, Peer $peer, array $vInv) { $chains = $this->node->chains(); $best = $chains->best(); $blockView = $chains->blocks($best->getSegment()); $this->blockDownload->advertised($best, $blockView, $peer, $vInv); }
/** * @param NodeInterface $node * @param array $params * @return array */ public function execute(NodeInterface $node, array $params) { $chains = $node->chains(); $nChain = count($chains); $best = $chains->best(); return ['best_header' => $this->convertIndexToArray($best->getIndex()), 'best_block' => $this->convertIndexToArray($best->getLastBlock()), 'nChain' => $nChain]; }
public function __construct(NodeInterface $node, Container $container) { $this->db = $container['db']; $this->retargetDb = new RetargetDb($this->db->getPdo()); $this->math = Bitcoin::getMath(); $this->consensus = new Consensus(Bitcoin::getMath(), new Params(Bitcoin::getMath())); $node->chains()->on('retarget', [$this, 'onRetarget']); }
/** * @param NodeInterface $node * @param array $params * @return array */ public function execute(NodeInterface $node, array $params) { $chains = []; foreach ($node->chains()->getStates() as $state) { $bestHeaderIdx = $state->getIndex(); $bestBlockIdx = $state->getLastBlock(); $chains[] = ['best_header' => $this->convertIndexToArray($bestHeaderIdx), 'best_block' => $this->convertIndexToArray($bestBlockIdx)]; } return $chains; }
/** * ZmqDebug constructor. * @param NodeInterface $node * @param Context $context */ public function __construct(NodeInterface $node, Context $context) { $this->socket = $context->getSocket(\ZMQ::SOCKET_PUB); $this->socket->bind('tcp://127.0.0.1:5566'); $node->on('event', function ($event, array $params) { $this->log($event, $params); }); $node->headers()->on('tip', [$this, 'logTip']); $node->blocks()->on('block', [$this, 'logBlock']); $node->chains()->on('retarget', [$this, 'logRetarget']); }