<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                遍歷區塊數據,獲取所有歷史交易數據入庫 首先要建立數據庫 ethereum吧 然后建立數據表 表結構將跟以太坊返回的信息一致 在以太坊控制臺下輸入一下命令 ~~~ eth.getBlock(0) ~~~ 表示獲取第0個區塊的信息 也就是創世塊信息 ~~~ difficulty: 17179869184, extraData: "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa", gasLimit: 5000, gasUsed: 0, hash: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3", logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", miner: "0x0000000000000000000000000000000000000000", mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000", nonce: "0x0000000000000042", number: 0, parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000", receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", size: 540, stateRoot: "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544", timestamp: 0, totalDifficulty: 17179869184, transactions: [], transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", uncles: [] ~~~ 將這個json格式數據剔除掉 transactions 和 uncles后轉換為數據表字段 所以sql語句如下 ~~~ CREATE TABLE `ethereum_block` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `difficulty` varchar(32) NOT NULL COMMENT '工作難度', `extraData` varchar(255) NOT NULL COMMENT '外部數據', `gasLimit` varchar(11) NOT NULL COMMENT '限制的氣體數量', `gasUsed` varchar(30) NOT NULL COMMENT '所使用的氣體總量', `hash` varchar(255) NOT NULL COMMENT 'hash值', `logsBloom` text NOT NULL, `miner` varchar(255) NOT NULL COMMENT '曠工', `mixHash` text NOT NULL COMMENT '最小hash', `nonce` text NOT NULL COMMENT '隨機數', `number` int(11) NOT NULL COMMENT '第幾個區塊', `parentHash` varchar(255) NOT NULL COMMENT '前一區塊的hash', `receiptsRoot` varchar(255) NOT NULL COMMENT '接收根', `sha3Uncles` varchar(255) NOT NULL, `size` varchar(255) NOT NULL COMMENT '區塊尺寸 即大小', `stateRoot` varchar(255) NOT NULL COMMENT '星宿 百度翻譯的', `timestamp` int(11) NOT NULL COMMENT '時間戳', `totalDifficulty` varchar(255) NOT NULL COMMENT '總難度', `transactionsRoot` varchar(255) NOT NULL COMMENT '交易根', `create_at` int(11) NOT NULL COMMENT '創建時間 插入數據庫時間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='以太坊區塊表'; ~~~ 然后寫一個死循環的程序 思路如下: 先查詢本地數據的最后一條數據, 獲取number的數字, 然后遞增1查下一個區塊信息, 一直查詢區塊信息 這樣就可以遍歷所有的區塊高度信息了 下面是實例代碼 public function getBlockInfo() { $db = D('Block'); $number = $db->max('number'); // $this->ajaxReturn($number); if (!$number) { $number = 0; } $block = '0x'. dechex($number + 1); // 需要轉換為16進制數據 $info = $this->eth->eth_getBlockByNumber($block,true); // 查詢區塊高度所包含的信息 if (!$info) { $this->ajaxReturn(['code'=>0,'msg'=>'data is empty']); } $res = $db->update($info); // 添加高度信息 if ($res) { $this->ajaxReturn(['code'=>1,'msg'=>'add data ok']); }else{ $this->ajaxReturn(['code'=>0,'msg'=>'add data fail']); } } 需要注意的是 jsonrpc調用api命令與在控制臺直接使用是不一樣的 需要參考下官網文檔 sh執行該php方法 (域名都不需要) cd /data/wwwroot/www.ethereum.io/ while true do php /data/wwwroot/www.ethereum.io/index.php Api/Block/getBlockInfo done nohup sh block.sh & 一直跑到死為止..........這樣肯定是不行的 數據庫數據太大了 肯定不行 現在的區塊高度是620多萬了 可以優化一下該信息的 具體怎么優化留給你們思考吧
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看