我已经设置了一个HyperLedger Fabric V1.0网络,其中有4个组织,每个组织有1个对等体,通过以下步骤构建您的第一个网络。
现在我有
现在我可以将链码安装到对等点,并在通道上实例化链码。我还可以通过使用这里提到的命令来调用和查询链代码,比如
invoke:
对等链码invoke-o orderer.example.com:7050--tls$core_peer_tls_enabled--cafile/opt/goPath/src/github.com/hyperledger/fabric/peer/crypto/ordererorganizations/example.com/orderers/ordererorganizations/msp/Tlscacerts/tlsca.example.com-cert.pem-c$channel_name-n mycc-c'{“args”:[“invoke”,“a”,“
查询:
对等链码查询-C$channel_name-n mycc-c'{“args”:[“query”,“a”]}‘
我以前使用的是IBM Bluemix提供的Hyperledger Fabric V0.6服务,我的Java应用程序通过Rest API调用链代码。
我如何在这个使用docker映像的本地网络设置中使用这里的Rest API,那么我的Java应用程序就可以与我的链码交互了。
由于我不太熟悉此本地网络设置,请建议我如何使其工作。
注意:
我使用的是Windows7计算机,网络是通过运行docker quick start terminal中的命令来设置的
事先谢谢..
Hyperledger Fabric V.1.0.0中没有REST API,但是有Java SDK可以用来与对等体交互。您可以使用以下maven依赖项来设置您的Java项目:
<dependency>
<groupId>org.hyperledger.fabric-sdk-java</groupId>
<artifactId>fabric-sdk-java</artifactId>
<version>1.0.0</version>
</dependency>
现在您可以使用SDKAPI来调用/查询链码:
获取HF客户端实例
final HFClient client = HFClient.createNewInstance();
为客户端设置加密材料
// Set default crypto suite for HF client
client.setCryptoSuite(CryptoSuite.Factory.getCryptoSuite());
client.setUserContext(new User() {
public String getName() {
return "testUser";
}
public Set<String> getRoles() {
return null;
}
public String getAccount() {
return null;
}
public String getAffiliation() {
return null;
}
public Enrollment getEnrollment() {
return new Enrollment() {
public PrivateKey getKey() {
// Load your private key
}
public String getCert() {
// Read client certificate
}
};
}
public String getMspId() {
return "Org1MSP";
}
});
现在通道配置:
final Channel channel = client.newChannel("mychannel");
channel.addOrderer(client.newOrderer("orderer0", "grpc://localhost:7050"));
channel.addPeer(client.newPeer("peer0", "grpc://localhost:7051"));
channel.initialize();
创建交易记录建议:
final TransactionProposalRequest proposalRequest = client.newTransactionProposalRequest();
final ChaincodeID chaincodeID = ChaincodeID.newBuilder()
.setName("myCC")
.setVersion("1.0")
.setPath("github.com/yourpackage/chaincode/")
.build();
proposalRequest.setChaincodeID(chaincodeID);
proposalRequest.setFcn("fcn");
proposalRequest.setProposalWaitTime(TimeUnit.SECONDS.toMillis(10));
proposalRequest.setArgs(new String[]{"arg1", "arg2"});
发送建议
final Collection<ProposalResponse> responses = channel.sendTransactionProposal(proposalRequest);
CompletableFuture<BlockEvent.TransactionEvent> txFuture = channel.sendTransaction(responses, client.getUserContext());
BlockEvent.TransactionEvent event = txFuture.get();
System.out.println(event.toString());
问题内容: 我已经建立了 HyperLedger面料V1.0网络 与 4个组织 各有1对 通过以下步骤建立你的第一个网络。 我现在有 **org1.example.com- 与 peer : peer0.org1.example.com 和 msp : Org1MSP** **org2.example.com- 与 peer : peer0.org2.example.com 和 msp : Org
注意:本文停止更新,请直接转到kubernetes-vagrant-centos-cluster仓库浏览最新版本。 当我们需要在本地开发时,更希望能够有一个开箱即用又可以方便定制的分布式开发环境,这样才能对Kubernetes本身和应用进行更好的测试。现在我们使用Vagrant和VirtualBox来创建一个这样的环境。 部署时需要使用的配置文件和vagrantfile请见:https://git
问题内容: Kubernetes似乎只不过是将容器部署到集群云中。似乎没有碰到的是开发和暂存环境(或类似环境)。 在开发过程中,您希望通过一些重要更改尽可能接近生产环境: 本地部署(或至少在 您只有您可以访问的地方 ) 在页面刷新时使用 最新的源代码 (假设它是一个网站;理想情况下,在本地文件保存上页面自动刷新,如果您挂载源代码并使用诸如Yeoman之类的东西就可以完成)。 同样,人们可能希望非公
简介 Xiaomi Cloud-ML也支持基于GPU的开发环境,用法与训练任务相同,可参考 使用GPU训练 。 开发环境的GPU数量大于0时,开启GPU加速。系统为开启GPU的开发环境分配GPU,并且镜像内安装相应软件包。 使用命令行启用GPU 用户在使用命令行创建开发环境时,可以使用参数指定需要的GPU个数。 cloudml dev create -n mydev -p mypassword -
我有一个长期的项目,是使用与redis和一个问题,已经开始,我相信只有升级到sidkiq 3。 问题是,如果不先启动redis服务器,我就无法运行正在开发的rails(4.1.4)应用程序。我在启动rails服务器时遇到的错误与我在没有首先启动redis的情况下运行bundle exec sidekiq时遇到的错误相同。在没有运行redis的情况下运行我的rails应用程序以前从来都不是问题,即使
Zack Tollmanz为WordPress编写了一个新的Memcached对象缓存库。这个库基于Ryan Boren开发的WordPress Memcache插件。 WordPress带有一个默认的对象缓存。可以通过将一个名为object-cache.php文件的文件复制到wp-content文件夹的根目录中来替换这个默认缓存。object-cache.php文件将包含替换对象缓存的实现。 T