Вставьте информацию о блокировке Эфириума в монго БД - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь вставить информацию блока Ethereum из основной сети из диапазона 5000000 - 5100000 в MongoDB-4 .Вот мой код, он не работает.Может кто-нибудь помочь мне с кодом?Я очень плохо знаком с Python.

import threading
import binascii
import pymongo
import json
import sys

from web3 import Web3, HTTPProvider  
w3 = Web3(Web3.HTTPProvider("http://ipaddress:port"))  
myclient = pymongo.MongoClient("mongodb://ipaddress:port")  
mydb = myclient["TestDB06"]
mycol = mydb["Testcollection06"]

for i in range(5000000,5100000):  
    print(i)  
    transactionArray = []  
    blockResult = w3.eth.getBlock(i)  
    print(blockResult)  
    for tx in blockResult["transactions"]:  
        txResult = binascii.hexlify(tx).decode()  
        print(txResult)  
        try:  
            transactionResult = w3.getTransactionReceipt(txResult)  
            print(transactionResult)  
        except:  
            print("No Receipt")  

   transactionJson={          
      'blockHash':binascii.hexlify(transactionResult["blockHash"])
      .decode(),
      'blockNumber':transactionResult["blockNumber"],
      'contractAddress':transactionResult["contractAddress"],                  
      'cumulativeGasUsed':transactionResult["cumulativeGasUsed"],
      'from':transactionResult["from"],
      'gasUsed':transactionResult["gasUsed"],
      'logs':transactionResult["logs"],                   
      'logsBloom':binascii.hexlify(transactionResult["logsBloom"]).
        decode(),
      'root':transactionResult["root"],
      'to':transactionResult["to"],                    
      'transactionHash':binascii.hexlify
      (transactionResult["transactionHash"]).decode(),                    
       'transactionIndex':transactionResult["transactionIndex"]
      }
        transactionArray.append(blockResult)
        if(len(transactionArray)>0):
            mycol.insert_many(transactionArray)
...