private void pulseStartCleanup() { lowPrioExecutorService.scheduleAtFixedRate(() -> ledger.cleanup(config.isPermanetMode()),1,config.getMaxDiskCacheAge().getSeconds(),TimeUnit.SECONDS); lowPrioExecutorService.scheduleAtFixedRate(() -> ledger.removeExpiredStoragesAndSubscriptionsCascade(),config.getExpriedStorageCleanupInterval().getSeconds(),config.getExpriedStorageCleanupInterval().getSeconds(),TimeUnit.SECONDS); lowPrioExecutorService.scheduleAtFixedRate(() -> ledger.clearExpiredNameRecords(config.getHoldDuration()),config.getExpriedNamesCleanupInterval().getSeconds(),config.getExpriedNamesCleanupInterval().getSeconds(),TimeUnit.SECONDS); }
/** * Get the keeping item from random network node. Only for permanet network mode. * * @param itemId is {@link HashId} of the looking item * * @return keeping item or null if it is missing */ public Approvable getKeepingItemFromNetwork(HashId itemId) { if (!config.isPermanetMode()) return null; try { NodeInfo source = Do.sample(network.allNodes()); Approvable item = network.getItem(itemId, source, config.getMaxGetItemTime()); if (item != null) return item; } catch (InterruptedException e) { e.printStackTrace(); } return null; }
config_s.setPermanetMode(true); assertTrue(config_s.isPermanetMode());
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
if (config.isPermanetMode()) synchronized (mutex) { ledger.putKeepingItem(record, item);
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
private Binder getContract(Binder params, Session session) throws IOException { checkNode(session, true); Binder res = new Binder(); if (!node.getConfig().isPermanetMode()) return res; HashId origin = (HashId) params.get("origin"); int limit = params.getInt("limit", 100); if (limit > node.getConfig().getQueryContractsLimit()) limit = node.getConfig().getQueryContractsLimit(); if (limit < 1) limit = 1; Object keeping = node.getLedger().getKeepingByOrigin(origin, limit); if (keeping == null) return res; if (keeping instanceof byte[]) res.put("packedContract", keeping); else if (keeping instanceof List) res.put("contractIds", keeping); return res; }
data = node.getLedger().getContractInStorage(id); if ((data == null) && node.getConfig().isPermanetMode()) data = node.getLedger().getKeepingItem(id);
private Binder getBody(Binder params, Session session) throws IOException { checkNode(session, true); Binder res = new Binder(); if (!node.getConfig().isPermanetMode()) return res; HashId itemId = (HashId) params.get("itemId"); byte[] body = node.getLedger().getKeepingItem(itemId); if (body != null) { res.put("packedContract", body); return res; } node.resync(itemId); ItemResult itemResult = node.checkItem(itemId); if (itemResult == ItemResult.UNDEFINED) return res; Approvable item = node.getKeepingItemFromNetwork(itemId); if (item == null) return res; if ((item instanceof Contract) && (item.getId().equals(itemId)) && (HashId.of(((Contract) item).getLastSealedBinary()).equals(itemId))) { StateRecord record = node.getLedger().getRecord(itemId); node.getLedger().putKeepingItem(record, item); body = ((Contract) item).getPackedTransaction(); res.put("packedContract", body); } return res; }
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
if (config.isPermanetMode()) synchronized (mutex) { ledger.putKeepingItem(record, newItem);
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
Client client = new Client(TestKeys.privateKey(20), main.myInfo, null); assertTrue(main.config.isPermanetMode()); for (int i = 1; i < 4; i++) assertTrue(mm.get(i).config.isPermanetMode()); assertTrue(main.config.isPermanetMode());
assertEquals(config.getUIssuerName(), copyConfig.getUIssuerName()); assertEquals(config.getQueryContractsLimit(), copyConfig.getQueryContractsLimit()); assertEquals(config.isPermanetMode(), copyConfig.isPermanetMode()); assertEquals(config.getFollowerCallbackExpiration(), copyConfig.getFollowerCallbackExpiration()); assertEquals(config.getFollowerCallbackDelay(), copyConfig.getFollowerCallbackDelay());