Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions lamden/cli/start.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ def start_mongo():
print('Starting MongoDB...')
time.sleep(3)

def cfg_and_start_rsync_daemon():
os.system('cp rsyncd.conf /etc/ && rsync --daemon > /dev/null 2>&1')

def print_ascii_art():
print('''
Expand Down Expand Up @@ -130,6 +132,7 @@ def start_node(args):
if args.node_type == 'masternode':
# Start mongo
start_mongo()
cfg_and_start_rsync_daemon()

n = Masternode(
wallet=wallet,
Expand Down Expand Up @@ -186,6 +189,7 @@ def join_network(args):
if args.node_type == 'masternode':
# Start mongo
start_mongo()
cfg_and_start_rsync_daemon()

n = Masternode(
wallet=wallet,
Expand Down
13 changes: 6 additions & 7 deletions lamden/nodes/base.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from lamden import storage, network, router, authentication, rewards, upgrade
from lamden import network, router, authentication, rewards, upgrade
from lamden import storage
from lamden.crypto import canonical
from lamden.crypto.wallet import Wallet
from lamden.contracts import sync
Expand Down Expand Up @@ -245,7 +246,8 @@ async def catchup(self, mn_seed, mn_vk):
wallet=self.wallet,
ctx=self.ctx
)
self.process_new_block(block)
if not block.get('error'):
self.process_new_block(block)

# Process any blocks that were made while we were catching up
while len(self.new_block_processor.q) > 0:
Expand Down Expand Up @@ -318,8 +320,6 @@ def update_state(self, block):
client=self.client
)

#self.nonces.flush_pending()

self.log.info('Updating metadata.')
self.current_height = storage.get_latest_block_height(self.driver)
self.current_hash = storage.get_latest_block_hash(self.driver)
Expand All @@ -335,15 +335,14 @@ def process_new_block(self, block):
if self.store:
encoded_block = encode(block)
encoded_block = json.loads(encoded_block)

self.blocks.store_block(encoded_block)

# create Event File
self.event_writer.write_event(Event(
topics=[NEW_BLOCK_EVENT],
data=encoded_block
))

self.blocks.store_block(block)

# Prepare for the next block by flushing out driver and notification state
# self.new_block_processor.clean()

Expand Down
8 changes: 5 additions & 3 deletions lamden/nodes/delegate/delegate.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ def __init__(self, client: ContractingClient, nonces: storage.NonceStorage, debu

async def process_message(self, msg):
self.log.info(f'Received work from {msg["sender"][:8]}')
# if msg['sender'] not in self.masters:
# self.log.error(f'TX Batch received from non-master {msg["sender"][:8]}')
# return
self.log.info(msg)

if msg['sender'] not in self.masters:
self.log.error(f'TX Batch received from non-master {msg["sender"][:8]}')
return

shim = {
'transactions': [],
Expand Down
3 changes: 1 addition & 2 deletions lamden/nodes/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ def get_events(self) -> List[Event]:
with open(file, 'r') as f:
try:
e = json.load(f)
event = Event(e['topics'], e['data'])
events.append(event)
events.append(Event(e['topics'], e['data']))
except:
# TODO(nikita): proper handling
print('failed to load event')
Expand Down
2 changes: 1 addition & 1 deletion lamden/nodes/masternode/masternode.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def get_block(self, command):
block = self.blocks.get_block(num)

if block is None:
return None
return {"error": "block does not exist"}

return block

Expand Down
10 changes: 5 additions & 5 deletions lamden/nodes/masternode/webserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ async def disconnect():
@self.sio.event
async def event(data):
for client in self.ws_clients:
await client.send(json.dumps(data))
await client.send(encode(data))

def __register_app_listeners(self):
@self.app.listener('after_server_start')
Expand All @@ -180,7 +180,7 @@ async def ws_handler(self, request, ws):
'data': block
}

await ws.send(json.dumps(eventData))
await ws.send(encode(eventData))

async for message in ws:
pass
Expand Down Expand Up @@ -393,7 +393,7 @@ async def get_latest_block(self, request):

num = storage.get_latest_block_height(self.driver)
block = self.blocks.get_block(int(num))
return response.json(block, dumps=NonceEncoder().encode, headers={'Access-Control-Allow-Origin': '*'})
return response.json(block, dumps=encode, headers={'Access-Control-Allow-Origin': '*'})

async def get_latest_block_number(self, request):
self.driver.clear_pending_state()
Expand Down Expand Up @@ -424,7 +424,7 @@ async def get_block(self, request):
return response.json({'error': 'Block not found.'}, status=400,
headers={'Access-Control-Allow-Origin': '*'})

return response.json(block, dumps=NonceEncoder().encode, headers={'Access-Control-Allow-Origin': '*'})
return response.json(block, dumps=encode, headers={'Access-Control-Allow-Origin': '*'})

async def get_tx(self, request):
_hash = request.args.get('hash')
Expand All @@ -444,7 +444,7 @@ async def get_tx(self, request):
return response.json({'error': 'Transaction not found.'}, status=400,
headers={'Access-Control-Allow-Origin': '*'})

return response.json(tx, dumps=NonceEncoder().encode, headers={'Access-Control-Allow-Origin': '*'})
return response.json(tx, dumps=encode, headers={'Access-Control-Allow-Origin': '*'})

async def get_constitution(self, request):
self.client.raw_driver.clear_pending_state()
Expand Down
Loading