Scheint wie eine wirklich teure Art und Weise zu bekommen Mehl. In der Dominikanischen Kultur, die dünne Schicht aus knusprigem Reis ist eine gewünschte Delikatesse (und in der Regel von hand gerollt, in kleine nuggets und die Kinder gegeben wie ein Leckerli). versuchen Sie `lspci | grep "Network"` Ich kann nicht leisten, zu versuchen, wenn ich dabei bin, zu locken Schaben. In diesem Wetter, Sie *wirklich* multiplizieren. Nachbarn haben Buffalo Rasen Läufer, einige haben einen Rasen. Einige haben konkrete. Ich will nicht den Aufwand für das mähen dieser kleine Hof. Also keine option für mich. Könntest du auch bitte sagen Sie mir, wie diese Befehle beim Start? Wenn Sie ziehen, während es abgeschnitten in der front dreht Ihren Körper zu Ihnen, wenn es in den zurück Sie haben immer nur vorwärts gehen. Wenn Sie nicht ziehen, es wird nicht egal, wo es beschnitten wurde, habe ich immer angenommen, Sie ziehen :P

Derzeit dauert es fast 1,5 Stunden, um alle ein-und Ausgänge des bitcoin-block von Januar JSON-RPC. Bei diesem Tempo, dauert es eine erhebliche Menge an Zeit zu gehen den ganzen Weg zurück zu genesis. Ich beginne zu glauben, dass ich die falsche API-Aufruf, oder machst etwas anderes falsch. Ich wäre sehr dankbar, wenn Sie prüfen könnten die Gespräche, die ich bin derzeit mit (unten eingefügt) und vielleicht sagen Sie mir, was ich falsch mache, oder wenn bitcoind ist der passende client für das.

von bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
importieren json
import requests
import pprint
import time
import os


objectivestart_time=Zeit.time()
pp= pprint.PrettyPrinter(indent=4)



rpc_user='n'
rpc_password='n'

url=("http://%s:%s@1"%(rpc_user, rpc_password))


def req(payload):
 Rückkehr Anforderungen.post(url,data=json.dumps(payload)).json()


def BlockHash_JsonRPCpayload(Anzahl):
dic={

"jsonrpc":"2.0",
 "Methode": "getblockhash",
 "params": [number] ,
 "id": 1 

}
 return (dic)


def Block_JsonRPCpayload(h):
dic={

"jsonrpc":"2.0",
 "Methode": "getblock",
 "params": [str(h)] ,
 "id": 1 

}
 return (dic)


def rawtx_JsonRPCpayload(tx):
dic={

"jsonrpc":"2.0",
 "Methode": "getrawtransaction",
 "params": [tx, True] ,
 "id": 1 

}
 return (dic)

def rawvin_JsonRPCpayload(tx,vin):
block_payload={

"jsonrpc":"2.0",
 "Methode": "getrawtransaction",
 "params": [tx,1] ,
 "id": 1 

}

request=req(block_payload)
Wert=request['Ergebnis']['UA'][int(vin)]['Wert']


 return float(Wert)

BTC_dic={}


hash_payload=[]
start_time=time.time()

block_start=481101
block_end=490000
start=block_start
Ende= block_start

während Ende < block_end:
block_tries=0
 while True: 
 versuchen: 

Ende=start+100
hash_payload=[]
 print ( 'start', 'Ende', start, Ende )
 for i in range(start,Ende):
hash_payload.append(BlockHash_JsonRPCpayload(i))


