Skip to content

Commit

Permalink
[FAB-1566] Hook ingress policy into standard path
Browse files Browse the repository at this point in the history
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
Show file tree
Hide file tree
Showing 15 changed files with 701 additions and 163 deletions.
257 changes: 141 additions & 116 deletions bddtests/orderer/ab_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

63 changes: 63 additions & 0 deletions bddtests/orderer/ab_pb2_grpc.py
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,))
Loading

0 comments on commit 149ae0d

Please sign in to comment.