diff --git a/docker/sqkclient/Dockerfile b/docker/sqkclient/Dockerfile index 7d8615cd..dccd4845 100644 --- a/docker/sqkclient/Dockerfile +++ b/docker/sqkclient/Dockerfile @@ -6,6 +6,9 @@ RUN apt-get update && apt-get install -y \ curl \ git +# install nc +RUN apt-get update && apt-get install -y netcat + COPY requirements.txt / RUN pip3 install --upgrade pip diff --git a/docker/sqkclient/start-sqkclient.sh b/docker/sqkclient/start-sqkclient.sh index cc0a660d..00d8d807 100755 --- a/docker/sqkclient/start-sqkclient.sh +++ b/docker/sqkclient/start-sqkclient.sh @@ -87,6 +87,11 @@ runsqueaknodeclient \ "--log-level"="$DEBUG" \ init-db +echo "Checking if the server port is open" +nc -zvw3 blockchain 18556 +nc -zvw3 sqkserver 50052 +echo "Done checking remote port" + exec runsqueaknodeclient \ "--config"="config.ini" \ "--log-level"="$DEBUG" \ diff --git a/docker/sqkserver/start-sqkserver.sh b/docker/sqkserver/start-sqkserver.sh index 585c4d03..8bc53667 100755 --- a/docker/sqkserver/start-sqkserver.sh +++ b/docker/sqkserver/start-sqkserver.sh @@ -78,6 +78,7 @@ export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # Generate the config file. chmod +x config.ini.sh ./config.ini.sh $NETWORK $LND_HOST $LND_PORT $BTCD_HOST $BTCD_RPC_PORT $RPCUSER $RPCPASS $SQK_HOST $SQK_PORT > config.ini +echo "config.ini:" cat config.ini # # Initialize the client database. @@ -86,7 +87,14 @@ cat config.ini # "--log-level"="$DEBUG" \ # init-db +echo "$DEBUG:" +echo $DEBUG + +echo "Starting to run the python server here...." + exec runsqueaknodeserver \ "--config"="config.ini" \ "--log-level"="$DEBUG" \ run-server + +# exec ls diff --git a/itests/docker-compose.yml b/itests/docker-compose.yml index ac5e9207..bd1a70f8 100644 --- a/itests/docker-compose.yml +++ b/itests/docker-compose.yml @@ -99,9 +99,9 @@ services: - "btcd:blockchain" entrypoint: ["./start-lnd.sh"] - lnd_server: + lnd_sqkserver: image: lnd - container_name: lnd_server + container_name: lnd_sqkserver build: context: ../ dockerfile: docker/lnd/Dockerfile @@ -113,11 +113,34 @@ services: - DEBUG volumes: - shared_test:/rpc - - lnd_dir_server:/root/.lnd + - lnd_dir_sqkserver:/root/.lnd links: - "btcd:blockchain" entrypoint: ["./start-lnd.sh"] + sqkserver: + image: sqkserver + container_name: sqkserver + build: + context: ../ + dockerfile: docker/sqkserver/Dockerfile + environment: + - RPCUSER + - RPCPASS + - NETWORK + - CHAIN + - DEBUG + - HEADLESS + volumes: + - shared_test:/rpc + - lnd_dir_sqkserver:/root/.lnd + links: + - "btcd:blockchain" + - "lnd_sqkserver:lnd" + sysctls: + - net.ipv6.conf.all.disable_ipv6=0 + entrypoint: ["./start-sqkserver.sh"] + sqkclient_alice: image: sqkclient container_name: sqkclient_alice @@ -137,6 +160,7 @@ services: links: - "btcd:blockchain" - "lnd_alice:lnd" + - "sqkserver:sqkserver" sysctls: - net.ipv6.conf.all.disable_ipv6=0 entrypoint: ["./start-sqkclient.sh"] @@ -160,6 +184,7 @@ services: links: - "btcd:blockchain" - "lnd_bob:lnd" + - "sqkserver:sqkserver" sysctls: - net.ipv6.conf.all.disable_ipv6=0 entrypoint: ["./start-sqkclient.sh"] @@ -183,33 +208,11 @@ services: links: - "btcd:blockchain" - "lnd_carol:lnd" + - "sqkserver:sqkserver" sysctls: - net.ipv6.conf.all.disable_ipv6=0 entrypoint: ["./start-sqkclient.sh"] - sqkserver: - image: sqkserver - container_name: sqkserver - build: - context: ../ - dockerfile: docker/sqkserver/Dockerfile - environment: - - RPCUSER - - RPCPASS - - NETWORK - - CHAIN - - DEBUG - - HEADLESS - volumes: - - shared_test:/rpc - - lnd_dir_server:/root/.lnd - links: - - "btcd:blockchain" - - "lnd_alice:lnd" - sysctls: - - net.ipv6.conf.all.disable_ipv6=0 - entrypoint: ["./start-sqkserver.sh"] - test: image: test container_name: test @@ -240,5 +243,5 @@ volumes: driver: local lnd_dir_carol: driver: local - lnd_dir_server: + lnd_dir_sqkserver: driver: local diff --git a/squeaknode/client/clientsqueaknode.py b/squeaknode/client/clientsqueaknode.py index 12bbcbbb..74d43ab2 100644 --- a/squeaknode/client/clientsqueaknode.py +++ b/squeaknode/client/clientsqueaknode.py @@ -37,7 +37,7 @@ class SqueakNodeClient(object): # Event is set when the client stops self.stopped = threading.Event() self.uploader = Uploader(self.hub_store, self.squeak_store, self.address) - self.rpc_client = RPCClient('fake_host', 1234) + self.rpc_client = RPCClient('sqkserver', 50051) def start(self): # TODO: start the uploader and the downloader. diff --git a/squeaknode/client/rpc_client.py b/squeaknode/client/rpc_client.py index f186d98e..37b4eec5 100644 --- a/squeaknode/client/rpc_client.py +++ b/squeaknode/client/rpc_client.py @@ -1,5 +1,10 @@ import logging +import grpc + +from squeaknode.common.rpc import squeak_server_pb2 +from squeaknode.common.rpc import squeak_server_pb2_grpc + from squeak.core.signing import CSigningKey from squeak.core.signing import CSqueakAddress @@ -30,3 +35,12 @@ class RPCClient(object): def upload_squeak(self, squeak): squeak_hash = squeak.GetHash() logger.info("Upload the squeak here.") + + # Make the rpc request to the server. + #channel = grpc.insecure_channel('localhost:50051') + # channel = grpc.insecure_channel('{}:{}'.format(self.host, self.port)) + channel = grpc.insecure_channel('sqkserver:50052') + stub = squeak_server_pb2_grpc.SqueakServerStub(channel) + response = stub.SayHello(squeak_server_pb2.HelloRequest(name='rpc_client')) + print("Greeter client received: " + response.message) + logger.info("Greeter client received: " + response.message) diff --git a/squeaknode/common/rpc/squeak_server_servicer.py b/squeaknode/common/rpc/squeak_server_servicer.py index e7d9f727..f81fd4ed 100644 --- a/squeaknode/common/rpc/squeak_server_servicer.py +++ b/squeaknode/common/rpc/squeak_server_servicer.py @@ -40,9 +40,13 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer): # ) def serve(self): + print('Calling serve...', flush=True) server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) - squeak_server_pb2_grpc.add_SqueakServicer_to_server( + squeak_server_pb2_grpc.add_SqueakServerServicer_to_server( self, server) - server.add_insecure_port('0.0.0.0:50051') + print("server.add_insecure_port...", flush=True) + server.add_insecure_port('0.0.0.0:50052') + print("Starting SqueakServerServicer rpc server...", flush=True) server.start() + print("Started SqueakServerServicer rpc server...", flush=True) server.wait_for_termination() diff --git a/squeaknode/server/main.py b/squeaknode/server/main.py index ae4102a7..3ebf3342 100644 --- a/squeaknode/server/main.py +++ b/squeaknode/server/main.py @@ -31,14 +31,16 @@ def load_lightning_client(config) -> LightningClient: def start_rpc_server(handler): + print('Calling start_rpc_server...', flush=True) server = SqueakServerServicer(handler) - thread = threading.Thread( - target=server.serve, - args=(), - ) - thread.daemon = True - thread.start() - return server, thread + # thread = threading.Thread( + # target=server.serve, + # args=(), + # ) + # thread.daemon = True + # thread.start() + # return server, thread + server.serve() def load_handler(lightning_client): @@ -83,6 +85,7 @@ def parse_args(): def main(): + print("Running main() in server...", flush=True) logging.basicConfig(level=logging.ERROR) args = parse_args() @@ -106,25 +109,28 @@ def main(): def run_server(config): - print('network:', config['DEFAULT']['network']) + print('network:', config['DEFAULT']['network'], flush=True) SelectParams(config['DEFAULT']['network']) - lightning_client = load_lightning_client(config) + print('starting lightning client here...', flush=True) + # lightning_client = load_lightning_client(config) # db_factory = load_db_factory(config) # node = load_client(blockchain_client, lightning_client, signing_key, db_factory) - handler = load_handler(lightning_client) + handler = load_handler(None) # start rpc server - rpc_server, rpc_server_thread = start_rpc_server(handler) + start_rpc_server(handler) + # rpc_server, rpc_server_thread = start_rpc_server(handler) + # print("rpc server started...", flush=True) - signal.signal(signal.SIGTERM, sigterm_handler) + # signal.signal(signal.SIGTERM, sigterm_handler) - print("Starting server...") - try: - while True: - time.sleep(1) - finally: - print("Shutting down...") + # print("sleeping....", flush=True) + # try: + # while True: + # time.sleep(1) + # finally: + # print("Shutting down...", flush=True) if __name__ == '__main__':