-
Notifications
You must be signed in to change notification settings - Fork 8.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FAB-1566] Hook ingress policy into standard path
https://jira.hyperledger.org/browse/FAB-1566 This changeset concludes the changeset series which brings filtering incoming broadcasts by policy. Presently, the provisional bootstrapper defaults the ingress policy to AcceptAll, but, this can be changed in the future once actual signature validation works. While attempting to bring the bdd genesis block creation into parity with this change, a few extraneous bugs were discovered and fixed in the bdd bootstrap util. Change-Id: I2f61308350a77991b50c8478c708563d70674fb8 Signed-off-by: Jason Yellick <jyellick@us.ibm.com>
- Loading branch information
Jason Yellick
committed
Jan 11, 2017
1 parent
e187a93
commit 149ae0d
Showing
15 changed files
with
701 additions
and
163 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
import grpc | ||
from grpc.framework.common import cardinality | ||
from grpc.framework.interfaces.face import utilities as face_utilities | ||
|
||
import common.common_pb2 as common_dot_common__pb2 | ||
import orderer.ab_pb2 as orderer_dot_ab__pb2 | ||
import orderer.ab_pb2 as orderer_dot_ab__pb2 | ||
import orderer.ab_pb2 as orderer_dot_ab__pb2 | ||
|
||
|
||
class AtomicBroadcastStub(object): | ||
|
||
def __init__(self, channel): | ||
"""Constructor. | ||
Args: | ||
channel: A grpc.Channel. | ||
""" | ||
self.Broadcast = channel.stream_stream( | ||
'/orderer.AtomicBroadcast/Broadcast', | ||
request_serializer=common_dot_common__pb2.Envelope.SerializeToString, | ||
response_deserializer=orderer_dot_ab__pb2.BroadcastResponse.FromString, | ||
) | ||
self.Deliver = channel.stream_stream( | ||
'/orderer.AtomicBroadcast/Deliver', | ||
request_serializer=orderer_dot_ab__pb2.SeekInfo.SerializeToString, | ||
response_deserializer=orderer_dot_ab__pb2.DeliverResponse.FromString, | ||
) | ||
|
||
|
||
class AtomicBroadcastServicer(object): | ||
|
||
def Broadcast(self, request_iterator, context): | ||
"""broadcast receives a reply of Acknowledgement for each common.Envelope in order, indicating success or type of failure | ||
""" | ||
context.set_code(grpc.StatusCode.UNIMPLEMENTED) | ||
context.set_details('Method not implemented!') | ||
raise NotImplementedError('Method not implemented!') | ||
|
||
def Deliver(self, request_iterator, context): | ||
"""deliver first requires an update containing a seek message, then a stream of block replies is received. | ||
""" | ||
context.set_code(grpc.StatusCode.UNIMPLEMENTED) | ||
context.set_details('Method not implemented!') | ||
raise NotImplementedError('Method not implemented!') | ||
|
||
|
||
def add_AtomicBroadcastServicer_to_server(servicer, server): | ||
rpc_method_handlers = { | ||
'Broadcast': grpc.stream_stream_rpc_method_handler( | ||
servicer.Broadcast, | ||
request_deserializer=common_dot_common__pb2.Envelope.FromString, | ||
response_serializer=orderer_dot_ab__pb2.BroadcastResponse.SerializeToString, | ||
), | ||
'Deliver': grpc.stream_stream_rpc_method_handler( | ||
servicer.Deliver, | ||
request_deserializer=orderer_dot_ab__pb2.SeekInfo.FromString, | ||
response_serializer=orderer_dot_ab__pb2.DeliverResponse.SerializeToString, | ||
), | ||
} | ||
generic_handler = grpc.method_handlers_generic_handler( | ||
'orderer.AtomicBroadcast', rpc_method_handlers) | ||
server.add_generic_rpc_handlers((generic_handler,)) |
Oops, something went wrong.