コード例 #1
0
 /**
  * @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);
 }
コード例 #2
0
ファイル: InfoCommand.php プロジェクト: Bit-Wasp/node-php
 /**
  * @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];
 }
コード例 #3
0
ファイル: RetargetService.php プロジェクト: Bit-Wasp/node-php
 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']);
 }
コード例 #4
0
ファイル: ChainsCommand.php プロジェクト: Bit-Wasp/node-php
 /**
  * @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;
 }
コード例 #5
0
ファイル: ZmqDebug.php プロジェクト: Bit-Wasp/node-php
 /**
  * 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']);
 }