public void TestNewOrderer() { try { Orderer orderer = hfclient.NewOrderer("xx", "grpc://localhost:5005"); Assert.IsTrue(orderer != null); } catch (System.Exception e) { Assert.Fail($"Unexpected Exception {e.Message}"); } }
public UserManager() { keyStorePath = @"D:\Projetos\Hyperledger\fabcar\hfc-key-store\"; admin = SampleUser.Load("admin", keyStorePath); fabric_client = HFClient.Create(); var crypto = new Hyperledger.Fabric.SDK.Security.CryptoPrimitives(); crypto.Init(); crypto.Store.AddCertificate(admin.Enrollment.Cert); fabric_client.CryptoSuite = crypto; fabric_client.UserContext = admin; channel = fabric_client.NewChannel("mychannel"); var peer = fabric_client.NewPeer("p1", $"grpc://{Startup.HyperleaderServer}:7051"); channel.AddPeer(peer); var ordered = fabric_client.NewOrderer("o1", $"grpc://{Startup.HyperleaderServer}:7050"); channel.AddOrderer(ordered); channel.Initialize(); fabric_ca_client = new Hyperledger.Fabric_CA.SDK.HFCAClient("", $"http://{Startup.HyperleaderServer}:7054", new Hyperledger.Fabric.SDK.Helper.Properties()); fabric_ca_client.CryptoSuite = crypto; }
/** * Just for testing remove all peers and orderers and add them back. * * @param client * @param channel */ public static void TestRemovingAddingPeersOrderers(HFClient client, Channel channel) { Dictionary <Peer, PeerOptions> perm = new Dictionary <Peer, PeerOptions>(); Assert.IsTrue(channel.IsInitialized); Assert.IsFalse(channel.IsShutdown); Thread.Sleep(1500); // time needed let channel get config block channel.Peers.ToList().ForEach(peer => { perm[peer] = channel.GetPeersOptions(peer); channel.RemovePeer(peer); }); perm.Keys.ToList().ForEach(peer => { PeerOptions value = perm[peer]; Peer newPeer = client.NewPeer(peer.Name, peer.Url, peer.Properties); channel.AddPeer(newPeer, value); }); List <Orderer> removedOrders = new List <Orderer>(); foreach (Orderer orderer in channel.Orderers.ToList()) { channel.RemoveOrderer(orderer); removedOrders.Add(orderer); } removedOrders.ForEach(orderer => { Orderer newOrderer = client.NewOrderer(orderer.Name, orderer.Url, orderer.Properties); channel.AddOrderer(newOrderer); }); }
public static void SetupClient(TestContext context) { try { hfclient = TestHFClient.Create(); shutdownChannel = new Channel("shutdown", hfclient); shutdownChannel.AddOrderer(hfclient.NewOrderer("shutdow_orderer", "grpc://localhost:99")); shutdownChannel.IsShutdown = true; throwOrderer = new ThrowOrderer("foo", "grpc://localhost:8", null); throwChannel = new Channel("throw", hfclient); throwChannel.AddOrderer(throwOrderer); } catch (System.Exception e) { Assert.Fail($"Unexpected Exception {e.Message}"); } }
public Task <Orderer> AddAsync(Properties config, CancellationToken token = default(CancellationToken)) { Properties properties = new Properties(); string protocol = this.FindClientProp(config, "protocol", "grpcs:"); string clientCertFile = this.FindClientProp(config, "clientCertFile", null); if (null != clientCertFile) { properties.Set("clientCertFile", clientCertFile); } string clientKeyFile = this.FindClientProp(config, "clientKeyFile", null); if (null != clientKeyFile) { properties.Set("clientKeyFile", clientKeyFile); } string clientCertBytes = this.FindClientProp(config, "clientCertBytes", null); if (null != clientCertBytes) { properties.Set("clientCertBytes", clientCertBytes); } string clientKeyBytes = this.FindClientProp(config, "clientKeyBytes", null); if (null != clientKeyBytes) { properties.Set("clientKeyBytes", clientKeyBytes); } string hostnameOverride = this.FindClientProp(config, "hostnameOverride", null); if (null != hostnameOverride) { properties.Set("hostnameOverride", hostnameOverride); } byte[] pemBytes = this.GetAllTLSCerts(); if (pemBytes?.Length > 0) { properties.Set("pemBytes", pemBytes); } Orderer orderer = Client.NewOrderer(Endpoint, protocol + "//" + Endpoint, properties); Channel.AddOrderer(orderer); return(Task.FromResult(orderer)); }
public FabCar(string username) { var user = SampleUser.Load(username, @"D:\Projetos\Hyperledger\fabcar\hfc-key-store\"); client = Hyperledger.Fabric.SDK.HFClient.Create(); var crypto = new Hyperledger.Fabric.SDK.Security.CryptoPrimitives(); crypto.Store.AddCertificate(user.Enrollment.Cert); crypto.Init(); client.CryptoSuite = crypto; client.UserContext = user; channel = client.NewChannel("mychannel"); var peer = client.NewPeer("p1", $"grpc://{Program.ServerIP}:7051"); channel.AddPeer(peer); var ordered = client.NewOrderer("o1", $"grpc://{Program.ServerIP}:7050"); channel.AddOrderer(ordered); channel.Initialize(); }
private Channel ReconstructChannel(string name, HFClient client, SampleOrg sampleOrg) { Util.COut("Reconstructing {0} channel", name); client.UserContext = sampleOrg.GetUser(TESTUSER_1_NAME); Channel newChannel; if (BAR_CHANNEL_NAME.Equals(name)) { // bar channel was stored in samplestore in End2endIT testcase. /** * sampleStore.getChannel uses {@link HFClient#deSerializeChannel(byte[])} */ newChannel = sampleStore.GetChannel(client, name); if (!IS_FABRIC_V10) { // Make sure there is one of each type peer at the very least. see End2end for how peers were constructed. Assert.IsFalse(newChannel.GetPeers(new[] { PeerRole.EVENT_SOURCE }).Count == 0); Assert.IsFalse(newChannel.GetPeers(new[] { PeerRole.EVENT_SOURCE }).Count == 0); } Assert.AreEqual(testConfig.IsFabricVersionAtOrAfter("1.3") ? 0 : 2, newChannel.EventHubs.Count); Util.COut("Retrieved channel {0} from sample store.", name); } else { newChannel = client.NewChannel(name); foreach (string ordererName in sampleOrg.GetOrdererNames()) { newChannel.AddOrderer(client.NewOrderer(ordererName, sampleOrg.GetOrdererLocation(ordererName), testConfig.GetOrdererProperties(ordererName))); } bool everyOther = false; foreach (string peerName in sampleOrg.GetPeerNames()) { string peerLocation = sampleOrg.GetPeerLocation(peerName); Properties peerProperties = testConfig.GetPeerProperties(peerName); Peer peer = client.NewPeer(peerName, peerLocation, peerProperties); PeerOptions peerEventingOptions = // we have two peers on one use block on other use filtered everyOther ? PeerOptions.CreatePeerOptions().RegisterEventsForBlocks().SetPeerRoles(PeerRole.ENDORSING_PEER, PeerRole.LEDGER_QUERY, PeerRole.CHAINCODE_QUERY, PeerRole.EVENT_SOURCE) : PeerOptions.CreatePeerOptions().RegisterEventsForFilteredBlocks().SetPeerRoles(PeerRole.ENDORSING_PEER, PeerRole.LEDGER_QUERY, PeerRole.CHAINCODE_QUERY, PeerRole.EVENT_SOURCE); newChannel.AddPeer(peer, IS_FABRIC_V10 ? PeerOptions.CreatePeerOptions().SetPeerRoles(PeerRole.ENDORSING_PEER, PeerRole.LEDGER_QUERY, PeerRole.CHAINCODE_QUERY) : peerEventingOptions); everyOther = !everyOther; } //For testing mix it up. For v1.1 use just peer eventing service for foo channel. if (IS_FABRIC_V10) { //Should have no peers with event sources. Assert.IsTrue(newChannel.GetPeers(new[] { PeerRole.EVENT_SOURCE }).Count == 0); //Should have two peers with all roles but event source. Assert.AreEqual(2, newChannel.Peers.Count); foreach (string eventHubName in sampleOrg.GetEventHubNames()) { EventHub eventHub = client.NewEventHub(eventHubName, sampleOrg.GetEventHubLocation(eventHubName), testConfig.GetEventHubProperties(eventHubName)); newChannel.AddEventHub(eventHub); } } else { //Peers should have all roles. Do some sanity checks that they do. //Should have two peers with event sources. Assert.AreEqual(2, newChannel.GetPeers(new[] { PeerRole.EVENT_SOURCE }).Count); //Check some other roles too.. Assert.AreEqual(2, newChannel.GetPeers(new[] { PeerRole.CHAINCODE_QUERY, PeerRole.LEDGER_QUERY }).Count); Assert.AreEqual(2, newChannel.GetPeers(PeerRoleExtensions.All()).Count); //really same as newChannel.getPeers() } Assert.AreEqual(IS_FABRIC_V10 ? sampleOrg.GetEventHubNames().Count : 0, newChannel.EventHubs.Count); } //Just some sanity check tests Assert.IsTrue(newChannel == client.GetChannel(name)); Assert.IsTrue(client == newChannel.client); Assert.AreEqual(name, newChannel.Name); Assert.AreEqual(2, newChannel.Peers.Count); Assert.AreEqual(1, newChannel.Orderers.Count); Assert.IsFalse(newChannel.IsShutdown); Assert.IsFalse(newChannel.IsInitialized); string serializedChannelBytes = newChannel.Serialize(); //Just checks if channel can be serialized and deserialized .. otherwise this is just a waste :) // Get channel back. newChannel.Shutdown(true); newChannel = client.DeSerializeChannel(serializedChannelBytes); Assert.AreEqual(2, newChannel.Peers.Count); Assert.AreEqual(1, newChannel.Orderers.Count); Assert.IsNotNull(client.GetChannel(name)); Assert.AreEqual(newChannel, client.GetChannel(name)); Assert.IsFalse(newChannel.IsInitialized); Assert.IsFalse(newChannel.IsShutdown); Assert.AreEqual(TESTUSER_1_NAME, client.UserContext.Name); newChannel.Initialize(); Assert.IsTrue(newChannel.IsInitialized); Assert.IsFalse(newChannel.IsShutdown); //Begin tests with de-serialized channel. //Query the actual peer for which channels it belongs to and check it belongs to this channel foreach (Peer peer in newChannel.Peers) { HashSet <string> channels = client.QueryChannels(peer); if (!channels.Contains(name)) { Assert.Fail($"Peer {peer.Name} does not appear to belong to channel {name}"); } } //Just see if we can get channelConfiguration. Not required for the rest of scenario but should work. byte[] channelConfigurationBytes = newChannel.GetChannelConfigurationBytes(); Config channelConfig = Config.Parser.ParseFrom(channelConfigurationBytes); Assert.IsNotNull(channelConfig); ConfigGroup channelGroup = channelConfig.ChannelGroup; Assert.IsNotNull(channelGroup); Dictionary <string, ConfigGroup> groupsMap = channelGroup.Groups.ToDictionary(a => a.Key, a => a.Value); Assert.IsNotNull(groupsMap.GetOrNull("Orderer")); Assert.IsNotNull(groupsMap.GetOrNull("Application")); //Before return lets see if we have the chaincode on the peers that we expect from End2endIT //And if they were instantiated too. this requires peer admin user client.UserContext = sampleOrg.PeerAdmin; foreach (Peer peer in newChannel.Peers) { if (!CheckInstalledChaincode(client, peer, CHAIN_CODE_NAME, CHAIN_CODE_PATH, CHAIN_CODE_VERSION)) { Assert.Fail($"Peer {peer.Name} is missing chaincode name: {CHAIN_CODE_NAME}, path:{CHAIN_CODE_PATH}, version: {CHAIN_CODE_VERSION}"); } if (!CheckInstantiatedChaincode(newChannel, peer, CHAIN_CODE_NAME, CHAIN_CODE_PATH, CHAIN_CODE_VERSION)) { Assert.Fail($"Peer {peer.Name} is missing instantiated chaincode name: {CHAIN_CODE_NAME}, path:{CHAIN_CODE_PATH}, version: {CHAIN_CODE_VERSION}"); } } client.UserContext = sampleOrg.GetUser(TESTUSER_1_NAME); Assert.IsTrue(newChannel.IsInitialized); Assert.IsFalse(newChannel.IsShutdown); Util.COut("Finished reconstructing channel {0}.", name); return(newChannel); }
public void TestBadAddress() { orderer = hfclient.NewOrderer("badorderer", "xxxxxx"); Assert.Fail("Orderer did not allow setting bad URL."); }
public void SetupClient() { hfclient = TestHFClient.Create(); orderer = hfclient.NewOrderer(ORDERER_NAME, "grpc://localhost:5151"); }