Browse Source

Fixed compiling error;

tags/1.1.0
huanghaiquan 5 years ago
parent
commit
d425e2cb26
7 changed files with 128 additions and 21 deletions
  1. +1
    -0
      source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/BytesEncodingTest.java
  2. +0
    -1
      source/pom.xml
  3. +95
    -11
      source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java
  4. +5
    -4
      source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java
  5. +5
    -1
      source/tools/tools-mocker/pom.xml
  6. +19
    -1
      source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java
  7. +3
    -3
      source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerContractExeHandle.java

+ 1
- 0
source/ledger/ledger-model/src/test/java/test/com/jd/blockchain/ledger/BytesEncodingTest.java View File

@@ -6,6 +6,7 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.junit.Test;
import org.mockito.Mockito;
import com.jd.blockchain.utils.io.BytesEncoding;
import com.jd.blockchain.utils.io.NumberMask;


+ 0
- 1
source/pom.xml View File

@@ -130,7 +130,6 @@
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>

<!-- The thirdpart dependency -->


+ 95
- 11
source/test/test-integration/src/main/java/test/com/jd/blockchain/intgr/perf/LedgerPerformanceTest.java View File

@@ -7,19 +7,21 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.DoubleStream;

import com.jd.blockchain.crypto.*;
import com.jd.blockchain.ledger.core.CryptoConfig;
import com.jd.blockchain.ledger.core.DefaultOperationHandleRegisteration;

import org.springframework.core.io.ClassPathResource;

import com.jd.blockchain.binaryproto.DataContractRegistry;
import com.jd.blockchain.consensus.ConsensusProvider;
import com.jd.blockchain.consensus.ConsensusProviders;
import com.jd.blockchain.consensus.ConsensusSettings;
import com.jd.blockchain.crypto.AsymmetricKeypair;
import com.jd.blockchain.crypto.Crypto;
import com.jd.blockchain.crypto.CryptoAlgorithm;
import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.crypto.PrivKey;
import com.jd.blockchain.ledger.BlockchainIdentity;
import com.jd.blockchain.ledger.BlockchainKeyGenerator;
import com.jd.blockchain.ledger.BlockchainKeypair;
@@ -28,14 +30,21 @@ import com.jd.blockchain.ledger.DataAccountKVSetOperation;
import com.jd.blockchain.ledger.DataAccountRegisterOperation;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInitOperation;
import com.jd.blockchain.ledger.LedgerPermission;
import com.jd.blockchain.ledger.LedgerSecurityException;
import com.jd.blockchain.ledger.TransactionPermission;
import com.jd.blockchain.ledger.TransactionRequest;
import com.jd.blockchain.ledger.TransactionRequestBuilder;
import com.jd.blockchain.ledger.TransactionResponse;
import com.jd.blockchain.ledger.UserRegisterOperation;
import com.jd.blockchain.ledger.core.DefaultOperationHandleRegisteration;
import com.jd.blockchain.ledger.core.LedgerDataset;
import com.jd.blockchain.ledger.core.LedgerEditor;
import com.jd.blockchain.ledger.core.LedgerManager;
import com.jd.blockchain.ledger.core.LedgerRepository;
import com.jd.blockchain.ledger.core.LedgerSecurityManager;
import com.jd.blockchain.ledger.core.MultiIdsPolicy;
import com.jd.blockchain.ledger.core.SecurityPolicy;
import com.jd.blockchain.ledger.core.TransactionBatchProcessor;
import com.jd.blockchain.service.TransactionBatchResultHandle;
import com.jd.blockchain.storage.service.DbConnectionFactory;
@@ -51,6 +60,7 @@ import com.jd.blockchain.tools.initializer.web.LedgerInitConsensusService;
import com.jd.blockchain.tools.keygen.KeyGenCommand;
import com.jd.blockchain.transaction.TxBuilder;
import com.jd.blockchain.utils.ArgumentSet;
import com.jd.blockchain.utils.Bytes;
import com.jd.blockchain.utils.ConsoleUtils;
import com.jd.blockchain.utils.concurrent.ThreadInvoker.AsyncCallback;
import com.jd.blockchain.utils.io.FileUtils;
@@ -90,6 +100,8 @@ public class LedgerPerformanceTest {
DataContractRegistry.register(DataAccountKVSetOperation.class);
}

public static final LedgerSecurityManager DEFAULT_SECURITY_MANAGER = new FreedomLedgerSecurityManager();

