Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow option to use ed25519 #3625

Closed
JustinDrake opened this issue Jan 22, 2017 · 8 comments
Closed

Allow option to use ed25519 #3625

JustinDrake opened this issue Jan 22, 2017 · 8 comments
Labels
kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding

Comments

@JustinDrake
Copy link
Contributor

The current version of IPFS hardcodes the crypto to RSA. Would be cool to have to the option to use ed25519 for identities.

@Kubuxu
Copy link
Member

Kubuxu commented Jan 23, 2017

Our crypto is not x25519 ready, I don't know what is the currentl plan of fixing that.

@JustinDrake
Copy link
Contributor Author

As far as I can tell, libp2p already supports ed25519. What more needs to be done to be x25519 ready?

@Kubuxu
Copy link
Member

Kubuxu commented Jan 23, 2017

Crypto protocol that supports it, currently we are using go-libp2p-secio which doesn't.

@Kubuxu
Copy link
Member

Kubuxu commented Jan 23, 2017

and migration path.

@whyrusleeping
Copy link
Member

The secio protocol will handle ed25519 just fine. The real reason we havent enabled it yet is because if you use an ed25519 key, you would only be able to communicate with other peers that have the code that supports it. We're waiting until an acceptable number of peers roll out to a supported version before we give users the option to do that.

That said, for open bazaar, since youre not interoping with the existing ipfs network, you shouldnt have any problem enabling users to use ed25519 keys (since everyone in the open bazaar network should then be running that code).

@rht
Copy link
Contributor

rht commented Jan 28, 2017

We're waiting until an acceptable number of peers roll out to a supported version before we give users the option to do that.

How should "acceptable number" be defined -- majority (>50%) or supermajority (>66%)?

The distribution of the versions being used in the wild could possibly be figured out the same way as the geographical distributions of ipfs nodes (I wasn't able to find the author of this code to repurpose the script).

@rht
Copy link
Contributor

rht commented Jan 29, 2017

Figured a way to do this from one node:

ipfs diag net | awk '{print $2}' | uniq  | xargs -I {} ipfs id {} | grep AgentVersion | sort | uniq -c | sort -rn

returns 130k nodes (the size of the overall network at most within this order-of-magnitude), with stat of a subset (16341) of them

  12986 	"AgentVersion": "go-libp2p/3.3.4",
    761 	"AgentVersion": "go-libp2p/0.1.0",
    397 	"AgentVersion": "go-ipfs/0.4.5-dev/a90c508",
    391 	"AgentVersion": "go-ipfs/0.4.5-pre2/416f025",
    338 	"AgentVersion": "go-ipfs/0.4.5-dev/",
    320 	"AgentVersion": "go-ipfs/0.4.5-dev/28b0868",
    224 	"AgentVersion": "mcnode/1.5 (go-libp2p/4.3.1)",
    220 	"AgentVersion": "go-ipfs/0.4.5-pre2/4add5b8a",
    166 	"AgentVersion": "go-ipfs/0.4.5-pre2/",
    139 	"AgentVersion": "go-ipfs/0.4.5-dev/ed12bc5",
     77 	"AgentVersion": "go-ipfs/0.4.5-pre2/4add5b8a9",
     71 	"AgentVersion": "go-ipfs/0.4.5-pre2/65e0704",
     68 	"AgentVersion": "go-ipfs/0.4.5-dev/bb2ffb58",
     67 	"AgentVersion": "go-ipfs/0.4.5-dev/f3c3728",
     61 	"AgentVersion": "go-ipfs/0.4.5-dev/ea36c38",
     55 	"AgentVersion": "go-ipfs/0.4.5-dev/5052ed46",

79.5% on "go-libp2p/3.3.4", 14.5% on "go-ipfs/0.4.5-*", 4.6% on "go-libp2p/0.1.0", 1.4% on mcnode

@Kubuxu Kubuxu added kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding labels Mar 15, 2017
@lidel
Copy link
Member

lidel commented May 11, 2020

Closing as a lot changed since 2017 and ed25519 are here to stay:

@lidel lidel closed this as completed May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding
Projects
None yet
Development

No branches or pull requests

5 participants