chore: tools crap update

This commit is contained in:
ppedziwiatr
2022-01-18 18:56:45 +01:00
parent 63b3ad51ee
commit e5a171a2a1
9 changed files with 7720 additions and 71 deletions

View File

@@ -1,29 +1,31 @@
/* eslint-disable */
import Arweave from 'arweave';
import {
BenchmarkStats,
LoggerFactory,
MemCache,
RedstoneGatewayContractDefinitionLoader,
RedstoneGatewayInteractionsLoader,
SmartWeaveNodeFactory,
SmartWeaveWebFactory
SmartWeaveNodeFactory
} from '../src';
import { max, mean, median, min, standardDeviation, variance } from 'simple-statistics';
import * as path from 'path';
import * as fs from 'fs';
import knex from 'knex';
import os from "os";
const logger = LoggerFactory.INST.create('Contract');
LoggerFactory.INST.logLevel('fatal');
LoggerFactory.INST.logLevel('info', 'ArweaveGatewayInteractionsLoader');
LoggerFactory.INST.logLevel('debug', 'ArweaveWrapper');
LoggerFactory.INST.logLevel('info', 'Contract');
async function main() {
printTestInfo();
const PIANITY_CONTRACT = 'SJ3l7474UHh3Dw6dWVT1bzsJ-8JvOewtGoDdOecWIZo';
const PIANITY_COMMUNITY_CONTRACT = 'n05LTiuWcAYjizXAu-ghegaWjL89anZ6VdvuHcU6dno';
const CACHE_PATH = 'cache.sqlite.db';
const heapUsedBefore = Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100;
const rssUsedBefore = Math.round((process.memoryUsage().rss / 1024 / 1024) * 100) / 100;
const arweave = Arweave.init({
host: 'arweave.net', // Hostname or IP address for a Arweave host
port: 443, // Port
@@ -32,80 +34,73 @@ async function main() {
logging: false // Enable network request logging
});
//const contractTxId = 'Daj-MNSnH55TDfxqC7v4eq0lKzVIwh98srUaWqyuZtY'; //844916
const contractTxId = 't9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE'; //749180
if (fs.existsSync(CACHE_PATH)) {
fs.rmSync(CACHE_PATH);
}
//const interactionsLoader = new FromFileInteractionsLoader(path.join(__dirname, 'data', 'interactions.json'));
// const smartweave = SmartWeaveWebFactory.memCachedBased(arweave).setInteractionsLoader(interactionsLoader).build();
/* const usedBefore = Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100
const contractR = smartweaveR.contract(contractTxId);
const {state, validity} = await contractR.readState();
const usedAfter = Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100
logger.warn("Heap used in MB", {
usedBefore,
usedAfter
});*/
const smartweave = (await SmartWeaveNodeFactory.knexCachedBased(
const smartweave = (
await SmartWeaveNodeFactory.knexCachedBased(
arweave,
knex({
client: 'pg',
connection: 'postgresql://postgres:wip3out1@localhost:5432/smartweave',
useNullAsDefault: true,
pool: {
min: 5,
max: 30,
createTimeoutMillis: 3000,
acquireTimeoutMillis: 30000,
idleTimeoutMillis: 30000,
reapIntervalMillis: 1000,
createRetryIntervalMillis: 100,
propagateCreateError: false
}
client: 'sqlite3',
connection: {
filename: CACHE_PATH
},
useNullAsDefault: true
})
)).setInteractionsLoader(
new RedstoneGatewayInteractionsLoader(
"https://gateway.redstone.finance",
{notCorrupted: true}
)
)
.setInteractionsLoader(
new RedstoneGatewayInteractionsLoader('https://gateway.redstone.finance', { notCorrupted: true })
)
.setDefinitionLoader(
new RedstoneGatewayContractDefinitionLoader(
"https://gateway.redstone.finance",
arweave,
new MemCache()
new RedstoneGatewayContractDefinitionLoader('https://gateway.redstone.finance', arweave, new MemCache())
)
).build();
.build();
const contract = smartweave.contract(PIANITY_CONTRACT);
await contract.readState();
/*const smartweaveR = SmartWeaveWebFactory
.memCachedBased(arweave, 1)
.build();*/
const contract2 = smartweave.contract(PIANITY_COMMUNITY_CONTRACT);
await contract2.readState();
const contract = smartweave.contract(contractTxId);
const readResult = await contract.readState();
const heapUsedAfter = Math.round((process.memoryUsage().heapUsed / 1024 / 1024) * 100) / 100;
const rssUsedAfter = Math.round((process.memoryUsage().rss / 1024 / 1024) * 100) / 100;
logger.warn('Heap used in MB', {
usedBefore: heapUsedBefore,
usedAfter: heapUsedAfter
});
logger.warn('RSS used in MB', {
usedBefore: rssUsedBefore,
usedAfter: rssUsedAfter
});
const result = contract.lastReadStateStats();
//fs.writeFileSync(path.join(__dirname, 'data', 'state.json'), stringify(readResult.state).trim());
logger.warn('total evaluation: ', result);
}
console.log('total evaluation: ' + result.total + 'ms');
function printTestInfo() {
console.log("Test info ");
console.log("===============");
console.log(" ", "OS ", os.type() + " " + os.release() + " " + os.arch());
console.log(" ", "Node.JS ", process.versions.node);
console.log(" ", "V8 ", process.versions.v8);
let cpus = os.cpus().map(function (cpu) {
return cpu.model;
}).reduce(function (o, model) {
if (!o[model]) o[model] = 0;
o[model]++;
return o;
}, {});
console.log(readResult.state);
//const result2 = await readContract(arweave, "t9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE")
//fs.writeFileSync(path.join(__dirname, 'data', 'validity.json'), JSON.stringify(validity));
//fs.writeFileSync(path.join(__dirname, 'data', 'validity_old.json'), JSON.stringify(result.validity));
//fs.writeFileSync(path.join(__dirname, 'data', 'state_old.json'), stringify(result2).trim());
//fs.writeFileSync(path.join(__dirname, 'data', 'state_arweave.json'), JSON.stringify(result.state));
// console.log('second read');
// await lootContract.readState();
cpus = Object.keys(cpus).map(function (key) {
return key + " \u00d7 " + cpus[key];
}).join("\n");
console.log(" ", "CPU ", cpus);
console.log(" ", "Memory ", (os.totalmem() / 1024 / 1024 / 1024).toFixed(0), "GB");
console.log("===============");
}
main().catch((e) => console.error(e));

2978
tools/data/callstack.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

106
tools/data/state_bad.json Normal file
View File

@@ -0,0 +1,106 @@
{
"ticker": "ATR",
"name": "AttentionReward",
"owner": "D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"registeredRecords": {},
"validBundlers": [
"WL32qc-jsTxCe8m8RRQfS3b3MacsTQySDmJklvtkGFc",
"FeSD9TV8aB0GK0yby8A40KEX1N-3wrJQTDbRW4uUiEA",
"D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"fWjYZQ2SAP7OPTv6_OiI2AtKilORFQ0MdjbmDJ2biHk"
],
"votes": [
{
"id": 0,
"type": "trafficLogs",
"status": "passed",
"voted": [
"D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo"
],
"stakeAmount": 2,
"yays": 1,
"nays": 0,
"bundlers": {},
"start": 722309,
"end": 722999
},
{
"id": 1,
"type": "trafficLogs",
"status": "passed",
"voted": [
"D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo"
],
"stakeAmount": 2,
"yays": 1,
"nays": 0,
"bundlers": {},
"start": 722692,
"end": 723412
}
],
"task": {
"open": 722783,
"close": 723503,
"partcipatesRate": {},
"rewardReport": [
{
"dailyTrafficBlock": 722486,
"logsSummary": {},
"distribution": {},
"distributer": "D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"distributed": true,
"distributionBlock": 722692,
"rewardPerAttention": 0
},
{
"dailyTrafficBlock": 722692,
"logsSummary": {},
"distribution": {},
"distributer": "D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"distributed": false,
"distributionBlock": 722783,
"rewardPerAttention": 0
}
],
"dailyPayload": [
{
"block": 722486,
"payloads": [
{
"TLTxId": "GssBaGLwAlvS2BScBfenJY0puAdWuww5-YDVpHlSVFc",
"owner": "D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"gateWayId": "https://gateway.koi.rocks/logs",
"voteId": 0,
"blockHeight": 722309,
"won": true
}
],
"isRanked": true,
"isDistributed": true
},
{
"block": 722692,
"payloads": [
{
"TLTxId": "9vexnUIYwqRYZ-q-4HCtZkZk9h3MDaYtn9EOT_GDi7Q",
"owner": "D3lK6_xXvBUXMUyA2RJz3soqmLlztkv-gVpEP5AlVUo",
"gateWayId": "https://gateway.koi.rocks/logs",
"voteId": 1,
"blockHeight": 722692,
"won": true
}
],
"isRanked": true,
"isDistributed": true
},
{
"block": 722783,
"payloads": [],
"isRanked": false,
"isDistributed": false
}
]
},
"blackList": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

32
tools/undici2.js Normal file
View File

@@ -0,0 +1,32 @@
/* eslint-disable */
const Arweave = require("arweave");
const Undici = require("undici");
const fetch = Undici.fetch;
async function test() {
for (let i = 0; i < 100; i++) {
const response = await fetch(`https://arweave.net:443/tx/4o-2xMPa45BXjGuII_LbOMQWfhE1F0qugdEUZvRlXRY`)
.then((res) => {
return res.ok ? res.json() : Promise.reject(res);
})
.catch((error) => {
if (error.body?.message) {
this.logger.error(error.body.message);
}
throw new Error(`Unable to retrieve info. ${error.status}.`);
});
console.log(response);
/*const response = await fetch('https://arweave.net:443/4o-2xMPa45BXjGuII_LbOMQWfhE1F0qugdEUZvRlXRY');
const buffer = await response.arrayBuffer();
const result = Arweave.utils.bufferToString(buffer);
console.log(result);*/
}
}
test().finally();

1
tools/uptime.js Normal file
View File

@@ -0,0 +1 @@
console.log(process.uptime() * 1000);