def processor_trans_read(self, content): result = self.server.transpool.read_serialized() if len(result) > 0: _ = send_handler(MsgType.TYPE_RESPONSE_OK, batch_handler(result)) else: _ = send_handler(MsgType.TYPE_RESPONSE_ERROR, b'') self.request.sendall(_)
def processor_block_read(self, content): start = bin2int(content[:4]) end = bin2int(content[4:8]) # do the search result = [] for i in range(start, end): # if start <= server.blockchain.chain.queue[i].index <= end: result.append(self.server.blockchain.chain.queue[i].b) # send back result self.request.sendall(send_handler(MsgType.TYPE_RESPONSE_OK, batch_handler(result)))
def put_miner_use(self, usage, useful) -> List: with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s: s.connect(self.chainbase_address) s.sendall( send_handler( MsgType.TYPE_MINER_USE, batch_handler( [struct.pack('=d', usage), struct.pack('=d', useful)]))) *_, msgtype, content = recv_parser(s) result = batch_parser(content) return result
def get_miner_credit(self, public_key_hash, num) -> List: with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as s: s.connect(self.chainbase_address) p = time.time() * 100000000 print(struct.pack('=d', p)) s.sendall( send_handler( MsgType.TYPE_MINER_CREDIT, batch_handler([ public_key_hash, struct.pack('=d', num), struct.pack('=d', p) ]))) *_, msgtype, content = recv_parser(s) result = batch_parser(content) return result