mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-13 12:33:25 +02:00
Remove squeak server client class (#509)
This commit is contained in:
parent
0a5a54554c
commit
1a1e92f586
7 changed files with 56 additions and 111 deletions
|
|
@ -20,7 +20,6 @@ from squeaknode.core.lightning_address import LightningAddressHostPort
|
|||
from squeaknode.server.squeak_server_handler import SqueakServerHandler
|
||||
from squeaknode.server.squeak_server_servicer import SqueakServerServicer
|
||||
from squeaknode.node.squeak_node import SqueakNode
|
||||
from squeaknode.network.squeak_server_client import SqueakServerClient
|
||||
|
||||
from squeaknode.config.config import Config
|
||||
|
||||
|
|
@ -125,10 +124,6 @@ def load_blockchain_client(config):
|
|||
)
|
||||
|
||||
|
||||
def load_squeak_server_client(config):
|
||||
return SqueakServerClient()
|
||||
|
||||
|
||||
def sigterm_handler(_signo, _stack_frame):
|
||||
# Raises SystemExit(0):
|
||||
sys.exit(0)
|
||||
|
|
@ -225,9 +220,6 @@ def run_server(config):
|
|||
# load the blockchain client
|
||||
blockchain_client = load_blockchain_client(config)
|
||||
|
||||
# load the squeak server client
|
||||
squeak_server_client = load_squeak_server_client(config)
|
||||
|
||||
# load enable sync config
|
||||
sync_interval_s = load_sync_interval_s(config)
|
||||
|
||||
|
|
@ -235,7 +227,6 @@ def run_server(config):
|
|||
squeak_db,
|
||||
blockchain_client,
|
||||
lightning_client,
|
||||
squeak_server_client,
|
||||
lightning_host_port,
|
||||
price_msat,
|
||||
max_squeaks_per_address_per_hour,
|
||||
|
|
|
|||
|
|
@ -1,46 +1,77 @@
|
|||
import logging
|
||||
from contextlib import contextmanager
|
||||
|
||||
import grpc
|
||||
from squeak.core import CheckSqueak, CSqueak
|
||||
|
||||
from squeaknode.core.util import get_hash
|
||||
|
||||
from proto import squeak_server_pb2, squeak_server_pb2_grpc
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PeerClient:
|
||||
def __init__(self, host, port, squeak_server_client):
|
||||
def __init__(self, host, port):
|
||||
self.host = host
|
||||
self.port = port
|
||||
self.squeak_server_client = squeak_server_client
|
||||
|
||||
@contextmanager
|
||||
def get_stub(self):
|
||||
return self.squeak_server_client.get_stub(
|
||||
self.host,
|
||||
self.port,
|
||||
)
|
||||
host_port_str = "{}:{}".format(self.host, self.port)
|
||||
with grpc.insecure_channel(host_port_str) as server_channel:
|
||||
yield squeak_server_pb2_grpc.SqueakServerStub(server_channel)
|
||||
|
||||
def lookup_squeaks(self, addresses, min_block, max_block):
|
||||
with self.get_stub() as stub:
|
||||
return self.squeak_server_client.lookup_squeaks(
|
||||
stub,
|
||||
addresses,
|
||||
min_block,
|
||||
max_block,
|
||||
lookup_response = stub.LookupSqueaks(
|
||||
squeak_server_pb2.LookupSqueaksRequest(
|
||||
addresses=addresses,
|
||||
min_block=min_block,
|
||||
max_block=max_block,
|
||||
)
|
||||
)
|
||||
return lookup_response
|
||||
|
||||
def post_squeak(self, squeak):
|
||||
squeak_msg = self._build_squeak_msg(squeak)
|
||||
with self.get_stub() as stub:
|
||||
return self.squeak_server_client.post_squeak(
|
||||
stub,
|
||||
squeak,
|
||||
stub.PostSqueak(
|
||||
squeak_server_pb2.PostSqueakRequest(
|
||||
squeak=squeak_msg,
|
||||
)
|
||||
)
|
||||
|
||||
def get_squeak(self, squeak_hash):
|
||||
with self.get_stub() as stub:
|
||||
return self.squeak_server_client.get_squeak(
|
||||
stub,
|
||||
squeak_hash,
|
||||
get_response = stub.GetSqueak(
|
||||
squeak_server_pb2.GetSqueakRequest(
|
||||
hash=squeak_hash,
|
||||
)
|
||||
)
|
||||
get_response_squeak = self._squeak_from_msg(get_response.squeak)
|
||||
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
|
||||
return get_response_squeak
|
||||
|
||||
def buy_squeak(self, squeak_hash):
|
||||
with self.get_stub() as stub:
|
||||
return self.squeak_server_client.buy_squeak(
|
||||
stub,
|
||||
squeak_hash,
|
||||
buy_response = stub.GetOffer(
|
||||
squeak_server_pb2.GetOfferRequest(
|
||||
hash=squeak_hash,
|
||||
)
|
||||
)
|
||||
offer_msg = buy_response.offer
|
||||
return offer_msg
|
||||
|
||||
def _build_squeak_msg(self, squeak):
|
||||
return squeak_server_pb2.Squeak(
|
||||
hash=get_hash(squeak),
|
||||
serialized_squeak=squeak.serialize(),
|
||||
)
|
||||
|
||||
def _squeak_from_msg(self, squeak_msg):
|
||||
if not squeak_msg:
|
||||
return None
|
||||
if not squeak_msg.serialized_squeak:
|
||||
return None
|
||||
return CSqueak.deserialize(squeak_msg.serialized_squeak)
|
||||
|
|
|
|||
|
|
@ -1,70 +0,0 @@
|
|||
import logging
|
||||
from contextlib import contextmanager
|
||||
|
||||
import grpc
|
||||
from squeak.core import CheckSqueak, CSqueak
|
||||
|
||||
from squeaknode.core.util import get_hash
|
||||
|
||||
from proto import squeak_server_pb2, squeak_server_pb2_grpc
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SqueakServerClient:
|
||||
|
||||
@contextmanager
|
||||
def get_stub(self, host, port):
|
||||
host_port_str = "{}:{}".format(host, port)
|
||||
with grpc.insecure_channel(host_port_str) as server_channel:
|
||||
yield squeak_server_pb2_grpc.SqueakServerStub(server_channel)
|
||||
|
||||
def lookup_squeaks(self, stub, addresses, min_block, max_block):
|
||||
lookup_response = stub.LookupSqueaks(
|
||||
squeak_server_pb2.LookupSqueaksRequest(
|
||||
addresses=addresses,
|
||||
min_block=min_block,
|
||||
max_block=max_block,
|
||||
)
|
||||
)
|
||||
return lookup_response
|
||||
|
||||
def post_squeak(self, stub, squeak):
|
||||
squeak_msg = self._build_squeak_msg(squeak)
|
||||
stub.PostSqueak(
|
||||
squeak_server_pb2.PostSqueakRequest(
|
||||
squeak=squeak_msg,
|
||||
)
|
||||
)
|
||||
|
||||
def get_squeak(self, stub, squeak_hash):
|
||||
get_response = stub.GetSqueak(
|
||||
squeak_server_pb2.GetSqueakRequest(
|
||||
hash=squeak_hash,
|
||||
)
|
||||
)
|
||||
get_response_squeak = self._squeak_from_msg(get_response.squeak)
|
||||
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
|
||||
return get_response_squeak
|
||||
|
||||
def buy_squeak(self, stub, squeak_hash):
|
||||
buy_response = stub.GetOffer(
|
||||
squeak_server_pb2.GetOfferRequest(
|
||||
hash=squeak_hash,
|
||||
)
|
||||
)
|
||||
offer_msg = buy_response.offer
|
||||
return offer_msg
|
||||
|
||||
def _build_squeak_msg(self, squeak):
|
||||
return squeak_server_pb2.Squeak(
|
||||
hash=get_hash(squeak),
|
||||
serialized_squeak=squeak.serialize(),
|
||||
)
|
||||
|
||||
def _squeak_from_msg(self, squeak_msg):
|
||||
if not squeak_msg:
|
||||
return None
|
||||
if not squeak_msg.serialized_squeak:
|
||||
return None
|
||||
return CSqueak.deserialize(squeak_msg.serialized_squeak)
|
||||
|
|
@ -21,17 +21,15 @@ class NetworkSync:
|
|||
squeak_store,
|
||||
squeak_db,
|
||||
lightning_client,
|
||||
squeak_server_client,
|
||||
):
|
||||
self.squeak_store = squeak_store
|
||||
self.squeak_db = squeak_db
|
||||
self.lightning_client = lightning_client
|
||||
self.squeak_server_client = squeak_server_client
|
||||
|
||||
def sync_timeline(self, peer, min_block, max_block):
|
||||
if not peer.downloading:
|
||||
return
|
||||
peer_connection = PeerConnection(peer, self.squeak_server_client)
|
||||
peer_connection = PeerConnection(peer)
|
||||
peer_sync_task = PeerSyncTask(
|
||||
peer_connection,
|
||||
self.squeak_store,
|
||||
|
|
@ -46,7 +44,7 @@ class NetworkSync:
|
|||
def sync_single_squeak(self, peer, squeak_hash):
|
||||
if not peer.downloading:
|
||||
return
|
||||
peer_connection = PeerConnection(peer, self.squeak_server_client)
|
||||
peer_connection = PeerConnection(peer)
|
||||
peer_sync_task = PeerSyncTask(
|
||||
peer_connection,
|
||||
self.squeak_store,
|
||||
|
|
|
|||
|
|
@ -7,12 +7,11 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class PeerConnection:
|
||||
def __init__(self, peer, squeak_server_client):
|
||||
def __init__(self, peer):
|
||||
self.peer = peer
|
||||
self.peer_client = PeerClient(
|
||||
self.peer.host,
|
||||
self.peer.port,
|
||||
squeak_server_client,
|
||||
)
|
||||
self._stop_event = threading.Event()
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ class SqueakController:
|
|||
squeak_db,
|
||||
blockchain_client,
|
||||
lightning_client,
|
||||
squeak_server_client,
|
||||
lightning_host_port,
|
||||
price_msat,
|
||||
max_squeaks_per_address_per_hour,
|
||||
|
|
@ -43,7 +42,6 @@ class SqueakController:
|
|||
self.squeak_db = squeak_db
|
||||
self.blockchain_client = blockchain_client
|
||||
self.lightning_client = lightning_client
|
||||
self.squeak_server_client = squeak_server_client
|
||||
self.lightning_host_port = lightning_host_port
|
||||
self.price_msat = price_msat
|
||||
self.squeak_block_verifier = SqueakBlockVerifier(blockchain_client)
|
||||
|
|
@ -64,7 +62,6 @@ class SqueakController:
|
|||
)
|
||||
self.squeak_sync_controller = SqueakSyncController(
|
||||
self.blockchain_client,
|
||||
self.squeak_server_client,
|
||||
self.squeak_store,
|
||||
self.squeak_db,
|
||||
self.lightning_client,
|
||||
|
|
|
|||
|
|
@ -14,13 +14,12 @@ LOOKUP_BLOCK_INTERVAL = 1008 # 1 week
|
|||
|
||||
|
||||
class SqueakSyncController:
|
||||
def __init__(self, blockchain_client, squeak_server_client, squeak_store, squeak_db, lightning_client):
|
||||
def __init__(self, blockchain_client, squeak_store, squeak_db, lightning_client):
|
||||
self.blockchain_client = blockchain_client
|
||||
self.squeak_server_client = squeak_server_client
|
||||
self.squeak_store = squeak_store
|
||||
self.squeak_db = squeak_db
|
||||
self.lightning_client = lightning_client
|
||||
self.network_sync = NetworkSync(squeak_store, squeak_db, lightning_client, squeak_server_client)
|
||||
self.network_sync = NetworkSync(squeak_store, squeak_db, lightning_client)
|
||||
|
||||
def sync_timeline(self):
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue