mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-17 13:07:32 +02:00
Successfully post squeak to server
This commit is contained in:
parent
79b078b44b
commit
51ec9c160e
5 changed files with 45 additions and 55 deletions
|
|
@ -4,6 +4,7 @@ import grpc
|
|||
|
||||
from squeaknode.common.rpc import squeak_server_pb2
|
||||
from squeaknode.common.rpc import squeak_server_pb2_grpc
|
||||
from squeaknode.common.rpc.util import build_squeak_msg
|
||||
|
||||
from squeak.core.signing import CSigningKey
|
||||
from squeak.core.signing import CSqueakAddress
|
||||
|
|
@ -43,5 +44,10 @@ class RPCClient(object):
|
|||
# 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)
|
||||
|
||||
logger.info("Building squeak msg with squeak: " + str(squeak))
|
||||
squeak_msg = build_squeak_msg(squeak)
|
||||
logger.info("Building squeak msg with squeak_msg: " + str(squeak_msg))
|
||||
response2 = stub.PostSqueak(squeak_server_pb2.PostSqueakRequest(squeak=squeak_msg))
|
||||
logger.info("Post squeak client received: " + str(response2.hash))
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ service SqueakServer {
|
|||
// Sends a greeting
|
||||
rpc SayHello (HelloRequest) returns (HelloReply) {}
|
||||
|
||||
// /** sqk: `postsqueak`
|
||||
// */
|
||||
// rpc Postsqueak (PostsqueakRequest) returns (PostsqueakResponse) {}
|
||||
/** sqk: `postsqueak`
|
||||
*/
|
||||
rpc PostSqueak (PostSqueakRequest) returns (PostSqueakReply) {}
|
||||
|
||||
// /** sqk: `getsqueak`
|
||||
// */
|
||||
|
|
@ -47,9 +47,9 @@ message HelloReply {
|
|||
string message = 1;
|
||||
}
|
||||
|
||||
message PostsqueakRequest {
|
||||
message PostSqueakRequest {
|
||||
/// Content of the squeak to be made.
|
||||
string content = 1;
|
||||
Squeak squeak = 1;
|
||||
}
|
||||
|
||||
message GetSqueakRequest {
|
||||
|
|
@ -57,9 +57,9 @@ message GetSqueakRequest {
|
|||
bytes hash = 1;
|
||||
}
|
||||
|
||||
message PostsqueakResponse {
|
||||
message PostSqueakReply {
|
||||
/// The squeak.
|
||||
Squeak squeak = 1;
|
||||
bytes hash = 1;
|
||||
}
|
||||
|
||||
message GetSqueakResponse {
|
||||
|
|
@ -67,55 +67,10 @@ message GetSqueakResponse {
|
|||
Squeak squeak = 1;
|
||||
}
|
||||
|
||||
message Addr {
|
||||
string host = 1;
|
||||
|
||||
uint64 port = 2;
|
||||
}
|
||||
|
||||
message Squeak {
|
||||
/// Hash of the squeak.
|
||||
bytes hash = 1;
|
||||
|
||||
/// Protocol version
|
||||
uint64 n_version = 2;
|
||||
|
||||
/// Hash of the squeak to which it replies.
|
||||
bytes hash_reply_squeak = 3;
|
||||
|
||||
/// Hash of the bitcoin block.
|
||||
bytes hash_block = 4;
|
||||
|
||||
/// Block height of the squeak.
|
||||
uint64 block_height = 5;
|
||||
|
||||
/// Public key script
|
||||
bytes script_pub_key = 6;
|
||||
|
||||
/// Hash of the data key
|
||||
bytes hash_data_key = 7;
|
||||
|
||||
/// Initialization vector
|
||||
bytes iv = 8;
|
||||
|
||||
/// Timestamp of the squeak.
|
||||
uint64 n_time = 9;
|
||||
|
||||
/// Nonce
|
||||
uint64 nonce = 10;
|
||||
|
||||
/// Encrypted content
|
||||
bytes enc_content = 11;
|
||||
|
||||
/// Signatute script
|
||||
bytes script_sig = 12;
|
||||
|
||||
/// Data key
|
||||
bytes data_key = 13;
|
||||
|
||||
/// Address of the creator.
|
||||
string address = 14;
|
||||
|
||||
/// Decrypted content of the squeak.
|
||||
string content = 15;
|
||||
/// Serialized squeak.
|
||||
bytes serialized_squeak = 2;
|
||||
}
|
||||
|
|
|
|||
16
squeaknode/common/rpc/util.py
Normal file
16
squeaknode/common/rpc/util.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
from squeak.core import CSqueak
|
||||
|
||||
from squeaknode.common.rpc import squeak_server_pb2
|
||||
from squeaknode.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)
|
||||
|
|
@ -29,6 +29,10 @@ class SqueakServerHandler(object):
|
|||
def say_hello(self):
|
||||
return 'hello from the handler'
|
||||
|
||||
def handle_posted_squeak(self, squeak):
|
||||
logger.info("Handler got posted squeak: " + str(squeak))
|
||||
return squeak.GetHash()
|
||||
|
||||
|
||||
# class ClientNodeError(Exception):
|
||||
# pass
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import grpc
|
|||
|
||||
from squeaknode.common.rpc import squeak_server_pb2
|
||||
from squeaknode.common.rpc import squeak_server_pb2_grpc
|
||||
from squeaknode.common.rpc.util import squeak_from_msg
|
||||
|
||||
|
||||
class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
|
||||
|
|
@ -41,6 +42,14 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
|
|||
# unconfirmed_balance=response.unconfirmed_balance,
|
||||
# )
|
||||
|
||||
def PostSqueak(self, request, context):
|
||||
squeak_msg = request.squeak
|
||||
squeak = squeak_from_msg(squeak_msg)
|
||||
squeak_hash = self.handler.handle_posted_squeak(squeak)
|
||||
return squeak_server_pb2.PostSqueakReply(
|
||||
hash=squeak_hash,
|
||||
)
|
||||
|
||||
def serve(self):
|
||||
print('Calling serve...', flush=True)
|
||||
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue