mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-15 12:50:47 +02:00
Fix endianness of hash in db
This commit is contained in:
parent
4c80d01e42
commit
964920bbbb
6 changed files with 44 additions and 34 deletions
|
|
@ -19,4 +19,4 @@ docker-compose run test ./test.sh
|
|||
|
||||
echo "Shutting down itest..."
|
||||
# docker-compose down --rmi all --volumes
|
||||
docker-compose down
|
||||
# docker-compose down
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ from lnd_lightning_client import LNDLightningClient
|
|||
|
||||
def build_squeak_msg(squeak):
|
||||
return squeak_server_pb2.Squeak(
|
||||
hash=squeak.GetHash(),
|
||||
hash=get_hash(squeak),
|
||||
serialized_squeak=squeak.serialize(),
|
||||
)
|
||||
|
||||
|
|
@ -74,6 +74,11 @@ def make_squeak(signing_key: CSigningKey, content: str, reply_to: bytes = b'\x00
|
|||
)
|
||||
|
||||
|
||||
def get_hash(squeak):
|
||||
""" Needs to be reversed because hash is stored as little-endian """
|
||||
return squeak.GetHash()[::-1]
|
||||
|
||||
|
||||
def load_lightning_client() -> LNDLightningClient:
|
||||
return LNDLightningClient(
|
||||
'lnd',
|
||||
|
|
@ -102,12 +107,6 @@ def run():
|
|||
# Make the stubs
|
||||
server_stub = squeak_server_pb2_grpc.SqueakServerStub(server_channel)
|
||||
|
||||
# # Make a direct request to the server
|
||||
# server_response = server_stub.GetSqueak(squeak_server_pb2.GetSqueakRequest(hash=squeak_resp.GetHash()))
|
||||
# print("Direct server response: " + str(server_response.squeak))
|
||||
# server_response_squeak = squeak_from_msg(server_response.squeak)
|
||||
# assert server_response_squeak.GetDecryptedContentStr() == 'hello squeak.'
|
||||
|
||||
# Post a squeak with a direct request to the server
|
||||
signing_key = generate_signing_key()
|
||||
squeak = make_squeak(signing_key, 'hello from itest!')
|
||||
|
|
@ -115,7 +114,7 @@ def run():
|
|||
squeak_msg = build_squeak_msg(squeak)
|
||||
post_response = server_stub.PostSqueak(squeak_server_pb2.PostSqueakRequest(squeak=squeak_msg))
|
||||
print("Direct server post response: " + str(post_response))
|
||||
assert post_response.hash == squeak.GetHash()
|
||||
assert post_response.hash == get_hash(squeak)
|
||||
|
||||
# Get the same squeak from the server
|
||||
get_response = server_stub.GetSqueak(squeak_server_pb2.GetSqueakRequest(hash=post_response.hash))
|
||||
|
|
@ -136,7 +135,7 @@ def run():
|
|||
max_block=99999999,
|
||||
))
|
||||
print("Lookup response: " + str(lookup_response))
|
||||
assert squeak.GetHash() in set(lookup_response.hashes)
|
||||
assert get_hash(squeak) in set(lookup_response.hashes)
|
||||
|
||||
# Lookup again without the relevant address
|
||||
another_signing_key = generate_signing_key()
|
||||
|
|
@ -150,7 +149,7 @@ def run():
|
|||
min_block=0,
|
||||
max_block=99999999,
|
||||
))
|
||||
assert squeak.GetHash() not in set(lookup_response.hashes)
|
||||
assert get_hash(squeak) not in set(lookup_response.hashes)
|
||||
|
||||
# Lookup again with a different block range
|
||||
signing_keys = [signing_key, other_signing_key]
|
||||
|
|
@ -163,7 +162,7 @@ def run():
|
|||
min_block=600,
|
||||
max_block=99999999,
|
||||
))
|
||||
assert squeak.GetHash() not in set(lookup_response.hashes)
|
||||
assert get_hash(squeak) not in set(lookup_response.hashes)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
|
||||
from squeak.core import CSqueak
|
||||
|
||||
from squeakserver.common.rpc import squeak_server_pb2
|
||||
from squeakserver.common.rpc import squeak_server_pb2_grpc
|
||||
|
||||
|
||||
def build_squeak_msg(squeak):
|
||||
return squeak_server_pb2.Squeak(
|
||||
hash=squeak.GetHash(),
|
||||
serialized_squeak=squeak.serialize(),
|
||||
)
|
||||
|
||||
|
||||
def squeak_from_msg(squeak_msg):
|
||||
return CSqueak.deserialize(squeak_msg.serialized_squeak)
|
||||
|
|
@ -39,7 +39,7 @@ class PostgresDb():
|
|||
with conn.cursor() as curs:
|
||||
# execute the INSERT statement
|
||||
curs.execute(sql, (
|
||||
squeak.GetHash().hex(),
|
||||
get_hash(squeak).hex(),
|
||||
squeak.nVersion,
|
||||
squeak.hashEncContent.hex(),
|
||||
squeak.hashReplySqk.hex(),
|
||||
|
|
@ -57,8 +57,8 @@ class PostgresDb():
|
|||
squeak.GetDecryptedContentStr(),
|
||||
))
|
||||
# get the generated hash back
|
||||
squeak_hash = curs.fetchone()[0]
|
||||
return squeak_hash
|
||||
row = curs.fetchone()
|
||||
return bytes.fromhex(row[0])
|
||||
|
||||
def get_squeak(self, squeak_hash):
|
||||
""" Get a squeak. """
|
||||
|
|
@ -113,3 +113,7 @@ class PostgresDb():
|
|||
for row in rows
|
||||
]
|
||||
return hashes
|
||||
|
||||
|
||||
def get_hash(squeak):
|
||||
return squeak.GetHash()[::-1]
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class SqueakServerHandler(object):
|
|||
inserted_squeak_hash = self.postgres_db.insert_squeak(squeak)
|
||||
logger.info("Inserted squeak and got back hash: " + str(inserted_squeak_hash))
|
||||
## Todo: return the squeak from the db.
|
||||
return squeak.GetHash()
|
||||
return inserted_squeak_hash
|
||||
|
||||
def handle_get_squeak(self, squeak_hash):
|
||||
logger.info("Handler get squeak by hash: " + str(squeak_hash))
|
||||
|
|
@ -54,3 +54,7 @@ class SqueakServerHandler(object):
|
|||
# class MissingSigningKeyError(ClientNodeError):
|
||||
# def __str__(self):
|
||||
# return 'Missing signing key.'
|
||||
|
||||
|
||||
def get_hash(squeak):
|
||||
return squeak.GetHash()[::-1]
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ from concurrent import futures
|
|||
|
||||
import grpc
|
||||
|
||||
from squeak.core import CSqueak
|
||||
|
||||
from squeakserver.common.rpc import squeak_server_pb2
|
||||
from squeakserver.common.rpc import squeak_server_pb2_grpc
|
||||
from squeakserver.common.rpc.util import squeak_from_msg
|
||||
from squeakserver.common.rpc.util import build_squeak_msg
|
||||
|
||||
|
||||
class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
|
||||
|
|
@ -74,3 +74,22 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
|
|||
server.start()
|
||||
print("Started SqueakServerServicer rpc server...", flush=True)
|
||||
server.wait_for_termination()
|
||||
|
||||
|
||||
def build_squeak_msg(squeak):
|
||||
return squeak_server_pb2.Squeak(
|
||||
hash=get_hash(squeak),
|
||||
serialized_squeak=squeak.serialize(),
|
||||
)
|
||||
|
||||
|
||||
def squeak_from_msg(squeak_msg):
|
||||
squeak_hash = squeak_msg.hash
|
||||
squeak = CSqueak.deserialize(squeak_msg.serialized_squeak)
|
||||
if get_hash(squeak) != squeak_hash:
|
||||
return None
|
||||
return squeak
|
||||
|
||||
|
||||
def get_hash(squeak):
|
||||
return squeak.GetHash()[::-1]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue