@@ -0,0 +1,57 @@ | |||
package com.jd.blockchain.sdk.samples; | |||
import com.jd.blockchain.ledger.TransactionResponse; | |||
import com.jd.blockchain.utils.http.ResponseConverter; | |||
import com.jd.blockchain.utils.web.client.WebResponseConverter; | |||
import org.apache.http.HttpResponse; | |||
import org.apache.http.client.HttpClient; | |||
import org.apache.http.client.entity.UrlEncodedFormEntity; | |||
import org.apache.http.client.methods.HttpPost; | |||
import org.apache.http.impl.client.HttpClients; | |||
import org.apache.http.message.BasicNameValuePair; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
/** | |||
* @Author: zhangshuang | |||
* @Date: 2020/5/27 5:18 PM | |||
* Version 1.0 | |||
*/ | |||
public class SDKDemo_ActiveParticipant { | |||
// 接受激活参与方操作的共识节点Http服务地址, 根据具体环境配置进行修改 | |||
private static String httpIp = "127.0.0.1"; | |||
private static String httpPort = "7085"; | |||
public static void main(String[] args) { | |||
String url = "http://" + httpIp + ":" + httpPort + "/management/delegate/activeparticipant"; | |||
System.out.println("url = " + url); | |||
HttpPost httpPost = new HttpPost(url); | |||
List<BasicNameValuePair> para=new ArrayList<BasicNameValuePair>(); | |||
// 账本值根据具体情况进行修改 | |||
BasicNameValuePair base58LedgerHash = new BasicNameValuePair("ledgerHash", "j5n3SmYT3rS5aDgwQbDUxBYUMEP9GvVfMiQK3Tcr3vxz3M"); | |||
para.add(base58LedgerHash); | |||
try { | |||
httpPost.setEntity(new UrlEncodedFormEntity(para,"UTF-8")); | |||
HttpClient httpClient = HttpClients.createDefault(); | |||
HttpResponse response = httpClient.execute(httpPost); | |||
ResponseConverter responseConverter = new WebResponseConverter(TransactionResponse.class); | |||
Object converterResponse = responseConverter.getResponse(null, response.getEntity().getContent(), null); | |||
System.out.println("response result = " + ((TransactionResponse)converterResponse).getExecutionState()); | |||
} catch (Exception e) { | |||
e.printStackTrace(); | |||
System.out.println("Active participant post request error!"); | |||
} | |||
} | |||
} |
@@ -0,0 +1,87 @@ | |||
package com.jd.blockchain.sdk.samples; | |||
import com.jd.blockchain.binaryproto.DataContractRegistry; | |||
import com.jd.blockchain.crypto.*; | |||
import com.jd.blockchain.ledger.*; | |||
import com.jd.blockchain.sdk.BlockchainService; | |||
import com.jd.blockchain.sdk.client.GatewayServiceFactory; | |||
import com.jd.blockchain.utils.net.NetworkAddress; | |||
/** | |||
* @Author: zhangshuang | |||
* @Date: 2020/5/27 5:18 PM | |||
* Version 1.0 | |||
*/ | |||
public class SDKDemo_RegistParticipant { | |||
public static void main(String[] args) { | |||
PrivKey privKey; | |||
PubKey pubKey; | |||
BlockchainKeypair CLIENT_CERT = null; | |||
String GATEWAY_IPADDR = null; | |||
int GATEWAY_PORT; | |||
boolean SECURE; | |||
BlockchainService service; | |||
//根据密码工具产生的公私钥 | |||
String PUB = "3snPdw7i7PkdgqiGX7GbZuFSi1cwZn7vtjw4vifb1YoXgr9k6Kfmis"; | |||
String PRIV = "177gjtZu8w1phqHFVNiFhA35cfimXmP6VuqrBFhfbXBWK8s4TRwro2tnpffwP1Emwr6SMN6"; | |||
privKey = SDKDemo_Params.privkey1; | |||
pubKey = SDKDemo_Params.pubKey1; | |||
CLIENT_CERT = new BlockchainKeypair(SDKDemo_Params.pubKey0, SDKDemo_Params.privkey0); | |||
GATEWAY_IPADDR = "127.0.0.1"; | |||
GATEWAY_PORT = 11000; | |||
SECURE = false; | |||
GatewayServiceFactory serviceFactory = GatewayServiceFactory.connect(GATEWAY_IPADDR, GATEWAY_PORT, SECURE, | |||
CLIENT_CERT); | |||
service = serviceFactory.getBlockchainService(); | |||
DataContractRegistry.register(TransactionContent.class); | |||
DataContractRegistry.register(TransactionContentBody.class); | |||
DataContractRegistry.register(TransactionRequest.class); | |||
DataContractRegistry.register(NodeRequest.class); | |||
DataContractRegistry.register(EndpointRequest.class); | |||
DataContractRegistry.register(TransactionResponse.class); | |||
DataContractRegistry.register(ParticipantRegisterOperation.class); | |||
DataContractRegistry.register(ParticipantStateUpdateOperation.class); | |||
HashDigest[] ledgerHashs = service.getLedgerHashs(); | |||
// 在本地定义注册账号的 TX; | |||
TransactionTemplate txTemp = service.newTransaction(ledgerHashs[0]); | |||
//existed signer | |||
AsymmetricKeypair keyPair = new BlockchainKeypair(pubKey, privKey); | |||
privKey = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV, SDKDemo_Constant.PASSWORD); | |||
pubKey = KeyGenUtils.decodePubKey(PUB); | |||
System.out.println("Address = " + AddressEncoding.generateAddress(pubKey)); | |||
BlockchainKeypair user = new BlockchainKeypair(pubKey, privKey); | |||
// 新参与方的共识网络地址 | |||
NetworkAddress networkAddress = new NetworkAddress("127.0.0.1", 20000); | |||
// 注册参与方 | |||
txTemp.participants().register("Peer4", user.getIdentity(), networkAddress); | |||
// TX 准备就绪; | |||
PreparedTransaction prepTx = txTemp.prepare(); | |||
// 使用私钥进行签名; | |||
prepTx.sign(keyPair); | |||
// 提交交易; | |||
TransactionResponse transactionResponse = prepTx.commit(); | |||
} | |||
} |
@@ -0,0 +1,51 @@ | |||
package com.jd.blockchain.sdk.samples; | |||
import com.jd.blockchain.crypto.AddressEncoding; | |||
import com.jd.blockchain.crypto.KeyGenUtils; | |||
import com.jd.blockchain.crypto.PrivKey; | |||
import com.jd.blockchain.crypto.PubKey; | |||
import com.jd.blockchain.ledger.*; | |||
import com.jd.blockchain.utils.net.NetworkAddress; | |||
public class SDK_RegistParticipant_Demo extends SDK_Base_Demo { | |||
public static void main(String[] args) { | |||
new SDK_RegistParticipant_Demo().regParticipant(); | |||
} | |||
public void regParticipant() { | |||
//新参与方的公私钥 | |||
String PUB = "3snPdw7i7PjVKiTH2VnXZu5H8QmNaSXpnk4ei533jFpuifyjS5zzH9"; | |||
String PRIV = "177gjzHTznYdPgWqZrH43W3yp37onm74wYXT4v9FukpCHBrhRysBBZh7Pzdo5AMRyQGJD7x"; | |||
PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV, SDKDemo_Constant.PASSWORD); | |||
PubKey pubKey = KeyGenUtils.decodePubKey(PUB); | |||
System.out.println("Address = " + AddressEncoding.generateAddress(pubKey)); | |||
BlockchainKeypair user = new BlockchainKeypair(pubKey, privKey); | |||
// 新参与方的共识网络地址 | |||
NetworkAddress networkAddress = new NetworkAddress("127.0.0.1", 20000); | |||
// 定义交易模板 | |||
TransactionTemplate txTpl = blockchainService.newTransaction(ledgerHash); | |||
// 注册参与方 | |||
txTpl.participants().register("Peer4", user.getIdentity(), networkAddress); | |||
// TX 准备就绪; | |||
PreparedTransaction prepTx = txTpl.prepare(); | |||
// 使用私钥进行签名; | |||
prepTx.sign(adminKey); | |||
// 提交交易; | |||
TransactionResponse transactionResponse = prepTx.commit(); | |||
System.out.println(transactionResponse.isSuccess()); | |||
} | |||
} |
@@ -1,113 +0,0 @@ | |||
package test.com.jd.blockchain.sdk.test; | |||
import static org.junit.Assert.assertTrue; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
import com.jd.blockchain.binaryproto.DataContractRegistry; | |||
import com.jd.blockchain.crypto.AddressEncoding; | |||
import com.jd.blockchain.crypto.AsymmetricKeypair; | |||
import com.jd.blockchain.crypto.HashDigest; | |||
import com.jd.blockchain.crypto.KeyGenUtils; | |||
import com.jd.blockchain.crypto.PrivKey; | |||
import com.jd.blockchain.crypto.PubKey; | |||
import com.jd.blockchain.ledger.BlockchainKeypair; | |||
import com.jd.blockchain.ledger.EndpointRequest; | |||
import com.jd.blockchain.ledger.NodeRequest; | |||
import com.jd.blockchain.ledger.ParticipantNodeState; | |||
import com.jd.blockchain.ledger.ParticipantRegisterOperation; | |||
import com.jd.blockchain.ledger.ParticipantStateUpdateOperation; | |||
import com.jd.blockchain.ledger.PreparedTransaction; | |||
import com.jd.blockchain.ledger.TransactionContent; | |||
import com.jd.blockchain.ledger.TransactionContentBody; | |||
import com.jd.blockchain.ledger.TransactionRequest; | |||
import com.jd.blockchain.ledger.TransactionResponse; | |||
import com.jd.blockchain.ledger.TransactionTemplate; | |||
import com.jd.blockchain.sdk.BlockchainService; | |||
import com.jd.blockchain.sdk.client.GatewayServiceFactory; | |||
import com.jd.blockchain.sdk.samples.SDKDemo_Constant; | |||
import com.jd.blockchain.utils.net.NetworkAddress; | |||
/** | |||
* 参与方状态更新测试 | |||
* @author zhangshuang | |||
* @create 2019/7/18 | |||
* @since 1.0.0 | |||
*/ | |||
public class SDK_GateWay_Participant_State_Update_Test_ { | |||
private PrivKey privKey; | |||
private PubKey pubKey; | |||
private BlockchainKeypair CLIENT_CERT = null; | |||
private String GATEWAY_IPADDR = null; | |||
private int GATEWAY_PORT; | |||
private boolean SECURE; | |||
private BlockchainService service; | |||
//根据密码工具产生的公私钥 | |||
static String PUB = "3snPdw7i7PkdgqiGX7GbZuFSi1cwZn7vtjw4vifb1YoXgr9k6Kfmis"; | |||
String PRIV = "177gjtZu8w1phqHFVNiFhA35cfimXmP6VuqrBFhfbXBWK8s4TRwro2tnpffwP1Emwr6SMN6"; | |||
@Before | |||
public void init() { | |||
privKey = SDK_GateWay_KeyPair_Para.privkey1; | |||
pubKey = SDK_GateWay_KeyPair_Para.pubKey1; | |||
CLIENT_CERT = new BlockchainKeypair(SDK_GateWay_KeyPair_Para.pubKey0, SDK_GateWay_KeyPair_Para.privkey0); | |||
GATEWAY_IPADDR = "127.0.0.1"; | |||
GATEWAY_PORT = 11000; | |||
SECURE = false; | |||
GatewayServiceFactory serviceFactory = GatewayServiceFactory.connect(GATEWAY_IPADDR, GATEWAY_PORT, SECURE, | |||
CLIENT_CERT); | |||
service = serviceFactory.getBlockchainService(); | |||
DataContractRegistry.register(TransactionContent.class); | |||
DataContractRegistry.register(TransactionContentBody.class); | |||
DataContractRegistry.register(TransactionRequest.class); | |||
DataContractRegistry.register(NodeRequest.class); | |||
DataContractRegistry.register(EndpointRequest.class); | |||
DataContractRegistry.register(TransactionResponse.class); | |||
DataContractRegistry.register(ParticipantRegisterOperation.class); | |||
DataContractRegistry.register(ParticipantStateUpdateOperation.class); | |||
DataContractRegistry.register(ParticipantStateUpdateOperation.class); | |||
} | |||
@Test | |||
public void updateParticipantState_Test() { | |||
HashDigest[] ledgerHashs = service.getLedgerHashs(); | |||
// 在本地定义注册账号的 TX; | |||
TransactionTemplate txTemp = service.newTransaction(ledgerHashs[0]); | |||
//existed signer | |||
AsymmetricKeypair keyPair = new BlockchainKeypair(pubKey, privKey); | |||
PrivKey privKey = KeyGenUtils.decodePrivKeyWithRawPassword(PRIV, SDKDemo_Constant.PASSWORD); | |||
PubKey pubKey = KeyGenUtils.decodePubKey(PUB); | |||
System.out.println("Address = "+AddressEncoding.generateAddress(pubKey)); | |||
BlockchainKeypair user = new BlockchainKeypair(pubKey, privKey); | |||
NetworkAddress networkAddress = new NetworkAddress("127.0.0.1", 20000); | |||
txTemp.states().update(user.getIdentity(),networkAddress, ParticipantNodeState.ACTIVED); | |||
// TX 准备就绪; | |||
PreparedTransaction prepTx = txTemp.prepare(); | |||
// 使用私钥进行签名; | |||
prepTx.sign(keyPair); | |||
// 提交交易; | |||
TransactionResponse transactionResponse = prepTx.commit(); | |||
assertTrue(transactionResponse.isSuccess()); | |||
} | |||
} |