mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-23 01:55:10 +00:00
modify to fit fabric 2.0.0
Signed-off-by: linqili <charlielin06@gmail.com>
This commit is contained in:
parent
da41afabbf
commit
0eb52a0ac7
6 changed files with 98 additions and 154 deletions
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
|
@ -1 +1,4 @@
|
|||
target/
|
||||
.settings/
|
||||
.idea
|
||||
.classpath
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>commercial-paper</groupId>
|
||||
<artifactId>commercial-paper</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/*.SF</exclude>
|
||||
<exclude>META-INF/*.DSA</exclude>
|
||||
<exclude>META-INF/*.RSA</exclude>
|
||||
</excludes>
|
||||
</filter>
|
||||
</filters>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>hyperledger</id>
|
||||
<name>Hyperledger Artifactory</name>
|
||||
<url>https://hyperledger.jfrog.io/hyperledger/fabric-maven</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<fabric-chaincode-java.version>1.4.2</fabric-chaincode-java.version>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
|
|
@ -14,7 +14,9 @@
|
|||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
|
||||
<!-- fabric-chaincode-java -->
|
||||
<fabric-chaincode-java.version>1.4.2</fabric-chaincode-java.version>
|
||||
<fabric-chaincode-java.version>2.0.0</fabric-chaincode-java.version>
|
||||
<!-- fabric-gateway-java -->
|
||||
<fabric-gateway-java.version>2.0.0</fabric-gateway-java.version>
|
||||
|
||||
</properties>
|
||||
|
||||
|
|
@ -61,12 +63,6 @@
|
|||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>hyperledger</id>
|
||||
<name>Hyperledger Artifactory</name>
|
||||
<url>https://hyperledger.jfrog.io/hyperledger/fabric-maven</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
|
|
@ -75,9 +71,9 @@
|
|||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hyperledger</groupId>
|
||||
<groupId>org.hyperledger.fabric</groupId>
|
||||
<artifactId>fabric-gateway-java</artifactId>
|
||||
<version>1.4.0-SNAPSHOT</version>
|
||||
<version>${fabric-gateway-java.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Used for datatype annotations only -->
|
||||
|
|
|
|||
|
|
@ -5,37 +5,61 @@ SPDX-License-Identifier: Apache-2.0
|
|||
package org.magnetocorp;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import org.hyperledger.fabric.gateway.GatewayException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import org.hyperledger.fabric.gateway.Identities;
|
||||
import org.hyperledger.fabric.gateway.Wallet;
|
||||
import org.hyperledger.fabric.gateway.Wallet.Identity;
|
||||
import org.hyperledger.fabric.gateway.Wallets;
|
||||
import org.hyperledger.fabric.gateway.Identity;
|
||||
|
||||
public class AddToWallet {
|
||||
|
||||
private static X509Certificate readX509Certificate(final Path certificatePath) throws IOException, CertificateException {
|
||||
try (Reader certificateReader = Files.newBufferedReader(certificatePath, StandardCharsets.UTF_8)) {
|
||||
return Identities.readX509Certificate(certificateReader);
|
||||
}
|
||||
}
|
||||
|
||||
private static PrivateKey getPrivateKey(final Path privateKeyPath) throws IOException, InvalidKeyException {
|
||||
try (Reader privateKeyReader = Files.newBufferedReader(privateKeyPath, StandardCharsets.UTF_8)) {
|
||||
return Identities.readPrivateKey(privateKeyReader);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
// A wallet stores a collection of identities
|
||||
Path walletPath = Paths.get("..", "identity", "user", "isabella", "wallet");
|
||||
Wallet wallet = Wallet.createFileSystemWallet(walletPath);
|
||||
Path walletPath = Paths.get(".", "wallet");
|
||||
Wallet wallet = Wallets.newFileSystemWallet(walletPath);
|
||||
|
||||
// Location of credentials to be stored in the wallet
|
||||
Path credentialPath = Paths.get("..", "..",".." ,".." ,"basic-network", "crypto-config",
|
||||
"peerOrganizations", "org1.example.com", "users", "User1@org1.example.com", "msp");
|
||||
Path certificatePem = credentialPath.resolve(Paths.get("signcerts",
|
||||
"User1@org1.example.com-cert.pem"));
|
||||
Path privateKey = credentialPath.resolve(Paths.get("keystore",
|
||||
"c75bd6911aca808941c3557ee7c97e90f3952e379497dc55eb903f31b50abc83_sk"));
|
||||
Path credentialPath = Paths.get("..", "..", "..",".." ,"test-network", "organizations",
|
||||
"peerOrganizations", "org2.example.com", "users", "User1@org2.example.com", "msp");
|
||||
System.out.println("credentialPath: " + credentialPath.toString());
|
||||
Path certificatePath = credentialPath.resolve(Paths.get("signcerts",
|
||||
"User1@org2.example.com-cert.pem"));
|
||||
System.out.println("certificatePem: " + certificatePath.toString());
|
||||
Path privateKeyPath = credentialPath.resolve(Paths.get("keystore",
|
||||
"c7077781c776d90009b3f68a75b15109e1cb82ae5dbdcc0b79644ff47d280db8_sk"));
|
||||
|
||||
// Load credentials into wallet
|
||||
String identityLabel = "User1@org1.example.com";
|
||||
Identity identity = Identity.createIdentity("Org1MSP", Files.newBufferedReader(certificatePem), Files.newBufferedReader(privateKey));
|
||||
X509Certificate certificate = readX509Certificate(certificatePath);
|
||||
PrivateKey privateKey = getPrivateKey(privateKeyPath);
|
||||
|
||||
Identity identity = Identities.newX509Identity("Org2MSP", certificate, privateKey);
|
||||
|
||||
|
||||
String identityLabel = "User1@org2.example.com";
|
||||
wallet.put(identityLabel, identity);
|
||||
|
||||
} catch (IOException e) {
|
||||
System.out.println("成功写入钱包信息:" + walletPath.toString());
|
||||
|
||||
} catch (IOException | CertificateException | InvalidKeyException e) {
|
||||
System.err.println("Error adding to wallet");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import org.hyperledger.fabric.gateway.Gateway;
|
|||
import org.hyperledger.fabric.gateway.GatewayException;
|
||||
import org.hyperledger.fabric.gateway.Network;
|
||||
import org.hyperledger.fabric.gateway.Wallet;
|
||||
import org.hyperledger.fabric.gateway.Wallets;
|
||||
import org.papernet.CommercialPaper;
|
||||
|
||||
public class Issue {
|
||||
|
|
@ -34,12 +35,13 @@ public class Issue {
|
|||
|
||||
try {
|
||||
// A wallet stores a collection of identities
|
||||
Path walletPath = Paths.get("..", "identity", "user", "isabella", "wallet");
|
||||
Wallet wallet = Wallet.createFileSystemWallet(walletPath);
|
||||
Path walletPath = Paths.get(".", "wallet");
|
||||
Wallet wallet = Wallets.newFileSystemWallet(walletPath);
|
||||
System.out.println("Read wallet info from: " + walletPath.toString());
|
||||
|
||||
String userName = "User1@org1.example.com";
|
||||
String userName = "User1@org2.example.com";
|
||||
|
||||
Path connectionProfile = Paths.get("..", "gateway", "networkConnection.yaml");
|
||||
Path connectionProfile = Paths.get("..", "gateway", "connection-org2.yaml");
|
||||
|
||||
// Set connection options on the gateway builder
|
||||
builder.identity(wallet, userName).networkConfig(connectionProfile).discovery(false);
|
||||
|
|
@ -57,7 +59,7 @@ public class Issue {
|
|||
|
||||
// Issue commercial paper
|
||||
System.out.println("Submit commercial paper issue transaction.");
|
||||
byte[] response = contract.submitTransaction("issue", "MagnetoCorp", "00001", "2020-05-31", "2020-11-30", "5000000");
|
||||
byte[] response = contract.submitTransaction("issue", "MagnetoCorp", "00002", "2020-05-31", "2020-11-30", "5000000");
|
||||
|
||||
// Process response
|
||||
System.out.println("Process issue transaction response.");
|
||||
|
|
|
|||
Loading…
Reference in a new issue