EdgeApp / edge-core-js

Edge Core Javascript implementation. Provides Edge account and wallet functionality for NodeJS/HTML/React Native apps
https://edge.app
Other
72 stars 49 forks source link

Cash Account Integration #180

Open monsterbitar opened 5 years ago

monsterbitar commented 5 years ago

I am currently working on a specification for on-chain aliases that look like this: James#577821; to help convey payment information in a more convenient manner, particulary in verbal contexts.

The specification has undergone reasonable peer-review so far (by wallet developers, token developers, coinbase engineeers) but more feedback is always welcome.

Here's a link to the draft spec: https://gitlab.com/cash-accounts/specification/blob/master/SPECIFICATION.md

monsterbitar commented 5 years ago

If you have questions or want to chat for a bit with other developers working on this, feel free to join this discord chat: https://discord.gg/9kACN9t

swansontec commented 5 years ago

Ah, I'm glad to see an open specification for this type of thing. The HandCash $handles system was completely centralized so we weren't interested in integrating that. This specification is simple and on-chain, which makes it much better.

On the flip side, Edge has publicly committed to supporting the FIO project. This means we will be integrating a handle system into the wallet eventually. I'll see if we can architect that work in a more generic way, so we could include not only FIO handles, put also possibly Cash Accounts and Ethereum Name Service names. I don't know if our agreement with FIO is exclusive or not.

monsterbitar commented 5 years ago

Interesting to see that there are more approaches I was not aware of.

If you end up supporting multiple systems, cash accounts has a regexp-identifieable form that might allow them to be used in the same user interface as other handles - if the concurrent systems don't have collisions in the naming structure.

If it is a requirement for getting support in wallets, I would willing to add a prepending identifier to further make the name unique among participants so that you can detect which system to use based on the user input available.

Public release of the CashAccounts is intended for the 10-year anniversary of the genesis block (jan 3). Feel free to join us on discord to discuss what requirements edge wallet might have and how we best can accomodate your needs.

monsterbitar commented 5 years ago

a beta of the system is now live at https://www.cashaccount.info/ and tomorrow the finalized v1.0 version of the spec will be released.

Feel free to test out and give me feedback on if there's anything wallet-related I could do to help.

monsterbitar commented 5 years ago

We are now several months into this project, there exist multiple lookup servers (written in javascript, go and c#), there exist a handful of websites around it and a small number of wallets have implemented send-support.

The main issue that is still left to be resolved is creating and agreeing on a resuable address format so that we can retain privacy while still having userfriendly names, but I still feel that implementing sending support is something that should be a higher priority.

I understand if you'd be hestitant to implementing registration support at the time being, given that address reuse is a bad practice - but ematiu from copay is working together with others to create a standardized implementation of peter todds stealth addresses that would allow us to keep the privacy.

Please do not pass up this opportunity to build the user interfaces and send-support so that edgewallet can be ready when the registration support gets implemented elsewhere.

monsterbitar commented 5 years ago

courtesy of @emergent-reasons there is tests available (https://gitlab.com/cash-accounts/specification/blob/master/TEST.md) to help ensure a good integrity when implementing cashaccount support.

If there is still anything that is missing or needing, please let us know.

monsterbitar commented 5 years ago

@swansontec has there been any progress on figuring out if this can co-exist with FIO?

How far off are we to have human readable and useful identifiers with FIO?

There is already 3 wallets that can send to cashaccounts now, and one that can both register accounts and send. There is also a fully featured lookup-server, and at least 3 instances running in the wild for redundancy.

swansontec commented 5 years ago

I agree that cashaccount integration would be good to have. However, we aren't really focused on adding new coins or coin-secific features at the moment. Our last two releases have been focused on basic stability / performance improvements, as well as revenue-driving features such as exchange integrations.

monsterbitar commented 5 years ago

Thank you for letting us know.

jarifad commented 2 years ago

many