chore: tools crap update
This commit is contained in:
@@ -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
2978
tools/data/callstack.json
Normal file
File diff suppressed because it is too large
Load Diff
3530
tools/data/callstack_bad.json
Normal file
3530
tools/data/callstack_bad.json
Normal file
File diff suppressed because it is too large
Load Diff
1
tools/data/state_arweave.json
Normal file
1
tools/data/state_arweave.json
Normal file
File diff suppressed because one or more lines are too long
106
tools/data/state_bad.json
Normal file
106
tools/data/state_bad.json
Normal 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": []
|
||||
}
|
||||
1005
tools/data/state_redstone.json
Normal file
1005
tools/data/state_redstone.json
Normal file
File diff suppressed because it is too large
Load Diff
1
tools/data/swc-stats-2.json
Normal file
1
tools/data/swc-stats-2.json
Normal file
File diff suppressed because one or more lines are too long
32
tools/undici2.js
Normal file
32
tools/undici2.js
Normal 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
1
tools/uptime.js
Normal file
@@ -0,0 +1 @@
|
||||
console.log(process.uptime() * 1000);
|
||||
Reference in New Issue
Block a user