Compare commits
No commits in common. "4f3da58a60f177cbb5363581a443dd2090ba6802" and "5337b0aba48377a8d7882f7f32afc42e6fbc0c48" have entirely different histories.
4f3da58a60
...
5337b0aba4
@ -1,4 +1,3 @@
|
|||||||
import threading
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from typing import TYPE_CHECKING, Set
|
from typing import TYPE_CHECKING, Set
|
||||||
from os import urandom
|
from os import urandom
|
||||||
@ -11,7 +10,6 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
from onionrthreads import add_onionr_thread
|
from onionrthreads import add_onionr_thread
|
||||||
import onionrplugins
|
import onionrplugins
|
||||||
import logger
|
|
||||||
|
|
||||||
from .connectpeer import connect_peer
|
from .connectpeer import connect_peer
|
||||||
from .client import gossip_client
|
from .client import gossip_client
|
||||||
@ -46,18 +44,8 @@ def start_gossip_threads(
|
|||||||
|
|
||||||
add_onionr_thread(
|
add_onionr_thread(
|
||||||
gossip_server, 1, peer_set, block_queue, seed, initial_sleep=0.2)
|
gossip_server, 1, peer_set, block_queue, seed, initial_sleep=0.2)
|
||||||
|
add_onionr_thread(
|
||||||
threading.Thread(
|
gossip_client, 1, peer_set, block_queue, seed, initial_sleep=0)
|
||||||
target=gossip_client,
|
|
||||||
args=[peer_set, block_queue, seed], daemon=True).start()
|
|
||||||
onionrplugins.events.event('gossip_start', data=peer_set, threaded=True)
|
onionrplugins.events.event('gossip_start', data=peer_set, threaded=True)
|
||||||
for _ in range(2):
|
|
||||||
onionrplugins.events.event(
|
onionrplugins.events.event(
|
||||||
'bootstrap', data={'peer_set': peer_set, 'callback': connect_peer},
|
'bootstrap', data={'peer_set': peer_set, 'callback': connect_peer})
|
||||||
threaded=False)
|
|
||||||
sleep(60)
|
|
||||||
if len(peer_set):
|
|
||||||
return
|
|
||||||
logger.error("Could not connect to any peers :(", terminal=True)
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
from gossip.commands import GossipCommands, command_to_byte
|
|
||||||
import logger
|
import logger
|
||||||
|
|
||||||
|
|
||||||
def connect_peer(peer_set, peer):
|
def connect_peer(peer_set, peer):
|
||||||
if peer in peer_set:
|
|
||||||
return
|
|
||||||
try:
|
try:
|
||||||
s = peer.get_socket()
|
peer.get_socket()
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warn(f"Could not connect to {peer.transport_address}")
|
logger.warn(f"Could not connect to {peer.transport_address}")
|
||||||
else:
|
else:
|
||||||
s.sendall(command_to_byte(GossipCommands.CLOSE))
|
|
||||||
s.close()
|
|
||||||
peer_set.add(peer)
|
peer_set.add(peer)
|
||||||
logger.info(f"connected to {peer.transport_address}")
|
logger.info(f"connected to {peer.transport_address}")
|
||||||
|
@ -39,7 +39,7 @@ def gossip_server(
|
|||||||
try:
|
try:
|
||||||
cmd = await asyncio.wait_for(reader.read(1), 60)
|
cmd = await asyncio.wait_for(reader.read(1), 60)
|
||||||
except asyncio.exceptions.CancelledError:
|
except asyncio.exceptions.CancelledError:
|
||||||
break
|
writer.close()
|
||||||
|
|
||||||
cmd = int.from_bytes(cmd, 'big')
|
cmd = int.from_bytes(cmd, 'big')
|
||||||
if cmd == b'' or cmd == 0:
|
if cmd == b'' or cmd == 0:
|
||||||
@ -48,7 +48,7 @@ def gossip_server(
|
|||||||
case GossipCommands.PING:
|
case GossipCommands.PING:
|
||||||
writer.write(b'PONG')
|
writer.write(b'PONG')
|
||||||
case GossipCommands.CLOSE:
|
case GossipCommands.CLOSE:
|
||||||
pass
|
writer.close()
|
||||||
case GossipCommands.ANNOUNCE:
|
case GossipCommands.ANNOUNCE:
|
||||||
async def _read_announce():
|
async def _read_announce():
|
||||||
address = await reader.read(56)
|
address = await reader.read(56)
|
||||||
@ -60,10 +60,8 @@ def gossip_server(
|
|||||||
threaded=True)
|
threaded=True)
|
||||||
writer.write(int(1).to_bytes(1, 'big'))
|
writer.write(int(1).to_bytes(1, 'big'))
|
||||||
await asyncio.wait_for(_read_announce(), 10)
|
await asyncio.wait_for(_read_announce(), 10)
|
||||||
break
|
|
||||||
|
|
||||||
await writer.drain()
|
await writer.drain()
|
||||||
writer.close()
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user