Search in sources :

Example 1 with Config

use of com.icodici.universa.node2.Config in project universa by UniversaBlockchain.

the class TopologyTest method init.

@Before
public void init() throws IOException {
    config1 = new NetConfig();
    for (int i = 0; i < 30; i++) {
        config1.addNode(new NodeInfo(TestKeys.publicKey(i), i + 1, "node" + i, "127.0.0.1", null, "localhost", 27000 + i, 8000 + i, 9000 + i));
    }
    servers = new ArrayList<>();
    Config cfg = new Config();
    for (int i = 0; i < 30; i++) {
        servers.add(new ClientHTTPServer(TestKeys.privateKey(i), config1.getInfo(i + 1).getClientAddress().getPort(), null));
        servers.get(i).setConfig(cfg);
        servers.get(i).setNetConfig(config1);
    }
}
Also used : ClientHTTPServer(com.icodici.universa.node2.network.ClientHTTPServer) Before(org.junit.Before)

Example 2 with Config

use of com.icodici.universa.node2.Config in project universa by UniversaBlockchain.

the class CLIMainTest method createMain.

static Main createMain(String name, boolean nolog) throws InterruptedException {
    String path = new File("src/test_node_config_v2/" + name).getAbsolutePath();
    System.out.println(path);
    String[] args = new String[] { "--test", "--config", path, nolog ? "--nolog" : "" };
    Main main = new Main(args);
    try {
        main.config.addTransactionUnitsIssuerKeyData(new KeyAddress("Zau3tT8YtDkj3UDBSznrWHAjbhhU4SXsfQLWDFsv5vw24TLn6s"));
    } catch (KeyAddress.IllegalAddressException e) {
        e.printStackTrace();
    }
    try {
        // main.config.getKeysWhiteList().add(CLIMain.getPrivateKey().getPublicKey());
        main.config.getAddressesWhiteList().add(new KeyAddress(CLIMain.getPrivateKey().getPublicKey(), 0, true));
    } catch (IOException e) {
        e.printStackTrace();
    }
    // main.config.getKeysWhiteList().add(main.config.getUIssuerKey());
    main.waitReady();
    return main;
}
Also used : KeyAddress(com.icodici.crypto.KeyAddress) IOException(java.io.IOException) File(java.io.File) Main(com.icodici.universa.node2.Main)

Example 3 with Config

use of com.icodici.universa.node2.Config in project universa by UniversaBlockchain.

the class PostgresLedgerTest method paymentSaveTest.

@Test
public void paymentSaveTest() throws Exception {
    try (PooledDb db = (PooledDb) ledger.getDb()) {
        try (PreparedStatement statement = db.statement("delete from payments_summary;")) {
            statement.executeUpdate();
        }
    }
    NodeStats stats = new NodeStats();
    Config config = new Config();
    stats.init(ledger, config);
    ZonedDateTime now = ZonedDateTime.now();
    ZonedDateTime dateTime = now.minusDays(now.getDayOfMonth() - 1).minusMonths(1);
    while (dateTime.isBefore(ZonedDateTime.now().plusSeconds(1))) {
        ledger.savePayment(100, dateTime);
        ledger.savePayment(100, dateTime);
        dateTime = dateTime.plusDays(1);
    }
    stats.collect(ledger, config);
// assertEquals(stats.todayPaidAmount,200);
// assertEquals(stats.yesterdayPaidAmount,200);
// assertEquals(stats.thisMonthPaidAmount,200*now.getDayOfMonth());
// assertEquals(stats.lastMonthPaidAmount,200*now.minusMonths(1).getMonth().length(now.getYear() % 4 == 0));
}
Also used : NodeStats(com.icodici.universa.node2.NodeStats) PooledDb(com.icodici.db.PooledDb) ZonedDateTime(java.time.ZonedDateTime) Config(com.icodici.universa.node2.Config) PreparedStatement(java.sql.PreparedStatement) Test(org.junit.Test)

Example 4 with Config

use of com.icodici.universa.node2.Config in project universa by UniversaBlockchain.

the class ClientHTTPServer method startApproval.

