예제 #1
0
def s_to_db(c):
    response = networking.send_command(['localhost', custom.database_port], c)
    if (type(response) == dict and 'error' in response):
        time.sleep(0.001)
        log('s to db failed at ' + str(c))
        return s_to_db(c)
    else:
        return response
예제 #2
0
def s_to_db(c): 
    response=networking.send_command(['localhost', custom.database_port], c)
    if (type(response)==dict and 'error' in response):
        time.sleep(0.001)
        log('s to db failed at '+str(c))
        return s_to_db(c)
    else:
        return response
예제 #3
0
def s_to_db(c):
    response = networking.send_command(["localhost", custom.database_port], c)
    if type(response) == dict and "error" in response:
        time.sleep(0.001)
        log("s to db failed at " + str(c))
        return s_to_db(c)
    else:
        return response
예제 #4
0
def main():
    info=sys.argv
    peer=['127.0.0.1', custom.basicd_port]
    p={'command':sys.argv[1:]}
    if len(p['command'])==0:
        p['command'].append(' ')
    response=networking.send_command(peer, p, 5)
    if tools.can_unpack(response):
        response=tools.unpackage(response)
    if type(response)==type({'a':1}):
        if 'error' in response:
            print('basiccoin is probably off. Use command: "python threads.py" to turn it on. (you may need to reboot it a couple times to get it working)')
    return(response)
예제 #5
0
def main():
    info = sys.argv
    peer = ['127.0.0.1', custom.basicd_port]
    p = {'command': sys.argv[1:]}
    if len(p['command']) == 0:
        p['command'].append(' ')
    response = networking.send_command(peer, p, 5)
    if tools.can_unpack(response):
        response = tools.unpackage(response)
    if type(response) == type({'a': 1}):
        if 'error' in response:
            print(
                'basiccoin is probably off. Use command: "python threads.py" to turn it on. (you may need to reboot it a couple times to get it working)'
            )
    return (response)
예제 #6
0
 def peer_check(peer, DB):
     cmd=(lambda x: networking.send_command(peer, x))
     block_count=cmd({'type':'blockCount'})
     if type(block_count)!=type({'a':1}):
         return 
     if 'error' in block_count.keys():
         return         
     length=copy.deepcopy(DB['length'])
     us=copy.deepcopy(DB['diffLength'])
     them=block_count['diffLength']
     ahead=length-block_count['length']
     if them < us and ahead>0:#if we are ahead of them
         cmd({'type':'pushblock', 
              'block':blockchain.db_get(block_count['length']+1, DB)})
         return []
     if length<0: return []
     if us == them:#if we are on the same block, ask for any new txs
         block=blockchain.db_get(length, DB)
         if 'recent_hash' in block_count:
             if tools.det_hash(block)!=block_count['recent_hash']:
                 blockchain.delete_block()
                 #print('WE WERE ON A FORK. time to back up.')
                 return []
         my_txs=DB['txs']
         txs=cmd({'type':'txs'})
         for tx in txs:
             DB['suggested_txs'].append(tx)
         pushers=[x for x in my_txs if x not in txs]
         for push in pushers:
             cmd({'type':'pushtx', 'tx':push})
         return []
     start=length-2
     if start<0:
         start=0
     if ahead>custom.download_many:
         end=length+custom.doanload_many-1
     else:
         end=block_count['length']
     blocks= cmd({'type':'rangeRequest', 
                  'range':[start, end]})
     if type(blocks)!=type([1,2]):
         return []
     times=2
     while fork_check(blocks, DB) and times>0:
         times-=1
         blockchain.delete_block(DB)
     for block in blocks:
         DB['suggested_blocks'].append(block)
예제 #7
0
 def cmd(x):
     return networking.send_command(peer, x)
예제 #8
0
def cmd(peer, x): #return networking.send_command(peer, x)
    if type(peer)!=list:
        peer=tools.peer_split(peer)
    return networking.send_command(peer, x)
예제 #9
0
def connect(p):
    peer = ['localhost', custom.api_port]
    response = networking.send_command(peer, p, 5)
    if tools.can_unpack(response):
        response = tools.unpackage(response)
    return response
예제 #10
0
def cmd(peer, x):
    return networking.send_command(peer, x)
예제 #11
0
def cmd(peer, x): return networking.send_command(peer, x)
def download_blocks(peer, DB, peers_block_count, length):
예제 #12
0
def connect(p):
    peer=['localhost', custom.api_port]
    response=networking.send_command(peer, p, 5)
    if tools.can_unpack(response):
        response=tools.unpackage(response)
    return response
예제 #13
0
def cmd(peer, x):
    if type(peer) != list:
        peer = tools.peer_split(peer)
    return networking.send_command(peer, x)