Интеллектуальный анализ контрактов с Python - PullRequest
0 голосов
/ 25 января 2019

Я хотел бы проанализировать общедоступный блокчейн ethereum проекта с двойным блокчейном.

Например, в проекте Medicalchain (https://medicalchain.com/it/),) они построили блокчейн, используя общедоступный, основанный на Ethereum и разрешенный с помощью Hyperledger. Каждая транзакция в общедоступной цепочке блоков служит указателем на разрешенную.

Я получаю информацию об общедоступной цепочке блоков, используя Python и BigQuery с этим кодом

# Start bigquery_query
def export_table_to_gcs(dataset_id, table_id, destination):
    """
    Exports data from BigQuery to an object in Google Cloud Storage.
    For more information, see the README.rst.
    Example invocation:
    $ python export_data_to_gcs.py example_dataset example_table \\
      gs://example-bucket/example-data.csv
   The dataset and table should already exist.
   """

dataset_id = 'bigquery-public-data'
project_id = 'cecitesi1-219209'
table_id= 'ethereum_blockchain'
client = bigquery.Client(credentials= credentials_, project =project_id)
dataset_ref = client.dataset(dataset_id=dataset_id, project=project_id)
table_ref = dataset_ref.table(table_id)

QUERY=("""
#standardSQL
#standardSQL
SELECT
  transactions.hash,
  input,
  token.block_timestamp
FROM
  `bigquery-public-data.ethereum_blockchain.token_transfers` AS token
LEFT JOIN
  `bigquery-public-data.ethereum_blockchain.transactions` AS transactions
ON
  (transactions.hash = token.transaction_hash)
WHERE
  token.token_address = '0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3'  """)

query_job = client.query(QUERY)  # API request

results = query_job.result()  # Waits for job to complete.
# END bigquery_query

# From query to Dataframe - pandas
df = pd.read_gbq(QUERY, project_id=project_id, dialect="standard")
df.columns=['transactions.hash', 'input', ' date']

Затем у меня есть DataFrame, который показывает ввод транзакций, дату и хэш. Я думал, что понимание типа функции во входных данных транзакций может быть ответом на мою цель, но почти все это Function: transfer(address _to, uint256 _value)

Есть ли возможность понять, какую информацию пишут о транзакциях? В противном случае, какой количественный анализ я могу сделать? (Я только что проанализировал количество транзакций, совершаемых каждый месяц, но я не очень доволен, я хотел бы работать больше)

...