Search in sources :

Example 6 with TransactionReceipt

use of org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt in project web3sdk by FISCO-BCOS.

the class TableTestClient method remove.

private static void remove(String[] args, TableTest tabletest) {
    if (args.length == 3) {
        try {
            String name = args[1];
            int item_id = Integer.parseInt(args[2]);
            RemoteCall<TransactionReceipt> remove = tabletest.remove(name, BigInteger.valueOf(item_id));
            TransactionReceipt transactionReceipt = remove.send();
            List<RemoveResultEventResponse> removeResultEvents = tabletest.getRemoveResultEvents(transactionReceipt);
            if (removeResultEvents.size() > 0) {
                RemoveResultEventResponse reomveResultEventResponse = removeResultEvents.get(0);
                logger.info("removeCount = " + reomveResultEventResponse.count.intValue());
                System.out.println("removeCount = " + reomveResultEventResponse.count.intValue());
            } else {
                System.out.println("t_test table does not exist.");
            }
        } catch (Exception e) {
            System.out.println("remove transaction is abnormal, please check the environment");
        }
    } else {
        System.out.println("\nPlease enter as follow example:\n 1 1 remove fruit 1");
    }
}
Also used : TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) TransactionException(org.fisco.bcos.web3j.protocol.exceptions.TransactionException) RemoveResultEventResponse(org.fisco.bcos.channel.test.contract.TableTest.RemoveResultEventResponse)

Example 7 with TransactionReceipt

use of org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt in project web3sdk by FISCO-BCOS.

the class PerformanceOk method main.

public static void main(String[] args) throws Exception {
    try {
        String groupId = args[3];
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        Service service = context.getBean(Service.class);
        service.setGroupId(Integer.parseInt(groupId));
        service.run();
        System.out.println("Start test...");
        System.out.println("===================================================================");
        ChannelEthereumService channelEthereumService = new ChannelEthereumService();
        channelEthereumService.setChannelService(service);
        Web3AsyncThreadPoolSize.web3AsyncCorePoolSize = 3000;
        Web3AsyncThreadPoolSize.web3AsyncPoolSize = 2000;
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(500);
        Web3j web3 = Web3j.build(channelEthereumService, 15 * 100, scheduledExecutorService, Integer.parseInt(groupId));
        Credentials credentials = Credentials.create("b83261efa42895c38c6c2364ca878f43e77f3cddbc922bf57d0d48070f79feb6");
        BigInteger gasPrice = new BigInteger("30000000");
        BigInteger gasLimit = new BigInteger("30000000");
        String command = args[0];
        Integer count = 0;
        Integer qps = 0;
        switch(command) {
            case "trans":
                count = Integer.parseInt(args[1]);
                qps = Integer.parseInt(args[2]);
                break;
            default:
                System.out.println("Args: <trans> <Total> <QPS>");
        }
        ThreadPoolTaskExecutor threadPool = new ThreadPoolTaskExecutor();
        threadPool.setCorePoolSize(200);
        threadPool.setMaxPoolSize(500);
        threadPool.setQueueCapacity(count);
        threadPool.initialize();
        System.out.println("Deploying contract...");
        Ok ok = Ok.deploy(web3, credentials, gasPrice, gasLimit).send();
        PerformanceCollector collector = new PerformanceCollector();
        collector.setTotal(count);
        RateLimiter limiter = RateLimiter.create(qps);
        Integer area = count / 10;
        final Integer total = count;
        System.out.println("Start test,total:" + count);
        for (Integer i = 0; i < count; ++i) {
            threadPool.execute(new Runnable() {

                @Override
                public void run() {
                    limiter.acquire();
                    PerformanceOkCallback callback = new PerformanceOkCallback();
                    callback.setCollector(collector);
                    try {
                        ok.trans(new BigInteger("4"), callback);
                    } catch (Exception e) {
                        TransactionReceipt receipt = new TransactionReceipt();
                        receipt.setStatus("-1");
                        callback.onResponse(receipt);
                        logger.info(e.getMessage());
                    }
                    int current = sended.incrementAndGet();
                    if (current >= area && ((current % area) == 0)) {
                        System.out.println("Already sended: " + current + "/" + total + " transactions");
                    }
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
        ;
    }
}
Also used : ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) ChannelEthereumService(org.fisco.bcos.web3j.protocol.channel.ChannelEthereumService) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Service(org.fisco.bcos.channel.client.Service) ChannelEthereumService(org.fisco.bcos.web3j.protocol.channel.ChannelEthereumService) RateLimiter(com.google.common.util.concurrent.RateLimiter) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) BigInteger(java.math.BigInteger) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) Web3j(org.fisco.bcos.web3j.protocol.Web3j) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) BigInteger(java.math.BigInteger) ThreadPoolTaskExecutor(org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor) Credentials(org.fisco.bcos.web3j.crypto.Credentials)

Example 8 with TransactionReceipt

use of org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt in project web3sdk by FISCO-BCOS.

the class GMTableTestClient method create.

