No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
Add uPnP Support
pegasyseng
### Description
Add support for uPNP (Universal Plug and Play) for all the networking in [Pantheon](https://github.com/PegaSysEng/pantheon/). The goal for this work is to allow developers and community users to quickly allow inbound peer connections without requiring manual router configuration.
The implementation should be fairly standalone and only support UPNP and NAT. Further work, outside the scope of this bounty, may provide similar functionality in different contexts, see [“General internal NAT API"](https://github.com/PegaSysEng/BountiedWork/issues/2) for details.
### Acceptance Criteria
* Needs to be able to detect that a node is running in a UPNP NAT environment.
* Needs to be able to determine the IP address/Port on the other side of the NAT, If only to report back to operator as a convenience, excluding double-nat issues, logging to the system as appropriate.
* Provides configuration options to enable/disable Port Forwarding through the NAT. Including the ability to map both TCP and UDP ports (for the discovery port) as well as multiple TCP ports (for HTTP RPC, WebSockets RPC, and Metrics).
* Enode information reported to other nodes via the discovery protocol uses the external IP address and port.
* External addresses are reported in the [“AdminNodeInfo” JSON-RPC](https://github.com/PegaSysEng/pantheon/blob/master/ethereum/jsonrpc/src/main/java/tech/pegasys/pantheon/ethereum/jsonrpc/internal/methods/AdminNodeInfo.java) as the ‘ip’ field when NAT usage is detected, otherwise the local address is reported.
* Unit test code to validate correct behavior.
* Integration/acceptance tests
* All libraries and dependencies must use Apache 2.0 friendly licenses
### Out of Scope
* Handling IP address changes while Pantheon is running
* Disabling NAT traversal via JSON RPC
### Additional Information
For context on future work to be done after this task, see #2, #3, and #4.
See Pantheon's Contribution Guidelines [here](https://github.com/PegaSysEng/pantheon/blob/master/CONTRIBUTING.md).
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save