Commit Graph

284 Commits

Author SHA1 Message Date
Derrick Hammer 523f2c04f0
*Add new core dht plugin that allows joining a DHT topic and getting the peers of a given topic 2023-01-05 20:51:43 -05:00
Derrick Hammer ba86b3587b
*add core.shutdown hook for bootstrap DHT
ci/woodpecker/push/woodpecker Pipeline was successful Details
2023-01-05 19:44:43 -05:00
Derrick Hammer 831612bc77
*Add an async shutdown event so that plugins can take action before the swarm is destroyed 2023-01-05 19:39:03 -05:00
Derrick Hammer 6a41daff62
*Ensure the swarm properly shuts down and un-announces itself 2023-01-05 19:36:06 -05:00
Derrick Hammer f71d8f8685
*Private key must be full 64 bit private key 2022-12-31 13:30:16 -05:00
Derrick Hammer 2c22c88e30
*address does not fit the addressinfo type 2022-12-31 13:28:59 -05:00
Derrick Hammer 14edcdc6ce
*Bootstrap argument needs to be passed to DHT, not swarm 2022-12-30 18:27:18 -05:00
Derrick Hammer 1b78d0e696
*Implement a protocol manager to register protomux based protocols and add it to the plugin api 2022-12-30 01:00:45 -05:00
Derrick Hammer bcc63ae15d
*Need to pass through proxy requests to config object 2022-12-22 09:54:05 -05:00
Derrick Hammer 47705c2f12
*Add a publicly accessible bootstrap node
*Setup our bootstrap to start with our node first, and add in the default bootstrap servers
2022-12-22 08:28:58 -05:00
Derrick Hammer 24ec1e6526
*Remove default plugins list 2022-12-21 16:25:31 -05:00
Derrick Hammer af7e441c7c
*save no longer needs file extension 2022-12-21 16:12:33 -05:00
Derrick Hammer 3d29026a22
*Add new pluginConfig api that scopes all get, set, and has methods to a plugin.${plugin} scope to access only that plugins config 2022-12-21 15:12:20 -05:00
Derrick Hammer aa2dfe0ba0
*Update api reference
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-19 15:38:43 -05:00
Derrick Hammer 7b26856720
*Update rpc methods that require cache to only be enabled if on
*Make get_direct_peers, get_connected_peers, and get_bootstrap_info debug methods
2022-12-19 15:34:32 -05:00
Derrick Hammer af4e6155bc
*Make dht cache optional, but enabled by default 2022-12-19 15:28:22 -05:00
Derrick Hammer 212edf184d
*More log refactoring
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-19 14:17:07 -05:00
Derrick Hammer 7b9c667749
*Routes must be defined before listen 2022-12-19 14:03:22 -05:00
Derrick Hammer 9b9ff2118c
*export ssl manager
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-19 12:17:33 -05:00
Derrick Hammer b57644836f
*Path bug fix 2022-12-19 12:14:24 -05:00
Derrick Hammer c207452c65
*Update API interface to add the identity and ssl manager
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-19 12:08:33 -05:00
Derrick Hammer b7cd9ac5e2
*More log fixes
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-19 11:47:09 -05:00
Derrick Hammer a6eef21da0
*Make log the default export
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-19 11:44:11 -05:00
Derrick Hammer 88a827276e
*Update references of log object
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-19 11:42:51 -05:00
Derrick Hammer 05223c84b8
*Update config save call 2022-12-19 11:42:32 -05:00
Derrick Hammer ccd2b4fd78
*Update use of config api
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-19 11:37:49 -05:00
Derrick Hammer f164f7a6d3
*Pass child pino logger to dht-cache 2022-12-19 08:51:35 -05:00
Derrick Hammer 3fffc08d54
*switch to pino logger 2022-12-19 08:19:43 -05:00
Derrick Hammer f597afac6a
*Implement new SSl support with SSLManager class
*Rewrite relay servers to use fastify
*Remove status code server, it will be a plugin
2022-12-19 08:09:25 -05:00
Derrick Hammer ef03883605
*switch app to using fastify 2022-12-19 07:13:11 -05:00
Derrick Hammer 84b69e09af
*Update return type on getKeyPair 2022-12-19 07:12:10 -05:00
Derrick Hammer ce5d66095f
*Remove ssl support for now
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-18 15:11:18 -05:00
Derrick Hammer 56673a6bc1
*remove log debugging code 2022-12-18 15:08:04 -05:00
Derrick Hammer 457398b291
*Prune out old or unneeded code, some maybe be refactored back in as plugins or in a different form
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-18 15:05:40 -05:00
Derrick Hammer 6fa5ccd49a
*Add swarm to plugin api 2022-12-18 15:01:27 -05:00
Derrick Hammer 480bfdd0d0
*Remove dns module for now, will refactor this back later
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-18 14:44:39 -05:00
Derrick Hammer b50b8e8ced
*Make bip44 path a constant 2022-12-18 14:00:22 -05:00
Derrick Hammer 37b0e824c4
*Update bip44 path 2022-12-18 13:58:23 -05:00
Derrick Hammer a85b20769a
*Fix valid check 2022-12-18 13:46:00 -05:00
Derrick Hammer 5fba29b3ee
*Update imports for getKeyPair and getSeed 2022-12-18 13:45:12 -05:00
Derrick Hammer 7fad293bdc
*validateMnemonic returns a boolean 2022-12-18 13:42:41 -05:00
Derrick Hammer db4b61bdd9
*Switch seed to bip39, and use bip32/bip44/slip10 2022-12-18 13:32:59 -05:00
Derrick Hammer 2db95ff746
*Add plugin emit for plugins loaded 2022-12-18 11:42:50 -05:00
Derrick Hammer 2b5d3ef646
*Heavily refactor plugin api, remove most methods for now
*Introduce event emitter2 which will be used as part of api
*Use a proxy class to create a custom PluginAPI.registerMethod which will pass the lexical scoped plugin name
2022-12-18 11:09:29 -05:00
Derrick Hammer 0e39f3d658
*Missing returning rpc instance 2022-12-18 07:17:54 -05:00
Derrick Hammer 9d6a198bca
*Extract RPC setup to a utility function and ensure new streams in getRpcByPeer use it 2022-12-18 06:58:45 -05:00
Derrick Hammer 7fa2ec9f8e
*Release lock before throwing error 2022-12-17 15:58:46 -05:00
Derrick Hammer de38a16ac1
*Bug fix 2022-12-16 08:22:38 -05:00
Derrick Hammer 7c873db91b
*Add debug code to track log messages and store then in memory to be accessed over rpc 2022-12-16 08:05:16 -05:00
Derrick Hammer 58ff8f2f92
*Add methods get_bootstrap_info and get_connected_peers to debug
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-15 13:44:50 -05:00
Derrick Hammer d28868508b
Revert "*Need to use dynamic import"
This reverts commit 6413d97c61.
2022-12-15 06:23:28 -05:00
Derrick Hammer 485fa98f0e
Revert "*Need to return dynamic function and execute it"
This reverts commit 55fa792bc9.
2022-12-15 06:23:28 -05:00
Derrick Hammer 55fa792bc9
*Need to return dynamic function and execute it 2022-12-15 06:04:24 -05:00
Derrick Hammer 6413d97c61
*Need to use dynamic import
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-15 05:42:22 -05:00
Derrick Hammer 884ba62bde
*Add timeout support to broadcast request with a default timeout of 5 seconds.
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-15 04:58:54 -05:00
Derrick Hammer 724a0f0135
*switch plugin loading to use require and not import
ci/woodpecker/manual/woodpecker Pipeline failed Details
2022-12-13 07:23:18 -05:00
Derrick Hammer d54fe4666f
*Types changed with chalk
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-07 02:16:37 -05:00
Derrick Hammer 4742c6844c
*Add log level prefix plugin with chalk formatting
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-07 01:57:21 -05:00
Derrick Hammer 80a3354866
*ensure loglevel is configurable 2022-12-07 00:46:16 -05:00
Derrick Hammer 7bd0a72113
*Move relay identity log to swarm
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-06 17:03:30 -05:00
Derrick Hammer c25e8b4aff
*generateSeedPhraseDeterministic returns an array, need only the 1st element
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-06 16:55:58 -05:00
Derrick Hammer ededa55b57
*Dont require a domain
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-06 16:22:28 -05:00
Derrick Hammer eedd6e7da5
*Remove pocket config check
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-12-06 07:22:03 -05:00
Derrick Hammer 8ea5a38b83
*Remove self from peers list 2022-12-05 15:38:58 -05:00
Derrick Hammer bbc9020f66
*Update get_direct_peers to filter against dhtCache online list 2022-12-05 15:22:18 -05:00
Derrick Hammer cd7b12e8b3
*add get_peers and get_direct_peers api methods to the core rpc plugin
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-12-04 12:04:18 -05:00
Derrick Hammer e35b602133
*Add getter for dhtCache 2022-12-04 12:03:36 -05:00
Derrick Hammer 0e6c84c566
*Make default topic hash an exported const 2022-12-04 12:03:09 -05:00
Derrick Hammer 4121e23fd9
*If the rpc call returns no value, default to a true boolean 2022-12-04 07:14:36 -05:00
Derrick Hammer 7dff9a1ab4
*Only try to stringify the data if it is not already a string 2022-12-04 01:28:05 -05:00
Derrick Hammer 9393ffc4c1
*if cached merge in the cached item signature with the rpc response 2022-12-04 01:25:55 -05:00
Derrick Hammer c8c19b77a6
*Switch to json-stringify-deterministic 2022-12-04 01:11:05 -05:00
Derrick Hammer d7897af137
*Prevent recursive broadcast_request 2022-12-04 01:01:13 -05:00
Derrick Hammer 64611618de
*Update to use NodeCache api 2022-12-03 22:55:39 -05:00
Derrick Hammer 616b74a820
*Wrap cache delete in try/catch
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-11-28 02:06:39 -05:00
Derrick Hammer 4bb0636a8d
*Unneeded import 2022-11-28 02:04:35 -05:00
Derrick Hammer 69fd9a14ef
*Switch to node cache 2022-11-28 02:03:50 -05:00
Derrick Hammer 0387316e4f
*Refactor broadcast handling to call RPCServer.handleRequest if it is a loopback request
ci/woodpecker/push/woodpecker Pipeline failed Details
*check for request module and request method
*Bug fix processing of responses
2022-11-28 01:37:54 -05:00
Derrick Hammer 9b15c738e9
*Allow handleRequest to be publicly called
*If getMethodByRequest returns an error, treat as a request error
2022-11-28 01:35:35 -05:00
Derrick Hammer cb2299f9e8
*Buffer conversion bugfix 2022-11-28 00:31:37 -05:00
Derrick Hammer 029aab6901
*Fix type handling 2022-11-28 00:24:36 -05:00
Derrick Hammer 1c37f7809c
*If we need to wait for the connection, join the peer 2022-11-28 00:16:25 -05:00
Derrick Hammer 2f9a0c7356
*Refactor getRpcByPeer to operate in Buffers 2022-11-28 00:14:11 -05:00
Derrick Hammer 91642ea729
*Update imports 2022-11-27 18:16:08 -05:00
Derrick Hammer 8895f557e5
*getNodeQuery is not needed, for now 2022-11-27 18:12:28 -05:00
Derrick Hammer 364e628c7a
*Simplify clear_cached_item so it just needs to use broadcast_request as a proxy 2022-11-27 18:10:21 -05:00
Derrick Hammer 86ce21a4b4
*If we have a cached request, release the lock
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-11-26 18:23:26 -05:00
Derrick Hammer 9ce66b15a3
*Add query hash to dht cache 2022-11-26 17:53:39 -05:00
Derrick Hammer 83b62bfdcb
*Refactor mutex lock logic 2022-11-26 17:53:16 -05:00
Derrick Hammer 5c02356595
*start swarm in boot first, before even plugins since they kickstart the rpc singleton 2022-11-26 17:13:37 -05:00
Derrick Hammer ec33e40c74
*Export swarm start
*Make swarm get non async to prevent race conditions
2022-11-26 17:13:02 -05:00
Derrick Hammer ebd09f9a52
*Bug fix signData 2022-11-26 17:11:48 -05:00
Derrick Hammer 0d5aa24b74
*privateKey needs to be secretKey 2022-11-26 14:36:44 -05:00
Derrick Hammer 00fc999169
*Major refactor to swarm based DHT design, switch to protomux-rpc, merging core plugin into main daemon, and creating a new internal rpc plugin for cache and broadcast requests
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-11-26 02:59:07 -05:00
Derrick Hammer b74bcd5dd2
*Add newRouter function that defines a root endpoint and returns the pubkey
*Call newRouter in resetRouter
*Call resetRouter in start
2022-09-22 10:18:50 -04:00
Derrick Hammer 36da04bdfe
*Extract keypair logic to a helper function 2022-09-22 10:17:37 -04:00
Derrick Hammer 668e427b8c
*Change ssl to default to false, plugins will need to enable it on init 2022-09-22 08:00:02 -04:00
Derrick Hammer f8c19e2fd6
*Load env and arg configs after config files again to have them override in priority. 2022-09-22 07:51:58 -04:00
Derrick Hammer 18a7ca4aa8
*Update plugin folder location to be beside the config folder 2022-09-21 17:40:17 -04:00
Derrick Hammer 49739eaac8
*If we don't have a seed, create one by saving to the config folder as account.json 2022-09-21 16:40:10 -04:00