当前位置: 首页>>代码示例>>Java>>正文


Java EthereumListener类代码示例

本文整理汇总了Java中org.ethereum.listener.EthereumListener的典型用法代码示例。如果您正苦于以下问题:Java EthereumListener类的具体用法?Java EthereumListener怎么用?Java EthereumListener使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


EthereumListener类属于org.ethereum.listener包,在下文中一共展示了EthereumListener类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: BlockChainImpl

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
public BlockChainImpl(RskSystemProperties config,
                      Repository repository,
                      BlockStore blockStore,
                      ReceiptStore receiptStore,
                      PendingState pendingState,
                      EthereumListener listener,
                      AdminInfo adminInfo,
                      BlockValidator blockValidator) {
    this.config = config;
    this.repository = repository;
    this.blockStore = blockStore;
    this.receiptStore = receiptStore;
    this.listener = listener;
    this.adminInfo = adminInfo;
    this.blockValidator = blockValidator;
    this.blockExecutor = new BlockExecutor(config, repository, this, blockStore, listener);

    setPendingState(pendingState);
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:20,代码来源:BlockChainImpl.java

示例2: PendingStateImpl

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
public PendingStateImpl(RskSystemProperties config,
                        Blockchain blockChain,
                        Repository repository,
                        BlockStore blockStore,
                        ProgramInvokeFactory programInvokeFactory,
                        EthereumListener listener,
                        int outdatedThreshold,
                        int outdatedTimeout) {
    this.config = config;
    this.blockChain = blockChain;
    this.blockStore = blockStore;
    this.repository = repository;
    this.programInvokeFactory = programInvokeFactory;
    this.listener = listener;
    this.outdatedThreshold = outdatedThreshold;
    this.outdatedTimeout = outdatedTimeout;

    this.pendingStateRepository = repository.startTracking();
    this.bestBlock = blockChain.getBestBlock();

    if (this.outdatedTimeout > 0) {
        this.cleanerTimer = Executors.newSingleThreadScheduledExecutor(r -> new Thread(r, "PendingStateCleanerTimer"));
    }
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:25,代码来源:PendingStateImpl.java

示例3: getBlockchain

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Bean
public BlockChainImpl getBlockchain(org.ethereum.core.Repository repository,
                                    org.ethereum.db.BlockStore blockStore,
                                    ReceiptStore receiptStore,
                                    EthereumListener listener,
                                    AdminInfo adminInfo,
                                    BlockValidator blockValidator,
                                    RskSystemProperties config) {
    return new BlockChainImpl(
            config,
            repository,
            blockStore,
            receiptStore,
            null, // circular dependency
            listener,
            adminInfo,
            blockValidator
    );
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:20,代码来源:RskFactory.java

示例4: getPendingState

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Bean
public PendingState getPendingState(BlockChainImpl blockchain,
                                    org.ethereum.db.BlockStore blockStore,
                                    org.ethereum.core.Repository repository,
                                    RskSystemProperties config,
                                    ProgramInvokeFactory programInvokeFactory,
                                    EthereumListener listener) {
    PendingStateImpl pendingState = new PendingStateImpl(
            blockchain,
            blockStore,
            listener,
            programInvokeFactory,
            repository,
            config
    );
    // circular dependency
    blockchain.setPendingState(pendingState);
    return pendingState;
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:20,代码来源:RskFactory.java

示例5: getChannelFactory

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Bean
public EthereumChannelInitializer.ChannelFactory getChannelFactory(RskSystemProperties config,
                                                                   EthereumListener ethereumListener,
                                                                   ConfigCapabilities configCapabilities,
                                                                   NodeManager nodeManager,
                                                                   EthHandlerFactory ethHandlerFactory,
                                                                   StaticMessages staticMessages,
                                                                   PeerScoringManager peerScoringManager) {
    return () -> {
        HandshakeHandler handshakeHandler = new HandshakeHandler(config, peerScoringManager);
        MessageQueue messageQueue = new MessageQueue();
        P2pHandler p2pHandler = new P2pHandler(config, ethereumListener, configCapabilities);
        MessageCodec messageCodec = new MessageCodec(ethereumListener, config);
        return new Channel(config, messageQueue, p2pHandler, messageCodec, handshakeHandler, nodeManager, ethHandlerFactory, staticMessages);
    };
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:17,代码来源:RskFactory.java

示例6: WorldManagerImpl

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Autowired
public WorldManagerImpl(RskSystemProperties config,
                        Blockchain blockchain,
                        BlockStore blockStore,
                        PendingState pendingState,
                        Repository repository,
                        NetworkStateExporter networkStateExporter,
                        HashRateCalculator hashRateCalculator,
                        ConfigCapabilities configCapabilities,
                        ChannelManager channelManager,
                        EthereumListener listener,
                        BlockProcessor nodeBlockProcessor) {
    this.blockchain = blockchain;
    this.blockStore = blockStore;
    this.pendingState = pendingState;
    this.repository = repository;
    this.hashRateCalculator = hashRateCalculator;
    this.configCapabilities = configCapabilities;
    this.listener = listener;
    this.nodeBlockProcessor = nodeBlockProcessor;

    BlockChainLoader loader = new BlockChainLoader(config, this.blockchain, this.blockStore, this.repository, this.listener);
    loader.loadBlockchain();
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:25,代码来源:WorldManagerImpl.java

示例7: TransactionExecutor

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
public TransactionExecutor(RskSystemProperties config, Transaction tx, int txindex, byte[] coinbase, Repository track, BlockStore blockStore, ReceiptStore receiptStore,
                           ProgramInvokeFactory programInvokeFactory, Block executionBlock,
                           EthereumListener listener, long gasUsedInTheBlock) {
    this.config = config;
    this.tx = tx;
    this.txindex = txindex;
    this.coinbase = coinbase;
    this.track = track;
    this.cacheTrack = track.startTracking();
    this.blockStore = blockStore;
    this.receiptStore = receiptStore;
    this.programInvokeFactory = programInvokeFactory;
    this.executionBlock = executionBlock;
    this.listener = listener;
    this.gasUsedInTheBlock = gasUsedInTheBlock;
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:17,代码来源:TransactionExecutor.java

示例8: fastSyncCleanUp

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
public void fastSyncCleanUp() {
    byte[] fastsyncStageBytes = blockchainDB().get(FastSyncManager.FASTSYNC_DB_KEY_SYNC_STAGE);
    if (fastsyncStageBytes == null) return; // no uncompleted fast sync

    EthereumListener.SyncState syncStage = EthereumListener.SyncState.values()[fastsyncStageBytes[0]];

    if (!systemProperties().isFastSyncEnabled() || syncStage == EthereumListener.SyncState.UNSECURE) {
        // we need to cleanup state/blocks/tranasaction DBs when previous fast sync was not complete:
        // - if we now want to do regular sync
        // - if the first fastsync stage was not complete (thus DBs are not in consistent state)

        logger.warn("Last fastsync was interrupted. Removing inconsistent DBs...");

        DbSource bcSource = blockchainDB();
        resetDataSource(bcSource);
    }
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:18,代码来源:CommonConfig.java

示例9: syncSecure

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
private void syncSecure() {
    pivot = new BlockHeader(blockchainDB.get(FASTSYNC_DB_KEY_PIVOT));

    logger.info("FastSync: downloading headers from pivot down to genesis block for ensure pivot block (" + pivot.getShortDescr() + ") is secure...");
    headersDownloader = applicationContext.getBean(HeadersDownloader.class);
    headersDownloader.init(pivot.getHash());
    setSyncStage(EthereumListener.SyncState.SECURE);
    headersDownloader.waitForStop();
    if (!FastByteComparisons.equal(headersDownloader.getGenesisHash(), config.getGenesis().getHash())) {
        logger.error("FASTSYNC FATAL ERROR: after downloading header chain starting from the pivot block (" +
                pivot.getShortDescr() + ") obtained genesis block doesn't match ours: " + Hex.toHexString(headersDownloader.getGenesisHash()));
        logger.error("Can't recover and exiting now. You need to restart from scratch (all DBs will be reset)");
        System.exit(-666);
    }
    dbFlushManager.commit();
    dbFlushManager.flush();
    logger.info("FastSync: all headers downloaded. The state is SECURE now.");
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:19,代码来源:FastSyncManager.java

示例10: initRegularSync

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
void initRegularSync(EthereumListener.SyncState syncDoneType) {
    logger.info("Initializing SyncManager regular sync.");
    this.syncDoneType = syncDoneType;

    syncQueue = new SyncQueueImpl(blockchain);
    super.init(syncQueue, pool);

    Runnable queueProducer = new Runnable(){

        @Override
        public void run() {
            produceQueue();
        }
    };

    syncQueueThread = new Thread (queueProducer, "SyncQueueThread");
    syncQueueThread.start();
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:19,代码来源:SyncManager.java

示例11: TransactionExecutor

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
public TransactionExecutor(Transaction tx, byte[] coinbase, Repository track, BlockStore blockStore,
                           ProgramInvokeFactory programInvokeFactory, Block currentBlock,
                           EthereumListener listener, long gasUsedInTheBlock) {

    this.tx = tx;
    this.coinbase = coinbase;
    this.track = track;
    this.cacheTrack = track.startTracking();
    this.blockStore = blockStore;
    this.programInvokeFactory = programInvokeFactory;
    this.currentBlock = currentBlock;
    this.listener = listener;
    this.gasUsedInTheBlock = gasUsedInTheBlock;
    this.m_endGas = toBI(tx.getGasLimit());
    withCommonConfig(CommonConfig.getDefault());
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:17,代码来源:TransactionExecutor.java

示例12: onPendingTransactionUpdate

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
private void onPendingTransactionUpdate(TransactionReceipt txReceipt, EthereumListener.PendingTransactionState state, Block block) {
    byte[] txHash = txReceipt.getTransaction().getHash();
    Pair<Long, TransactionResultDTO> removed = remoteTxs.remove(txHash);
    if (state == EthereumListener.PendingTransactionState.DROPPED) {
        if (localTxs.remove(txHash) != null) {
            System.out.println("Dropped due to timeout (matchned: " + (removed != null) + "): " + Hex.toHexString(txHash));
        } else {
            if (remoteTxs.containsKey(txHash)) {
                System.err.println("Dropped but matching: "  + Hex.toHexString(txHash) + ": \n" + txReceipt);
            }
        }
    } else if (state == EthereumListener.PendingTransactionState.NEW_PENDING) {
        System.out.println("Local: " + Hex.toHexString(txHash));
        if (removed == null) {
            localTxs.put(txHash, Triple.of(System.currentTimeMillis(), txReceipt, state));
        } else {
            System.out.println("Tx matched: " + Hex.toHexString(txHash));
        }
    }
    checkUnmatched();
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:22,代码来源:PendingTxMonitor.java

示例13: testBlockOnlyIncluded

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Test
public void testBlockOnlyIncluded() throws InterruptedException {
    StandaloneBlockchain bc = new StandaloneBlockchain();
    PendingListener l = new PendingListener();
    bc.addEthereumListener(l);
    Triple<TransactionReceipt, EthereumListener.PendingTransactionState, Block> txUpd = null;
    PendingStateImpl pendingState = (PendingStateImpl) bc.getBlockchain().getPendingState();

    ECKey alice = new ECKey();
    ECKey bob = new ECKey();

    bc.sendEther(bob.getAddress(), convert(100, ETHER));

    Block b1 = bc.createBlock();

    Transaction tx1 = bc.createTransaction(bob, 0, alice.getAddress(), BigInteger.valueOf(1000000), new byte[0]);
    bc.submitTransaction(tx1);
    Block b2 = bc.createBlock();

    Block b2_ = bc.createForkBlock(b1);
    Assert.assertTrue(l.getQueueFor(tx1).isEmpty());
    Block b3_ = bc.createForkBlock(b2_);
    txUpd = l.pollTxUpdate(tx1);
    Assert.assertEquals(txUpd.getMiddle(), PENDING);
}
 
开发者ID:Aptoide,项目名称:AppCoins-ethereumj,代码行数:26,代码来源:PendingStateTest.java

示例14: findOnlinePeer

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Override
public PeerInfo findOnlinePeer(Set<PeerInfo> excludePeers)  {
    logger.info("Looking for online peers...");

    final EthereumListener listener = WorldManager.getInstance().getListener();
    if (listener != null) {
        listener.trace("Looking for online peer");
    }

    WorldManager.getInstance().startPeerDiscovery();

    final Set<PeerInfo> peers = WorldManager.getInstance().getPeerDiscovery().getPeers();
    synchronized (peers) {
        for (PeerInfo peer : peers) { // it blocks until a peer is available.
if (peer.isOnline() && !excludePeers.contains(peer)) {
                logger.info("Found peer: {}", peer.toString());
                if (listener != null)
                    listener.trace(String.format("Found online peer: [ %s ]", peer.toString()));
                return peer;
            }
        }
    }
    return null;
}
 
开发者ID:ethereumj,项目名称:ethereumj,代码行数:25,代码来源:EthereumImpl.java

示例15: decode

import org.ethereum.listener.EthereumListener; //导入依赖的package包/类
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {

	if (!isValidEthereumPacket(in)) {
		return;
	}

	byte[] encoded = new byte[in.readInt()];
	in.readBytes(encoded);

	if (loggerWire.isDebugEnabled())
		loggerWire.debug("Encoded: [{}]", Hex.toHexString(encoded));

	Message msg = MessageFactory.createMessage(encoded);

	if (loggerNet.isInfoEnabled())
           loggerNet.info("From: \t{} \tRecv: \t{}", ctx.channel().remoteAddress(), msg);

	out.add(msg);
       in.markReaderIndex();

       EthereumListener ethereumListener = WorldManager.getInstance().getListener();
       if (ethereumListener != null) {
           ethereumListener.onRecvMessage(msg);
       }
   }
 
开发者ID:ethereumj,项目名称:ethereumj,代码行数:27,代码来源:MessageDecoder.java


注:本文中的org.ethereum.listener.EthereumListener类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。