Search in sources :

Example 1 with Service

use of org.bcos.channel.client.Service in project web3sdk by FISCO-BCOS.

the class ChannelServer method main.

public static void main(String[] args) throws Exception {
    logger.debug("初始化Server");
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    Service service = context.getBean(Service.class);
    service.run();
    PushCallback cb = new PushCallback();
    service.setPushCallback(cb);
    System.out.println("3s后开始测试...");
    Thread.sleep(1000);
    System.out.println("2s后开始测试...");
    Thread.sleep(1000);
    System.out.println("1s后开始测试...");
    Thread.sleep(1000);
    System.out.println("开始测试");
    System.out.println("===================================================================");
}
Also used : ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Service(org.bcos.channel.client.Service)

Example 2 with Service

use of org.bcos.channel.client.Service in project web3sdk by FISCO-BCOS.

the class Ethereum method main.

public static void main(String[] args) throws Exception {
    // 初始化Service
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    Service service = context.getBean(Service.class);
    service.run();
    Thread.sleep(3000);
    System.out.println("开始测试...");
    System.out.println("===================================================================");
    logger.info("初始化AOMP的ChannelEthereumService");
    ChannelEthereumService channelEthereumService = new ChannelEthereumService();
    channelEthereumService.setChannelService(service);
    // 使用AMOP消息信道初始化web3j
    Web3j web3 = Web3j.build(channelEthereumService);
    logger.info("调用web3的getBlockNumber接口");
    EthBlockNumber ethBlockNumber = web3.ethBlockNumber().sendAsync().get();
    logger.info("获取ethBlockNumber:{}", ethBlockNumber);
    // 初始化交易签名私钥
    ECKeyPair keyPair = Keys.createEcKeyPair();
    Credentials credentials = Credentials.create(keyPair);
    // 初始化交易参数
    java.math.BigInteger gasPrice = new BigInteger("30000000");
    java.math.BigInteger gasLimit = new BigInteger("30000000");
    java.math.BigInteger initialWeiValue = new BigInteger("0");
    // 部署合约
    Ok ok = Ok.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("Ok getContractAddress " + ok.getContractAddress());
    // 调用合约接口
    java.math.BigInteger Num = new BigInteger("999");
    Uint256 num = new Uint256(Num);
    TransactionReceipt receipt = ok.trans(num).get();
    System.out.println("receipt transactionHash" + receipt.getTransactionHash());
    // 查询合约数据
    num = ok.get().get();
    System.out.println("ok.get() " + num.getValue());
}
Also used : EthBlockNumber(org.bcos.web3j.protocol.core.methods.response.EthBlockNumber) ECKeyPair(org.bcos.web3j.crypto.ECKeyPair) TransactionReceipt(org.bcos.web3j.protocol.core.methods.response.TransactionReceipt) Service(org.bcos.channel.client.Service) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Web3j(org.bcos.web3j.protocol.Web3j) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) BigInteger(java.math.BigInteger) BigInteger(java.math.BigInteger) Uint256(org.bcos.web3j.abi.datatypes.generated.Uint256) Credentials(org.bcos.web3j.crypto.Credentials)

Example 3 with Service

use of org.bcos.channel.client.Service in project web3sdk by FISCO-BCOS.

the class InitSystemContract method main.