start_time=time.time()
 print ( 'mark 1 ')
 hash_response= - Anfragen.post(url, data=json.dumps(hash_payload)).json()
 print ("Zeit, um hash-Los", "start", "_", das Ende der Zeit.time()-start_time)
 print ("Erfolg in bekommen hashes für die Bereiche', "start", "_ ", Ende )

Zeit.sleep(0.4)

block_payload=[]
 für ich in hash_response:
h=i['Ergebnis']
block_payload.append(Block_JsonRPCpayload(h))
start_time=time.time()
block_response= - Anfragen.post(url,data=json.dumps(block_payload)).json()
 print ("Zeit, um block-Los", "start", "_", das Ende der Zeit.time()-start_time)
 print ("Erfolg in der erste Bausteine für die Bereiche', "start", "_ ", Ende )

Zeit.sleep(0.4)



 for i in range(len(block_response)):


block=block_response[i] ["Ergebnis"]

Höhe=block['height']
 print('immer', len(block['tx']),'Transaktionen für block ', Höhe)
BTC_dic[height]=block
tx_payload=[]
 für tx-block['tx']:
tx_payload.append(rawtx_JsonRPCpayload(tx))

try_errors=0
 while True:
versuchen:
 #print ( len(tx_payload), 'Anzahl der Transaktionen, die im block ', Höhe)
start_time=time.time()
Transaktion= - Anfragen.post(url,data=json.dumps(tx_payload)).json()
Zeit.sleep(0.5)
 #print ("time to get tx', Zeit.time()-start_time)
 print ("Erfolg in erste Transaktionen für block ', Höhe )
außer:
try_errors+=1
 print ("!! Versuchen Sie, Fehler !!')
 print ( try_errors, 'Transaktion versucht, die für block-Höhe', Höhe)
Zeit.Schlaf(3)
weiter

Pause


 for i in range(len(Transaktion)):


tx_result=Transaktion[i] ["Ergebnis"]
vin=tx_result['vin']
vout=tx_result['UA']



versuchen:
Gebühren=0
 for j in range(len(vout)):
 Gebühren -= tx_result['UA'][j]['Wert']

 for j in range(len(vin)):

vout=vin[j]['UA']
txid=vin[j]['txid']

vin_error=0
 while True:
versuchen:
Wert=rawvin_JsonRPCpayload(txid,vout)
außer:
 print ("!! vin Fehler !!')
 print ( 'Versuch', vin_error )
vin_error+=1

Zeit.sleep(0.4)
weiter
 Pause 

Gebühren+=Wert
tx_result['vin'][j]['Wert']=Wert



tx_result['Gebühren']=Gebühren
außer:
 tx_result['vin'][0]['value']='Keine Eingänge (Neu Generierten Coins)'
tx_result['Gebühren']=0


BTC_dic[Höhe]['tx'][i]=tx_result



 if len(BTC_dic) >= 100:
 print ( 'len BTC_dic =', len(BTC_dic))


 für block in BTC_dic:
block_fee=0
 Transaktionen= BTC_dic[block]['tx']


#pp.pprint(Transaktionen)
 j-Transaktionen:
Gebühr=j['Gebühren']
block_fee+=Gebühr
 BTC_dic[block] [block Honorare"]=block_fee



block_array=[]
 für block in BTC_dic:
block_array.append(block)


file_name='jcampbell_btc_txdata'+str(min(block_array))+'_'+str(max(block_array))+'.json'
 print ('speichern', Dateiname, 'Zeit', Zeit.time()-objectivestart_time)

 mit open(datei_name, 'w') as outfile:
json.dump(BTC_dic,outfile)
BTC_dic={}




start=Ende



außer:
block_tries+=1
 print(block_tries, 'versucht, die Daten für die block-Bereich", "start","_", Ende)
Zeit.schlafen(5)
weiter
 Pause 




für block in BTC_dic:
block_fee=0
 Transaktionen= BTC_dic[block]['tx']


#pp.pprint(Transaktionen)
 j-Transaktionen:
Gebühr=j['Gebühren']
block_fee+=Gebühr
 BTC_dic[block] [block Honorare"]=block_fee





block_array=[]
für block in BTC_dic:
block_array.append(block)


file_name='jcampbell_btc_txdata'+str(min(block_array))+'_'+str(max(block_array))+'.json'
print ('speichern', Dateiname, 'Zeit', Zeit.time()-objectivestart_time)
mit open(datei_name, 'w') as outfile:
json.dump(BTC_dic,outfile)

Hintergrund

Wenn wir wollen, dass BTC mainstream gehen, brauchen wir eine bessere Art zu zeigen, die Wirtschaftliche Aktivität. Ich brauche Sie, um mir helfen zu beweisen, dass Bitcoin ist mehr als ein spekulatives instrument.

Ich komme aus der Wissenschaft (Wirtschaft, speziell), und oft finde ich es schwierig, überzeugend zu beschreiben, um meinen Kollegen das Wachstum der Bitcoin-ökosystem in zahlen zu übersetzen, um den wirtschaftlichen Wert.

Angesichts des schnellen Wachstums dieses Marktes erlebt hat, wenn die Leute denken über Bitcoin, Preis ist oft die erste Sache, die kommt sich zu kümmern. Für diejenigen von uns, die für einige Zeit forschen Bitcoin, sechs tausend US-Dollar pro bitcoin ist, unwiderlegbar, eine unglaubliche Indikator für die Popularität. Allerdings brauchen wir eine bessere Metrik zu zeigen, die tatsächliche wirtschaftliche Aktivität, die ebenfalls erheblich zugenommen in den letzten paar Jahren. Wenn Bitcoin ist eine peer-to-peer electronic cash system, wir brauchen einen besseren Indikator BTC Volumen zwischen Netzwerk-peers. Ich begann zu forschen, die auf Bitcoin Tage Zerstört, aber oft finde ich diese Metrik nur schwer erklärt werden, da es nicht genau die Frage beantwortet: wie viel Wert wird ausgetauscht innerhalb des Netzwerks?

Ich verstehe, dass eine ganz genaue Antwort auf diese Frage ist fast nicht möglich wegen der Bitcoin ' s UTXO Modell, aber wir brauchen genauere Schätzungen. Blockchain.info bietet geschätzte Transaktionsvolumen auf einer täglichen basis, aber die Stichproben die ich bearbeitet haben, zeigt, dass Ihre Methodik deutlich unterschätzt Volumen. Nach Monaten der Prüfung stichprobenartig und manuell betrachten-Adressen, ich glaube, ich habe einen entwickelt, der eine genauere Methodik zur Schätzung der auf-chain-Volumen. Ich Plane, teilen diese Methodik mit der community, sobald ich kann testen, meine Hypothese mit fuller Blöcke, aber die Herausforderung ist jetzt an, um alle ein-und Ausgänge von neueren Blöcke.

Ich glaube ein realistischeres Volumen-Schätzung, unterstützt durch ein peer-reviewed Methodik erhöhen würde, Interesse aus der Wissenschaft und fügen Sie die Glaubwürdigkeit der Bitcoin-Netz. Wenn Sie nicht vertraut sind mit JSON-RPC, ich würde schätzen, wenn Sie könnten bitte upvote diesen Beitrag, damit mehr Menschen es sehen.

Danke.

-JC