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);
}
}
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;
}
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));
}
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();
}
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;
}
Aggregations