public static void main(String[] args) throws Exception {
    // 初始化Service
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    Service service = context.getBean(Service.class);
    service.run();
    System.out.println("开始部署...");
    System.out.println("===================================================================");
    ChannelEthereumService channelEthereumService = new ChannelEthereumService();
    channelEthereumService.setChannelService(service);
    // init web3j
    Web3j web3 = Web3j.build(channelEthereumService);
    // 初始化交易签名私钥
    ECKeyPair keyPair = Keys.createEcKeyPair();
    Credentials credentials = Credentials.create(keyPair);
    // 初始化交易参数
    java.math.BigInteger gasPrice = new BigInteger("30000000");
    java.math.BigInteger gasLimit = new BigInteger("30000000");
    java.math.BigInteger initialWeiValue = new BigInteger("0");
    ToolConf toolConf = context.getBean(ToolConf.class);
    SystemProxy systemProxy = SystemProxy.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("systemProxy getContractAddress " + systemProxy.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "SystemProxy.address", systemProxy.getContractAddress());
    CAAction caAction = CAAction.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue, new Address(systemProxy.getContractAddress())).get();
    System.out.println("caAction getContractAddress " + caAction.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "CAAction.address", caAction.getContractAddress());
    NodeAction nodeAction = NodeAction.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("nodeAction getContractAddress " + nodeAction.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "NodeAction.address", nodeAction.getContractAddress());
    ConfigAction configAction = ConfigAction.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("configAction getContractAddress " + configAction.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "ConfigAction.address", configAction.getContractAddress());
    FileInfoManager fileInfoManager = FileInfoManager.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("fileInfoManager getContractAddress " + fileInfoManager.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "fileInfoManager.address", fileInfoManager.getContractAddress());
    FileServerManager fileServerManager = FileServerManager.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("fileServerManager getContractAddress " + fileServerManager.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "fileServerManager.address", fileServerManager.getContractAddress());
    ContractAbiMgr contractAbiMgr = ContractAbiMgr.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("contractAbiMgr getContractAddress " + contractAbiMgr.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "ContractAbiMgr.address", contractAbiMgr.getContractAddress());
    AuthorityFilter authorityFilter = AuthorityFilter.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("authorityFilter getContractAddress " + authorityFilter.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "AuthorityFilter.address", authorityFilter.getContractAddress());
    authorityFilter.setName(new Utf8String("AuthorityFilter"));
    authorityFilter.setVersion(new Utf8String("1.0"));
    Group group = Group.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("group getContractAddress " + group.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "Group.address", group.getContractAddress());
    TransactionFilterChain transactionFilterChain = TransactionFilterChain.deploy(web3, credentials, gasPrice, gasLimit, initialWeiValue).get();
    System.out.println("transactionFilterChain getContractAddress " + transactionFilterChain.getContractAddress());
    writeAddress(toolConf.getOutPutpath() + "transactionFilterChain.address", transactionFilterChain.getContractAddress());
    contractAbiMgr.addAbi(new Utf8String("ContractAbiMgr"), new Utf8String("ContractAbiMgr"), new Utf8String(""), new Utf8String(ContractAbiMgr.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("SystemProxy"), new Utf8String("SystemProxy"), new Utf8String(""), new Utf8String(SystemProxy.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("TransactionFilterChain"), new Utf8String("TransactionFilterChain"), new Utf8String(""), new Utf8String(TransactionFilterChain.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("AuthorityFilter"), new Utf8String("AuthorityFilter"), new Utf8String(""), new Utf8String(AuthorityFilter.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("Group"), new Utf8String("Group"), new Utf8String(""), new Utf8String(Group.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("CAAction"), new Utf8String("CAAction"), new Utf8String(""), new Utf8String(CAAction.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("ConfigAction"), new Utf8String("ConfigAction"), new Utf8String(""), new Utf8String(ConfigAction.ABI), new Address(contractAbiMgr.getContractAddress()));
    contractAbiMgr.addAbi(new Utf8String("NodeAction"), new Utf8String("NodeAction"), new Utf8String(""), new Utf8String(NodeAction.ABI), new Address(contractAbiMgr.getContractAddress()));
    transactionFilterChain.addFilter(new Address(authorityFilter.getContractAddress()));
    systemProxy.setRoute(new Utf8String("TransactionFilterChain"), new Address(transactionFilterChain.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("ConfigAction"), new Address(configAction.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("NodeAction"), new Address(nodeAction.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("CAAction"), new Address(caAction.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("ContractAbiMgr"), new Address(contractAbiMgr.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("FileInfoManager"), new Address(fileInfoManager.getContractAddress()), new Bool(false)).get();
    systemProxy.setRoute(new Utf8String("FileServerManager"), new Address(fileServerManager.getContractAddress()), new Bool(false)).get();
    System.out.println("合约部署完成 系统代理合约:" + systemProxy.getContractAddress());
    System.out.println("-----------------系统路由表----------------------");
    Uint256 routelength = systemProxy.getRouteSize().get();
    for (int i = 0; i < routelength.getValue().intValue(); i++) {
        Utf8String key = systemProxy.getRouteNameByIndex(new Uint256(i)).get();
        List<Type> route = systemProxy.getRoute(key).get();
        System.out.println(" " + i + ")" + key + "=>" + (route.get(0)) + "," + route.get(1).getValue() + "," + ((BigInteger) (route.get(2).getValue())).intValue());
        if (key.getValue().equals("TransactionFilterChain")) {
            TransactionFilterChain transactionFilterChain1 = TransactionFilterChain.load(route.get(0).toString(), web3, credentials, gasPrice, gasLimit);
            Uint256 filterlength = transactionFilterChain1.getFiltersLength().get();
            for (int j = 0; j < filterlength.getValue().intValue(); j++) {
                Address filter = transactionFilterChain1.getFilter(new Uint256(j)).get();
                TransactionFilterBase transactionFilterBase = TransactionFilterBase.load(filter.toString(), web3, credentials, gasPrice, gasLimit);
                Utf8String name = transactionFilterBase._name().get();
                Utf8String version = transactionFilterBase._version().get();
                System.out.println("       " + name + "=>" + version + "," + filter);
            }
        }
    }
    System.exit(0);
}
Also used : Address(org.bcos.web3j.abi.datatypes.Address) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Bool(org.bcos.web3j.abi.datatypes.Bool) BigInteger(java.math.BigInteger) ECKeyPair(org.bcos.web3j.crypto.ECKeyPair) Service(org.bcos.channel.client.Service) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) Utf8String(org.bcos.web3j.abi.datatypes.Utf8String) Web3j(org.bcos.web3j.protocol.Web3j) Type(org.bcos.web3j.abi.datatypes.Type) BigInteger(java.math.BigInteger) Uint256(org.bcos.web3j.abi.datatypes.generated.Uint256) Credentials(org.bcos.web3j.crypto.Credentials)

Example 4 with Service

use of org.bcos.channel.client.Service in project web3sdk by FISCO-BCOS.

the class SystemContractTools method main.

public static void main(String[] args) throws Exception {
    // 初始化Service
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    Service service = context.getBean(Service.class);
    service.run();
    ToolConf toolConf = context.getBean(ToolConf.class);
    System.out.println(LOGO);
    System.out.println("===================================================================");
    ChannelEthereumService channelEthereumService = new ChannelEthereumService();
    channelEthereumService.setChannelService(service);
    Web3j web3 = Web3j.build(channelEthereumService);
    ECKeyPair keyPair = Keys.createEcKeyPair();
    Credentials credentials = Credentials.create(keyPair);
    BigInteger gasPrice = new BigInteger("30000000");
    BigInteger gasLimit = new BigInteger("30000000");
    SystemProxy systemProxy = SystemProxy.load(toolConf.getSystemProxyAddress(), web3, credentials, gasPrice, gasLimit);
    switch(args[0]) {
        case "SystemProxy":
            SystemProxyTools.processSystemProxy(systemProxy, web3, credentials, gasPrice, gasLimit);
            break;
        case "AuthorityFilter":
            AuthorityFilter authorityFilter = AuthorityFilter.load(getAction(systemProxy, "AuthorityFilter"), web3, credentials, gasPrice, gasLimit);
            AuthorityFilterTools.processAuthorityFilter(authorityFilter, args);
            break;
        case "NodeAction":
            NodeAction nodeAction = NodeAction.load(getAction(systemProxy, "NodeAction"), web3, credentials, gasPrice, gasLimit);
            NodeActionTools.processNodeAction(context, nodeAction, args);
            break;
        case "CAAction":
            CAAction caAction = CAAction.load(getAction(systemProxy, "CAActions"), web3, credentials, gasPrice, gasLimit);
            CAActionTools.processCAAction(context, caAction, args);
            break;
        case "ConfigAction":
            ConfigAction configAction = ConfigAction.load(getAction(systemProxy, "ConfigAction"), web3, credentials, gasPrice, gasLimit);
            ConfigActionTools.processConfigAction(configAction, args);
            break;
        default:
            break;
    }
    System.exit(0);
}
Also used : ECKeyPair(org.bcos.web3j.crypto.ECKeyPair) Service(org.bcos.channel.client.Service) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) ChannelEthereumService(org.bcos.web3j.protocol.channel.ChannelEthereumService) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Web3j(org.bcos.web3j.protocol.Web3j) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) BigInteger(java.math.BigInteger) Credentials(org.bcos.web3j.crypto.Credentials)

Example 5 with Service

use of org.bcos.channel.client.Service in project web3sdk by FISCO-BCOS.

the class Channel2Client method main.

public static void main(String[] args) throws Exception {
    if (args.length < 2) {
        System.out.println("参数: 目标topic         总请求量");
        return;
    }
    String topic = args[0];
    Integer count = Integer.parseInt(args[1]);
    DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    logger.debug("初始化链上链下客户端");
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    Service service = context.getBean(Service.class);
    // 阻塞到连接成功,或通知
    service.run();
    System.out.println("3s后开始测试...");
    Thread.sleep(1000);
    System.out.println("2s后开始测试...");
    Thread.sleep(1000);
    System.out.println("1s后开始测试...");
    Thread.sleep(1000);
    System.out.println("开始测试");
    System.out.println("===================================================================");
    for (Integer i = 0; i < count; ++i) {
        Thread.sleep(2000);
        ChannelRequest request = new ChannelRequest();
        request.setToTopic(topic);
        request.setMessageID(service.newSeq());
        request.setTimeout(5000);
        request.setContent("request seq:" + request.getMessageID());
        System.out.println(df.format(LocalDateTime.now()) + " 发送请求 seq:" + String.valueOf(request.getMessageID()) + ", 内容:" + request.getContent());
        ChannelResponse response = service.sendChannelMessage2(request);
        System.out.println(df.format(LocalDateTime.now()) + "收到回包 seq:" + String.valueOf(response.getMessageID()) + ", 错误码:" + response.getErrorCode() + ", 内容:" + response.getContent());
    }
}
Also used : ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) ApplicationContext(org.springframework.context.ApplicationContext) ChannelRequest(org.bcos.channel.dto.ChannelRequest) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Service(org.bcos.channel.client.Service) ChannelResponse(org.bcos.channel.dto.ChannelResponse) DateTimeFormatter(java.time.format.DateTimeFormatter)

Aggregations

Service (org.bcos.channel.client.Service)9 ApplicationContext (org.springframework.context.ApplicationContext)9 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)9 BigInteger (java.math.BigInteger)4 ChannelRequest (org.bcos.channel.dto.ChannelRequest)4 Credentials (org.bcos.web3j.crypto.Credentials)4 ECKeyPair (org.bcos.web3j.crypto.ECKeyPair)4 Web3j (org.bcos.web3j.protocol.Web3j)4 ChannelEthereumService (org.bcos.web3j.protocol.channel.ChannelEthereumService)4 ChannelResponse (org.bcos.channel.dto.ChannelResponse)3 DateTimeFormatter (java.time.format.DateTimeFormatter)2 Address (org.bcos.web3j.abi.datatypes.Address)2 Type (org.bcos.web3j.abi.datatypes.Type)2 Utf8String (org.bcos.web3j.abi.datatypes.Utf8String)2 Uint256 (org.bcos.web3j.abi.datatypes.generated.Uint256)2 TransactionReceipt (org.bcos.web3j.protocol.core.methods.response.TransactionReceipt)2 RateLimiter (com.google.common.util.concurrent.RateLimiter)1 ArrayList (java.util.ArrayList)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 Bool (org.bcos.web3j.abi.datatypes.Bool)1