public static void test(String[] args) {
NodeContext[] nodes = null;
try {
@@ -281,8 +293,8 @@ public class LedgerPerformanceTest {
LedgerBlock latestBlock = ledger.getLatestBlock();
LedgerDataset previousDataSet = ledger.getDataSet(latestBlock);
LedgerEditor newEditor = ledger.createNextBlock();
TransactionBatchProcessor txProc = new TransactionBatchProcessor(newEditor, previousDataSet, opHandler,
ledgerManager);
TransactionBatchProcessor txProc = new TransactionBatchProcessor(DEFAULT_SECURITY_MANAGER, newEditor,
previousDataSet, opHandler, ledgerManager);

// 准备请求
int totalCount = batchSize * batchCount;
@@ -319,8 +331,8 @@ public class LedgerPerformanceTest {
long startTs = System.currentTimeMillis();

LedgerEditor newEditor = ledger.createNextBlock();
TransactionBatchProcessor txProc = new TransactionBatchProcessor(newEditor, previousDataSet, opHandler,
ledgerManager);
TransactionBatchProcessor txProc = new TransactionBatchProcessor(DEFAULT_SECURITY_MANAGER, newEditor,
previousDataSet, opHandler, ledgerManager);

testTxExec(txList, i * batchSize, batchSize, txProc);

@@ -496,9 +508,8 @@ public class LedgerPerformanceTest {
LedgerInitProperties initSetting = loadInitSetting();
Properties props = loadConsensusSetting(config);
ConsensusProvider csProvider = getConsensusProvider(provider);
ConsensusSettings csProps = csProvider.getSettingsFactory()
.getConsensusSettingsBuilder()
.createSettings(props, Utils.loadParticipantNodes());
ConsensusSettings csProps = csProvider.getSettingsFactory().getConsensusSettingsBuilder().createSettings(props,
Utils.loadParticipantNodes());

DBSetting dbsetting0;
DBSetting dbsetting1;
@@ -632,4 +643,77 @@ public class LedgerPerformanceTest {
}

}

private static class FreedomLedgerSecurityManager implements LedgerSecurityManager {

public static final FreedomLedgerSecurityManager INSTANCE = new FreedomLedgerSecurityManager();

@Override
public SecurityPolicy createSecurityPolicy(Set<Bytes> endpoints, Set<Bytes> nodes) {
return new FreedomSecurityPolicy(endpoints, nodes);
}

}

private static class FreedomSecurityPolicy implements SecurityPolicy {

private Set<Bytes> endpoints;
private Set<Bytes> nodes;

public FreedomSecurityPolicy(Set<Bytes> endpoints, Set<Bytes> nodes) {
this.endpoints = endpoints;
this.nodes = nodes;
}

@Override
public Set<Bytes> getEndpoints() {
return endpoints;
}

@Override
public Set<Bytes> getNodes() {
return nodes;
}

@Override
public boolean isEnableToEndpoints(LedgerPermission permission, MultiIdsPolicy midPolicy) {
return true;
}

@Override
public boolean isEnableToEndpoints(TransactionPermission permission, MultiIdsPolicy midPolicy) {
return true;
}

@Override
public boolean isEnableToNodes(LedgerPermission permission, MultiIdsPolicy midPolicy) {
return true;
}

@Override
public boolean isEnableToNodes(TransactionPermission permission, MultiIdsPolicy midPolicy) {
// TODO Auto-generated method stub
return false;
}

@Override
public void checkEndpoints(LedgerPermission permission, MultiIdsPolicy midPolicy)
throws LedgerSecurityException {
}

@Override
public void checkEndpoints(TransactionPermission permission, MultiIdsPolicy midPolicy)
throws LedgerSecurityException {
}

@Override
public void checkNodes(LedgerPermission permission, MultiIdsPolicy midPolicy) throws LedgerSecurityException {
}

@Override
public void checkNodes(TransactionPermission permission, MultiIdsPolicy midPolicy)
throws LedgerSecurityException {
}

}
}

+ 5
- 4
source/test/test-integration/src/test/java/test/com/jd/blockchain/intgr/ledger/LedgerBlockGeneratingTest.java View File

@@ -45,6 +45,7 @@ import com.jd.blockchain.utils.net.NetworkAddress;
import test.com.jd.blockchain.intgr.PresetAnswerPrompter;
import test.com.jd.blockchain.intgr.initializer.LedgerInitializeTest;
import test.com.jd.blockchain.intgr.initializer.LedgerInitializeTest.NodeContext;
import test.com.jd.blockchain.intgr.perf.LedgerPerformanceTest;
import test.com.jd.blockchain.intgr.perf.Utils;

public class LedgerBlockGeneratingTest {
@@ -81,7 +82,8 @@ public class LedgerBlockGeneratingTest {
long startTs = System.currentTimeMillis();

LedgerEditor newEditor = ledger.createNextBlock();
TransactionBatchProcessor txProc = new TransactionBatchProcessor(newEditor, previousDataSet, opHandler,
TransactionBatchProcessor txProc = new TransactionBatchProcessor(
LedgerPerformanceTest.DEFAULT_SECURITY_MANAGER, newEditor, previousDataSet, opHandler,
ledgerManager);

testTxExec(txList, i * batchSize, batchSize, txProc);
@@ -129,9 +131,8 @@ public class LedgerBlockGeneratingTest {
LedgerInitProperties initSetting = loadInitSetting();
Properties props = loadConsensusSetting();
ConsensusProvider csProvider = getConsensusProvider();
ConsensusSettings csProps = csProvider.getSettingsFactory()
.getConsensusSettingsBuilder()
.createSettings(props, Utils.loadParticipantNodes());
ConsensusSettings csProps = csProvider.getSettingsFactory().getConsensusSettingsBuilder().createSettings(props,
Utils.loadParticipantNodes());

NodeContext node0 = new NodeContext(initSetting.getConsensusParticipant(0).getInitializerAddress(),
serviceRegisterMap);


+ 5
- 1
source/tools/tools-mocker/pom.xml View File

@@ -39,7 +39,11 @@
<artifactId>crypto-classic</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<build>


+ 19
- 1
source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/MockerNodeContext.java View File

@@ -1,6 +1,8 @@
package com.jd.blockchain.mocker;

import static java.lang.reflect.Proxy.newProxyInstance;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;

import java.text.SimpleDateFormat;
import java.util.Date;
@@ -8,6 +10,8 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.mockito.Mockito;

import com.jd.blockchain.binaryproto.DataContractRegistry;
import com.jd.blockchain.consensus.ClientIdentification;
import com.jd.blockchain.consensus.ClientIdentifications;
@@ -443,11 +447,25 @@ public class MockerNodeContext implements BlockchainQueryService {
return reqBuilder.buildRequest();
}

private static LedgerSecurityManager getSecurityManager() {
LedgerSecurityManager securityManager = Mockito.mock(LedgerSecurityManager.class);

SecurityPolicy securityPolicy = Mockito.mock(SecurityPolicy.class);
when(securityPolicy.isEnableToEndpoints(any(LedgerPermission.class), any())).thenReturn(true);
when(securityPolicy.isEnableToEndpoints(any(TransactionPermission.class), any())).thenReturn(true);
when(securityPolicy.isEnableToNodes(any(LedgerPermission.class), any())).thenReturn(true);
when(securityPolicy.isEnableToNodes(any(TransactionPermission.class), any())).thenReturn(true);

when(securityManager.createSecurityPolicy(any(), any())).thenReturn(securityPolicy);

return securityManager;
}

public OperationResult[] txProcess(TransactionRequest txRequest) {
LedgerEditor newEditor = ledgerRepository.createNextBlock();
LedgerBlock latestBlock = ledgerRepository.getLatestBlock();
LedgerDataset previousDataSet = ledgerRepository.getDataSet(latestBlock);
TransactionBatchProcessor txProc = new TransactionBatchProcessor(newEditor,
TransactionBatchProcessor txProc = new TransactionBatchProcessor(getSecurityManager(), newEditor,
previousDataSet, opHandler, ledgerManager);
TransactionResponse txResp = txProc.schedule(txRequest);
TransactionBatchResultHandle handle = txProc.prepare();


+ 3
- 3
source/tools/tools-mocker/src/main/java/com/jd/blockchain/mocker/handler/MockerContractExeHandle.java View File

@@ -29,11 +29,11 @@ public class MockerContractExeHandle implements OperationHandle {
private HashDigest ledgerHash;

@Override
public BytesValue process(Operation op, LedgerDataset dataset, TransactionRequestExtension requestContext,
public BytesValue process(Operation op, LedgerDataset dataset, TransactionRequestExtension request,
LedgerDataset previousBlockDataset, OperationHandleContext opHandleContext, LedgerService ledgerService) {
ContractEventSendOperation contractOP = (ContractEventSendOperation) op;

HashDigest txHash = requestContext.getRequest().getTransactionContent().getHash();
HashDigest txHash = request.getTransactionContent().getHash();

ExecutorProxy executorProxy = executorProxyMap.get(txHash);

@@ -43,7 +43,7 @@ public class MockerContractExeHandle implements OperationHandle {
ContractLedgerContext ledgerContext = new ContractLedgerContext(queryService, opHandleContext);

MockerContractEventContext contractEventContext = new MockerContractEventContext(ledgerHash,
contractOP.getEvent(), requestContext.getRequest(), ledgerContext);
contractOP.getEvent(), request, ledgerContext);

Object instance = executorProxy.getInstance();
EventProcessingAware awire = null;


Loading…
Cancel
Save