feat: anyone plugin to privatise network requests #1960
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Relates to
Integration of the Anyone Network within the Eliza repository
Risks
Background
The Anyone Protocol is the fastest and largest growing onion routing protocol in the world. It enables secure and anonymous communication from Alice to Bob. We aim to allow users to integrate the network in their own projects boasting a privacy narrative.
What does this PR do?
This PR integrate the Anyone protocol into the main repository as a plugin such that it is optional to users.
What kind of change is this?
Features (non-breaking change which adds functionality)
Documentation changes needed?
None.
Testing
Where should a reviewer start?
To have a look at the change please start by looking at
packages/plugin-anyone
. It is self-contained. The plugin globally wraps axios in a SOCKS proxy opened up by the Anyone Client, this is withinpackages/plugin-anyone/src/services
.Detailed testing steps
To thoroughly test, another plugin was made but not committed on this PR to check for the users current IP. Here the user can check their IP, startup the anyone client and check their IP again which should be different as it is routed through the network. By extension, this should therefore work for other plugins users may use that uses axios.
Another plugin was created to check the IP and added to the main agent
index.ts
. Cloning this branch should do most of the testing steps automatically.The image outlines how the plugin works.