"use strict"; const veilid = require("./"); const tmp = require("tmp-promise"); // let configJSON = JSON.stringify({ // program_name: "node-veilid-test", // namespace: "", // capabilities: { // disable: [] // }, // core: { // protected_store: { // directory: "/tmp/node-veilid-test" // } // } // }); let keypair = veilid.crypto_generateKeypair(veilid.CRYPTO_KIND_VLD0); let formatted = veilid.crypto_formatKeypair(keypair); console.log({formatted}); (async()=>{ let basePath = (await tmp.dir({ unsafeCleanup: true })).path; // let path = veilid.makePath("/tmp/test"); // let keypair = veilid.crypto_generateKeypair(veilid.CRYPTO_KIND_VLD0); var configJSON = JSON.stringify({ "program_name": "node-veilid-test", "namespace": "", "capabilities": { "disable": [] }, "protected_store": { "allow_insecure_fallback": true, "always_use_insecure_storage": true, "directory": `${basePath}/protected_store`, "delete": false, "device_encryption_key_password": "", "new_device_encryption_key_password": null }, "table_store": { "directory": `${basePath}/table_store`, "delete": false }, "block_store": { "directory": `${basePath}/block_store`, "delete": false }, "network": { "connection_initial_timeout_ms": 2000, "connection_inactivity_timeout_ms": 60000, "max_connections_per_ip4": 32, "max_connections_per_ip6_prefix": 32, "max_connections_per_ip6_prefix_size": 56, "max_connection_frequency_per_min": 128, "client_whitelist_timeout_ms": 300000, "reverse_connection_receipt_time_ms": 5000, "hole_punch_receipt_time_ms": 5000, "network_key_password": null, "routing_table": { "node_id": [ formatted.key ], "node_id_secret": [ formatted.secret ], "bootstrap": [ "bootstrap.veilid.net" ], "limit_over_attached": 64, "limit_fully_attached": 32, "limit_attached_strong": 16, "limit_attached_good": 8, "limit_attached_weak": 4 }, "rpc": { "concurrency": 0, "queue_size": 1024, "max_timestamp_behind_ms": 10000, "max_timestamp_ahead_ms": 10000, "timeout_ms": 5000, "max_route_hop_count": 4, "default_route_hop_count": 1 }, "dht": { "max_find_node_count": 20, "resolve_node_timeout_ms": 10000, "resolve_node_count": 1, "resolve_node_fanout": 4, "get_value_timeout_ms": 10000, "get_value_count": 3, "get_value_fanout": 4, "set_value_timeout_ms": 10000, "set_value_count": 5, "set_value_fanout": 4, "min_peer_count": 20, "min_peer_refresh_time_ms": 60000, "validate_dial_info_receipt_time_ms": 2000, "local_subkey_cache_size": 128, "local_max_subkey_cache_memory_mb": 256, "remote_subkey_cache_size": 1024, "remote_max_records": 65536, "remote_max_subkey_cache_memory_mb": 478, "remote_max_storage_space_mb": 1000 }, "upnp": true, "detect_address_changes": true, "restricted_nat_retries": 0, "tls": { "certificate_path": `${basePath}/ssl/certs/server.crt`, "private_key_path": `${basePath}/ssl/keys/server.key`, "connection_initial_timeout_ms": 2000 }, "application": { "https": { "enabled": false, "listen_address": ":443", "path": "app", "url": null }, "http": { "enabled": false, "listen_address": ":80", "path": "app", "url": null } }, "protocol": { "udp": { "enabled": true, "socket_pool_size": 0, "listen_address": "", "public_address": null }, "tcp": { "connect": true, "listen": true, "max_connections": 32, "listen_address": "", "public_address": null }, "ws": { "connect": true, "listen": true, "max_connections": 32, "listen_address": "", "path": "ws", "url": null }, "wss": { "connect": true, "listen": false, "max_connections": 32, "listen_address": "", "path": "ws", "url": null } } } }, null, 2); console.log({configJSON}); let core = await veilid.libraryCore_fromJSON((update) => { console.log("update::", update); }, configJSON); setInterval(() => { console.log("keepalive", core); }, 10000); console.log({core}); })();