private static void create(TableTest tabletest) throws Exception {
    TransactionReceipt receipt = tabletest.create().send();
    List<TableTest.CreateResultEventResponse> createResultEvents = tabletest.getCreateResultEvents(receipt);
    if (createResultEvents.size() == 0) {
        System.out.println("create t_test table failed.");
        return;
    }
    TableTest.CreateResultEventResponse createResultEventResponse = createResultEvents.get(0);
    int createCount = createResultEventResponse.count.intValue();
    System.out.println("create table ret:" + createCount);
    switch(createCount) {
        case PrecompiledCommon.PermissionDenied:
            System.out.println("non-authorized to create t_test table.");
            break;
        case PrecompiledCommon.PermissionDenied_RC3:
            System.out.println("non-authorized to create t_test table.");
            break;
        case PrecompiledCommon.TableExist:
            System.out.println("t_test table already exist.");
            break;
        case PrecompiledCommon.Success:
            System.out.println("create t_test table success.");
            break;
        default:
            System.out.println("unknown return value:" + createCount);
            break;
    }
}
Also used : TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt)

Example 9 with TransactionReceipt

use of org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt in project web3sdk by FISCO-BCOS.

the class GMTableTestClient method remove.

private static void remove(String[] args, TableTest tabletest) {
    if (args.length == 3) {
        try {
            String name = args[1];
            int item_id = Integer.parseInt(args[2]);
            RemoteCall<TransactionReceipt> remove = tabletest.remove(name, BigInteger.valueOf(item_id));
            TransactionReceipt transactionReceipt = remove.send();
            List<TableTest.RemoveResultEventResponse> removeResultEvents = tabletest.getRemoveResultEvents(transactionReceipt);
            if (removeResultEvents.size() > 0) {
                TableTest.RemoveResultEventResponse reomveResultEventResponse = removeResultEvents.get(0);
                logger.info("removeCount = " + reomveResultEventResponse.count.intValue());
                System.out.println("removeCount = " + reomveResultEventResponse.count.intValue());
            } else {
                System.out.println("t_test table does not exist.");
            }
        } catch (Exception e) {
            System.out.println("remove transaction is abnormal, please check the environment");
        }
    } else {
        System.out.println("\nPlease enter as follow example:\n 1 1 remove fruit 1");
    }
}
Also used : TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) TransactionException(org.fisco.bcos.web3j.protocol.exceptions.TransactionException)

Example 10 with TransactionReceipt

use of org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt in project web3sdk by FISCO-BCOS.

the class GMTableTestClient method insert.

private static void insert(String[] args, TableTest tabletest) {
    if (args.length == 4) {
        try {
            String name = args[1];
            int item_id = Integer.parseInt(args[2]);
            String item_name = args[3];
            RemoteCall<TransactionReceipt> insert = tabletest.insert(name, BigInteger.valueOf(item_id), item_name);
            TransactionReceipt txReceipt = insert.send();
            List<TableTest.InsertResultEventResponse> insertResultEvents = tabletest.getInsertResultEvents(txReceipt);
            if (insertResultEvents.size() > 0) {
                for (int i = 0; i < insertResultEvents.size(); i++) {
                    TableTest.InsertResultEventResponse insertResultEventResponse = insertResultEvents.get(i);
                    logger.info("insertCount = " + insertResultEventResponse.count.intValue());
                    System.out.println("insertCount = " + insertResultEventResponse.count.intValue());
                }
            } else {
                System.out.println("t_test table does not exist.");
            }
        } catch (Exception e) {
            System.out.println("insert transaction is abnormal, please check the environment");
        }
    } else {
        System.out.println("\nPlease enter as follow example:\n 1 1 insert fruit 1 apple");
    }
}
Also used : TransactionReceipt(org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt) TransactionException(org.fisco.bcos.web3j.protocol.exceptions.TransactionException)

Aggregations

TransactionReceipt (org.fisco.bcos.web3j.protocol.core.methods.response.TransactionReceipt)41 BigInteger (java.math.BigInteger)18 Service (org.fisco.bcos.channel.client.Service)10 Credentials (org.fisco.bcos.web3j.crypto.Credentials)10 Web3j (org.fisco.bcos.web3j.protocol.Web3j)10 ChannelEthereumService (org.fisco.bcos.web3j.protocol.channel.ChannelEthereumService)10 ApplicationContext (org.springframework.context.ApplicationContext)10 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)10 RateLimiter (com.google.common.util.concurrent.RateLimiter)9 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 TransactionException (org.fisco.bcos.web3j.protocol.exceptions.TransactionException)9 ThreadPoolTaskExecutor (org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor)9 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)8 Random (java.util.Random)6 Utf8String (org.fisco.bcos.web3j.abi.datatypes.Utf8String)5 StaticGasProvider (org.fisco.bcos.web3j.tx.gas.StaticGasProvider)5 List (java.util.List)4 PrecompileMessageException (org.fisco.bcos.web3j.precompile.exception.PrecompileMessageException)3 Test (org.junit.Test)3 IOException (java.io.IOException)2