【imToken】im钱包多签破解解除
4.55K subscribers
257 photos
1 video
3 files
78 links
你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
Download Telegram
创世块配置介绍
PoA类共识的创世块示例在上述 /data/genesis/xpoa.json 中,下面简要介绍:

    "genesis_consensus":{
"name": "xpoa", // 共识名称
"config": {
"period":3000, // 【重要】每个块生产固定时间,单位为毫秒,示例所示为3s一个块
"block_num":40, // 【重要】每个候选人在一轮轮数中需要出块的数目
"init_proposer": {
"address" : ["TeyyPLpp9L7QAcxHangtcHTu7HUZ6iydY", "SmJG3rH2ZzYQ9ojxhbRCPwFiE9y6pD1Co"] // 【重要】数组中记录了全部初始候选人节点的address
}
// , "bft_config":{} 可选项,即配置chained-bft组件。
}
}

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
证书配置
基于安全考虑,Java SDK与节点间采用SSL加密通信,目前同时支持非国密SSL连接以及国密SSL连接,[cryptoMaterial]配置SSL连接的证书信息,具体包括如下配置项:
certPath: 证书存放路径,默认是conf目录;
caCert: CA证书路径,默认注释该配置项,该配置项注释时,当SDK与节点间采用非国密SSL连接时,默认的CA证书路径为${certPath}/ca.crt,当SDK与节点采用国密SSL连接时,默认的CA证书路径为${certPath}/gm/gmca.crt;开启该配置项时,从配置指定的路径加载CA证书;
sslCert: SDK证书路径,默认注释该配置项,该配置项注释时,当SDK与节点间采用非国密SSL连接时,从${certPath}/sdk.crt加载SDK证书,当SDK与节点间采用国密SSL连接时,从${certPath}/gm/gmsdk.crt加载SDK证书;开启该配置选项时,从配置指定的路径加载SDK证书;
sslKey: SDK私钥路径,默认注释该配置项,当该配置项注释时,当SDK与节点间采用非国密SSL连接时,从${certPath}/sdk.key加载SDK私钥,SDK与节点采用国密SSL连接时,从${certPaht}/gm/gmsdk.key加载SDK私钥;开启该配置项时,直接从配置项指定的路径加载SDK私钥;
enSslCert: 国密SSL加密证书路径,仅当SDK与节点间采用国密SSL连接时,需要配置该配置项,默认从${certPath}/gm/gmensdk.crt加载国密SSL加密证书;当开启该配置项时,从配置项指定的路径加载国密SSL加密证书;
enSslKey: 国密SSL加密私钥路径,仅当SDK与节点间采用国密SSL连接时,需配置该配置项,默认从${certPath}/gm/gmensdk.key加载国密SSL加密私钥;当卡其该配置项时,从配置项指定的路径加载国密SSL加密私钥。

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
调用HelloWorld合约的返回如下:
{
"returnCode": 0,
"returnMessage": "Success",
"transactionReceipt": {
"transactionHash": "0x46b510dfff02c327432362db76555c75211aab17b3b75221137132123773fe8f",
"transactionIndex": "0x0",
"root": "0x0000000000000000000000000000000000000000000000000000000000000000",
"blockNumber": "0x156",
"blockHash": "0x2d1ef0246bc0484e0fecd2a0b6671c19b69c86ac9e464b162ff4a932908151a0",
"from": "0x77a5933b5af032a313fde655d8290c134aeeb0d5",
"to": "0x975810f096e8d8b2daa9ee399f5ce809c0a12f1b",
"gasUsed": "0x6032",
"contractAddress": "0x0000000000000000000000000000000000000000",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": "0x0",
"input": "0x4ed3885e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000",
"output": "0x",
"txProof": null,
"receiptProof": null,
"message": null,
"statusOK": true
},
"contractAddress": "0x0000000000000000000000000000000000000000",
"values": "[]",
"events": "{}",
"receiptMessages": "Success"
}

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
调用合约查询接口
查询合约直接通过调用链上的节点查询函数即可返回结果,无需共识;因此所有的查询交易都是同步的。查询合约使用了sendCallByContractLoader函数来查询合约,此处展示了如何调用HelloWorld中的name函数来进行查询。
    // 查询HelloWorld合约的『name』函数,合约地址为helloWorldAddress,参数为空
CallResponse callResponse1 =
assembleTransactionWithRemoteSignProcessor.sendCallByContractLoader(
"HelloWorld", helloWorldAddrss, "name", new ArrayList<>());

查询函数返回如下:
{
"returnCode": 0,
"returnMessage": "Success",
"values": "[\"test\"]"
}

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
采用callback的方式异步操作合约
定义回调类

异步调用外部签名服务的时候,可以自定义回调类,实现和重写回调处理函数。
自定义的回调类需要继承抽象类RemoteSignCallbackInterface, 实现handleSignedTransaction方法。
例如,我们定义一个简单的回调类。该回调类实现了异步回调发送交易到节点的效果。
public class RemoteSignCallbackMock implements RemoteSignCallbackInterface {

AssembleTransactionWithRemoteSignProcessor assembleTransactionWithRemoteSignProcessor;
RawTransaction rawTransaction;

public RemoteSignCallbackMock(
AssembleTransactionWithRemoteSignProcessor assembleTransactionWithRemoteSignProcessor,
RawTransaction rawTransaction) {
this.assembleTransactionWithRemoteSignProcessor =
assembleTransactionWithRemoteSignProcessor;
this.rawTransaction = rawTransaction;
}

/**
* 签名结果回调的实现
*
* @param signatureStr 签名服务回调返回的签名结果串
* @return *
*/
@Override
public int handleSignedTransaction(String signatureStr) {
System.out.println(System.currentTimeMillis() + " SignatureResult: " + signatureStr);
// 完成了交易签名后,将其发送出去
TransactionReceipt tr =
assembleTransactionWithRemoteSignProcessor.signAndPush(
rawTransaction, signatureStr);
return 0;
}
}

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg
采用callback的方式异步部署合约
首先,创建一个回调类的实例。然后使用deployAsync方法异步部署合约。
    // 创建 RawTransaction
RawTransaction rawTransaction =
assembleTransactionWithRemoteSignProcessor.getDeployedRawTransaction(
abi, bin, new ArrayList<>());
// 创建回调实例
RemoteSignCallbackMock callbackMock =
new RemoteSignCallbackMock(
assembleTransactionWithRemoteSignProcessor, rawTransaction);
// 异步部署合约
assembleTransactionWithRemoteSignProcessor.deployAsync(rawTransaction, callbackMock);

你要是不懂你可以随时在我的频道看消息 新内容充实自己的知识库。📚
【imToken】im钱包多签破解解除,要破解可以来联系: @heiksg