private Binder startApproval(final Binder params, Session session) throws IOException, Quantiser.QuantiserException {
    if (config == null || config.limitFreeRegistrations())
        if (config == null || (!config.getKeysWhiteList().contains(session.getPublicKey()) && !config.getAddressesWhiteList().stream().anyMatch(addr -> addr.isMatchingKey(session.getPublicKey())))) {
            System.out.println("startApproval ERROR: session key shoild be in the white list");
            return Binder.of("itemResult", itemResultOfError(Errors.BAD_CLIENT_KEY, "startApproval", "command needs client key from whitelist"));
        }
    int n = asyncStarts.incrementAndGet();
    AtomicInteger k = new AtomicInteger();
    params.getListOrThrow("packedItems").forEach((item) -> es.execute(() -> {
        try {
            checkNode(session);
            System.out.println("Request to start registration #" + n + ":" + k.incrementAndGet());
            node.registerItem(Contract.fromPackedTransaction(((Bytes) item).toArray()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }));
    // TODO: return ItemResult
    return new Binder();
}
Also used : HttpURLConnection(java.net.HttpURLConnection) NonNull(org.checkerframework.checker.nullness.qual.NonNull) java.util(java.util) StateRecord(com.icodici.universa.node.StateRecord) URL(java.net.URL) Binder(net.sergeych.tools.Binder) BasicHTTPService(com.icodici.universa.node.network.BasicHTTPService) ErrorRecord(com.icodici.universa.ErrorRecord) BigDecimal(java.math.BigDecimal) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) QuorumVoteRole(com.icodici.universa.contract.roles.QuorumVoteRole) com.icodici.universa.contract(com.icodici.universa.contract) ConnectException(java.net.ConnectException) ItemResult(com.icodici.universa.node.ItemResult) PrivateKey(com.icodici.crypto.PrivateKey) com.icodici.universa.node2(com.icodici.universa.node2) com.icodici.universa.contract.services(com.icodici.universa.contract.services) java.util.concurrent(java.util.concurrent) KeyAddress(com.icodici.crypto.KeyAddress) Do(net.sergeych.tools.Do) IOException(java.io.IOException) Bytes(net.sergeych.utils.Bytes) Collectors(java.util.stream.Collectors) ItemState(com.icodici.universa.node.ItemState) Approvable(com.icodici.universa.Approvable) BufferedLogger(net.sergeych.tools.BufferedLogger) HashId(com.icodici.universa.HashId) Errors(com.icodici.universa.Errors) Boss(net.sergeych.boss.Boss) Binder(net.sergeych.tools.Binder) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ConnectException(java.net.ConnectException) IOException(java.io.IOException)

Example 5 with Config

use of com.icodici.universa.node2.Config in project universa by UniversaBlockchain.

the class Node method checkKeyLimit.

/**
 * Checks limit of requests for key.
 *
 * @param key for checking limit of requests
 *
 * @return result of checking
 */
public boolean checkKeyLimit(PublicKey key) {
    if ((config == null) || config.getNetworkAdminKeyAddress().isMatchingKey(key) || getNodeKey().equals(key) || config.getKeysWhiteList().contains(key) || config.getAddressesWhiteList().stream().anyMatch(addr -> addr.isMatchingKey(key)))
        return true;
    synchronized (epochMinute) {
        long currentEpochMinute = ZonedDateTime.now().toEpochSecond() / 60;
        if (epochMinute != currentEpochMinute) {
            keyRequests.clear();
            epochMinute = currentEpochMinute;
        }
        ZonedDateTime expiredUnlimit = keysUnlimited.getOrDefault(key, null);
        if (expiredUnlimit != null) {
            if (expiredUnlimit.isBefore(ZonedDateTime.now()))
                keysUnlimited.remove(key);
            else
                return true;
        }
        int requests = keyRequests.getOrDefault(key, 0);
        if (requests >= config.getLimitRequestsForKeyPerMinute())
            return false;
        keyRequests.put(key, requests + 1);
    }
    return true;
}
Also used : NMutableEnvironment(com.icodici.universa.contract.services.NMutableEnvironment) NonNull(org.checkerframework.checker.nullness.qual.NonNull) java.util(java.util) ModifyDataPermission(com.icodici.universa.contract.permissions.ModifyDataPermission) com.icodici.universa.node(com.icodici.universa.node) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ZonedDateTime(java.time.ZonedDateTime) SimpleDateFormat(java.text.SimpleDateFormat) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) UBotTools(com.icodici.universa.ubot.UBotTools) NImmutableEnvironment(com.icodici.universa.contract.services.NImmutableEnvironment) Supplier(java.util.function.Supplier) ChangeOwnerPermission(com.icodici.universa.contract.permissions.ChangeOwnerPermission) net.sergeych.tools(net.sergeych.tools) NSmartContract(com.icodici.universa.contract.services.NSmartContract) Base64u(net.sergeych.utils.Base64u) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) QuorumVoteRole(com.icodici.universa.contract.roles.QuorumVoteRole) com.icodici.universa.contract(com.icodici.universa.contract) Duration(java.time.Duration) com.icodici.universa.node2.network(com.icodici.universa.node2.network) BigInteger(java.math.BigInteger) Path(java.nio.file.Path) Nullable(org.checkerframework.checker.nullness.qual.Nullable) Role(com.icodici.universa.contract.roles.Role) LogPrinter(net.sergeych.utils.LogPrinter) ListRole(com.icodici.universa.contract.roles.ListRole) com.icodici.crypto(com.icodici.crypto) Files(java.nio.file.Files) com.icodici.universa.contract.services(com.icodici.universa.contract.services) java.util.concurrent(java.util.concurrent) StandardOpenOption(java.nio.file.StandardOpenOption) IOException(java.io.IOException) ContractSubscription(com.icodici.universa.contract.services.ContractSubscription) Bytes(net.sergeych.utils.Bytes) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) File(java.io.File) ZoneId(java.time.ZoneId) com.icodici.universa(com.icodici.universa) MutableEnvironment(com.icodici.universa.contract.services.MutableEnvironment) Consumer(java.util.function.Consumer) Permission(com.icodici.universa.contract.permissions.Permission) DefaultBiMapper(net.sergeych.biserializer.DefaultBiMapper) RoleLink(com.icodici.universa.contract.roles.RoleLink) Boss(net.sergeych.boss.Boss) ZonedDateTime(java.time.ZonedDateTime)

Aggregations

Config (sun.security.krb5.Config)8 Test (org.junit.Test)7 IOException (java.io.IOException)6 Config (simplelibrary.config2.Config)6 KeyAddress (com.icodici.crypto.KeyAddress)5 File (java.io.File)5 TimeoutException (java.util.concurrent.TimeoutException)4 Before (org.junit.Before)3 Timeout (akka.util.Timeout)2 PrivateKey (com.icodici.crypto.PrivateKey)2 com.icodici.universa.contract (com.icodici.universa.contract)2 QuorumVoteRole (com.icodici.universa.contract.roles.QuorumVoteRole)2 com.icodici.universa.contract.services (com.icodici.universa.contract.services)2 Config (com.icodici.universa.node2.Config)2 EventExecutor (io.netty.util.concurrent.EventExecutor)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 ZonedDateTime (java.time.ZonedDateTime)2 java.util (java.util)2 HashSet (java.util.HashSet)2 java.util.concurrent (java.util.concurrent)2