Rename get post squeak rpc methods (#659)

* Rename download squeak rpc method

* Fix name of upload squeak rpc method

* Rename download squeak rpc method

* Rename download offer peer rpc method

* Fix comments in peer rpc server proto

* Rename methods in peer client.
This commit is contained in:
Jonathan Zernik 2021-01-14 21:32:55 -08:00 committed by GitHub
parent 1d4baaa5fa
commit 4ad3232325
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 65 additions and 64 deletions

View file

@ -71,16 +71,17 @@ def test_post_squeak(server_stub, admin_stub, lightning_client, following_signin
squeak_hash = get_hash(squeak)
squeak_msg = build_squeak_msg(squeak)
server_stub.PostSqueak(
squeak_server_pb2.PostSqueakRequest(squeak=squeak_msg)
server_stub.UploadSqueak(
squeak_server_pb2.UploadSqueakRequest(squeak=squeak_msg)
)
# Wait a few seconds for the squeak to be verified on the server.
time.sleep(1)
# Get the same squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=bytes.fromhex(squeak_hash))
get_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -99,8 +100,8 @@ def test_post_squeak_not_following(
squeak_msg = build_squeak_msg(squeak)
with pytest.raises(Exception):
server_stub.PostSqueak(
squeak_server_pb2.PostSqueakRequest(squeak=squeak_msg))
server_stub.UploadSqueak(
squeak_server_pb2.UploadSqueakRequest(squeak=squeak_msg))
def test_lookup_squeaks(server_stub, admin_stub, signing_profile_id, saved_squeak_hash):
@ -190,16 +191,16 @@ def test_sell_squeak(server_stub, admin_stub, lightning_client, saved_squeak_has
initial_server_balance = get_balance_response.total_balance
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
get_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
buy_response = server_stub.DownloadOffer(
squeak_server_pb2.DownloadOfferRequest(
hash=bytes.fromhex(saved_squeak_hash),
)
)
@ -257,8 +258,8 @@ def test_make_squeak(server_stub, admin_stub, signing_profile_id):
assert len(make_squeak_hash) == 32 * 2
# Get the new squeak from the server
get_squeak_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
get_squeak_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(make_squeak_hash))
)
get_squeak_response_squeak = squeak_from_msg(get_squeak_response.squeak)
@ -354,8 +355,8 @@ def test_post_squeak_rate_limit(server_stub, admin_stub, lightning_client, nonfo
block_height,
)
squeak_msg = build_squeak_msg(squeak)
server_stub.PostSqueak(
squeak_server_pb2.PostSqueakRequest(squeak=squeak_msg)
server_stub.UploadSqueak(
squeak_server_pb2.UploadSqueakRequest(squeak=squeak_msg)
)
except Exception as e:
post_squeak_exception = e
@ -531,8 +532,8 @@ def test_delete_squeak(server_stub, admin_stub, saved_squeak_hash):
# Try to get the squeak and fail
with pytest.raises(Exception) as excinfo:
server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
assert "Squeak not found." in str(excinfo.value)
@ -637,16 +638,16 @@ def test_delete_peer(server_stub, admin_stub, peer_id):
def test_list_channels(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
get_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
buy_response = server_stub.DownloadOffer(
squeak_server_pb2.DownloadOfferRequest(
hash=bytes.fromhex(saved_squeak_hash),
)
)
@ -699,16 +700,16 @@ def test_send_coins(server_stub, admin_stub, lightning_client):
def test_list_peers(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
get_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
buy_response = server_stub.DownloadOffer(
squeak_server_pb2.DownloadOfferRequest(
hash=bytes.fromhex(saved_squeak_hash),
)
)
@ -751,16 +752,16 @@ def test_list_peers(server_stub, admin_stub, lightning_client, saved_squeak_hash
def test_open_channel(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
get_response = server_stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
buy_response = server_stub.DownloadOffer(
squeak_server_pb2.DownloadOfferRequest(
hash=bytes.fromhex(saved_squeak_hash),
)
)

View file

@ -10,13 +10,13 @@ package squeaknode;
// Interface exported by the server.
service SqueakServer {
/** sqk: `postsqueak`
/** sqk: `uploadsqueak`
*/
rpc PostSqueak (PostSqueakRequest) returns (PostSqueakReply) {}
rpc UploadSqueak (UploadSqueakRequest) returns (UploadSqueakReply) {}
/** sqk: `getsqueak`
/** sqk: `downloadsqueak`
*/
rpc GetSqueak (GetSqueakRequest) returns (GetSqueakReply) {}
rpc DownloadSqueak (DownloadSqueakRequest) returns (DownloadSqueakReply) {}
/** sqk: `lookupsqueakstodownload`
*/
@ -26,18 +26,18 @@ service SqueakServer {
*/
rpc LookupSqueaksToUpload (LookupSqueaksToUploadRequest) returns (LookupSqueaksToUploadReply) {}
/** sqk: `getoffer`
/** sqk: `downloadoffer`
*/
rpc GetOffer (GetOfferRequest) returns (GetOfferReply) {}
rpc DownloadOffer (DownloadOfferRequest) returns (DownloadOfferReply) {}
}
message PostSqueakRequest {
message UploadSqueakRequest {
/// Content of the squeak to be made.
Squeak squeak = 1;
}
message GetSqueakRequest {
message DownloadSqueakRequest {
/// Hash of the squeak to get.
bytes hash = 1;
}
@ -56,15 +56,15 @@ message LookupSqueaksToUploadRequest {
repeated string addresses = 1;
}
message GetOfferRequest {
message DownloadOfferRequest {
/// Hash of the squeak to buy.
bytes hash = 1;
}
message PostSqueakReply {
message UploadSqueakReply {
}
message GetSqueakReply {
message DownloadSqueakReply {
/// The squeak.
Squeak squeak = 1;
}
@ -85,7 +85,7 @@ message LookupSqueaksToUploadReply {
int32 max_block = 4;
}
message GetOfferReply {
message DownloadOfferReply {
/// The offer
Offer offer = 1;
}

View file

@ -45,17 +45,17 @@ class PeerClient:
)
return lookup_response
def post_squeak(self, squeak: CSqueak):
def upload_squeak(self, squeak: CSqueak):
squeak_msg = self._build_squeak_msg(squeak)
self.stub.PostSqueak(
squeak_server_pb2.PostSqueakRequest(
self.stub.UploadSqueak(
squeak_server_pb2.UploadSqueakRequest(
squeak=squeak_msg,
)
)
def get_squeak(self, squeak_hash: bytes):
get_response = self.stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
def download_squeak(self, squeak_hash: bytes):
get_response = self.stub.DownloadSqueak(
squeak_server_pb2.DownloadSqueakRequest(
hash=squeak_hash,
)
)
@ -63,13 +63,13 @@ class PeerClient:
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
return get_response_squeak
def get_offer(self, squeak_hash: bytes):
get_offer_response = self.stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
def download_offer(self, squeak_hash: bytes):
download_offer_response = self.stub.DownloadOffer(
squeak_server_pb2.DownloadOfferRequest(
hash=squeak_hash,
)
)
offer_msg = get_offer_response.offer
offer_msg = download_offer_response.offer
return offer_msg
def _build_squeak_msg(self, squeak: CSqueak):

View file

@ -20,7 +20,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
self.port = port
self.handler = handler
def PostSqueak(self, request, context):
def UploadSqueak(self, request, context):
squeak_msg = request.squeak
squeak_hash = squeak_msg.hash
@ -28,23 +28,23 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
# Check is squeak deserialized correctly
if squeak is None:
context.set_code(grpc.StatusCode.INVALID_ARGUMENT)
return squeak_server_pb2.PostSqueakReply()
return squeak_server_pb2.UploadSqueakReply()
# Check if squeak hash is correct
if get_hash(squeak) != squeak_hash:
context.set_code(grpc.StatusCode.INVALID_ARGUMENT)
return squeak_server_pb2.PostSqueakReply()
return squeak_server_pb2.UploadSqueakReply()
# Check if squeak is unlocked
if not squeak.HasDecryptionKey():
context.set_code(grpc.StatusCode.INVALID_ARGUMENT)
return squeak_server_pb2.PostSqueakReply()
return squeak_server_pb2.UploadSqueakReply()
# Insert the squeak in database.
self.handler.handle_posted_squeak(squeak)
return squeak_server_pb2.PostSqueakReply()
return squeak_server_pb2.UploadSqueakReply()
def GetSqueak(self, request: squeak_server_pb2.GetSqueakRequest, context):
def DownloadSqueak(self, request: squeak_server_pb2.DownloadSqueakRequest, context):
squeak_hash = request.hash
# TODO: check if hash is valid
@ -52,11 +52,11 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
if squeak is None:
context.set_code(grpc.StatusCode.NOT_FOUND)
context.set_details("Squeak not found.")
return squeak_server_pb2.GetSqueakReply(
return squeak_server_pb2.DownloadSqueakReply(
squeak=None,
)
return squeak_server_pb2.GetSqueakReply(
return squeak_server_pb2.DownloadSqueakReply(
squeak=squeak_server_pb2.Squeak(
hash=get_hash(squeak),
serialized_squeak=squeak.serialize(),
@ -69,7 +69,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
def LookupSqueaksToUpload(self, request, context):
return self.handler.handle_lookup_squeaks_to_upload(request)
def GetOffer(self, request, context):
def DownloadOffer(self, request, context):
squeak_hash = request.hash
# TODO: check if hash is valid
client_addr = context.peer()
@ -80,13 +80,13 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
if buy_response is None:
context.set_code(grpc.StatusCode.NOT_FOUND)
context.set_details("Offer not found.")
return squeak_server_pb2.GetOfferReply(
return squeak_server_pb2.DownloadOfferReply(
offer=None,
)
logger.info("Sending buy offer: {}".format(buy_response))
return squeak_server_pb2.GetOfferReply(
return squeak_server_pb2.DownloadOfferReply(
offer=squeak_server_pb2.Offer(
squeak_hash=buy_response.squeak_hash,
nonce=buy_response.nonce,

View file

@ -125,7 +125,7 @@ class PeerSyncController:
return offer_with_peer
def _download_squeak(self, squeak_hash: bytes):
squeak = self.peer_client.get_squeak(squeak_hash)
squeak = self.peer_client.download_squeak(squeak_hash)
self.squeak_controller.save_downloaded_squeak(squeak)
logger.info("Downloaded squeak {} from peer {}".format(
squeak_hash.hex(), self.peer
@ -133,7 +133,7 @@ class PeerSyncController:
def _download_offer(self, squeak_hash: bytes):
squeak = self.squeak_controller.get_squeak(squeak_hash)
offer_msg = self.peer_client.get_offer(squeak_hash)
offer_msg = self.peer_client.download_offer(squeak_hash)
buy_offer = parse_buy_offer(offer_msg)
decoded_offer = self.squeak_controller.get_offer(
squeak, buy_offer, self.peer)
@ -144,7 +144,7 @@ class PeerSyncController:
def _upload_squeak(self, squeak_hash: bytes):
squeak = self.squeak_controller.get_squeak(squeak_hash)
self.peer_client.post_squeak(squeak)
self.peer_client.upload_squeak(squeak)
logger.info("Uploaded squeak {} to peer {}".format(
squeak_hash.hex(), self.peer
))