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

"insert 25cents to play" account rather than in-your-face signature at each move #85

Open
dckc opened this issue Apr 17, 2021 · 24 comments
Labels
rholang Stuff that involves rholang code ui UI / UX We need help!
Projects

Comments

@dckc
Copy link
Contributor

dckc commented Apr 17, 2021

As in earlier work: support a nearly throw-away account (key kept in localStorage) where the user puts some small-ish amount of rev (say 0.25 REV) once to cover many deploys. Like putting 25 cents into a videogame to play for a few minutes.

Right now, the rgov UI acts like you have to do a full credit card transaction every time you want your videogame character to take some small action.

@dckc
Copy link
Contributor Author

dckc commented Apr 20, 2021

in another app: rchain-community/RChain-Status@d6ecd92

@Bill-Kunj Bill-Kunj added the ui UI / UX label May 18, 2021
@Bill-Kunj Bill-Kunj added this to To do in UI/UX May 19, 2021
@Bill-Kunj Bill-Kunj moved this from To do to In progress in UI/UX May 19, 2021
@jimscarver
Copy link
Contributor

There are discussion in governance on handling pre-paid data.
from log
Rchip needed for prepaid transaction fees; like near.org
https://docs.near.org/docs/concepts/gas#what-about-prepaid-gas
https://epicenter.tv/episodes/390
https://www.publish0x.com/my-own/near-protocol-an-answer-to-high-gas-fees-xjmvgwy

I think this is out of scope for rgov and this issue can be closed.

@dckc
Copy link
Contributor Author

dckc commented May 22, 2021

I disagree that it's out of scope. I think having to go through the whole digital signature dance for every interaction is onerous and distracts heavily from the experience; makes it borderline unacceptable.

I know for a fact that adding this feature is feasible; as noted above, I've done it before. If made a PR for this feature, would you decline to accept it on the basis that it's out of scope?

@Bill-Kunj
Copy link
Collaborator

This may be out of scope for the development interface (although I hate having to sign every move I make).
For the overall rgov interface, this seems relevant.

What I don't know is whether our not it's part of our October deliverable.

@dckc
Copy link
Contributor Author

dckc commented May 22, 2021

I don't see it as critical for October.

@Bill-Kunj Bill-Kunj moved this from In progress to To do in UI/UX May 24, 2021
@jimscarver
Copy link
Contributor

This seems out of scope for rgov as I believe prepaid contracts should be a layer one capability.

The "Internet Computer one" jumper to 35B evaluation https://dfinity.org
All transactions are prepaid, the user never pays. That could catch on.
@TheoXD has been campaigning for prepaid contracts. Perhaps that could be a layer under DAASL.

I think we need an rchip

@TheoXD
Copy link

TheoXD commented May 26, 2021

@Bill-Kunj
Copy link
Collaborator

This seems out of scope for rgov as I believe prepaid contracts should be a layer one capability.

RGOV certainly is about something besides prepaid contracts, so in that sense it is out of scope. However, someone has to do it eventually. Why not us and make RGOV an example with a usable interface?

@dckc
Copy link
Contributor Author

dckc commented May 26, 2021

@TheoXD writes:

@jimscarver Near.org also has it https://docs.near.org/docs/concepts/gas#what-about-prepaid-gas

No, that's about the developer paying the users' gas. I'm not talking about that.

I'm just talking about a nearly throw-away account (key kept in localStorage) where the user puts some small-ish amount of rev (say 0.25 REV) once to cover many deploys. Like putting 25 cents into a videogame to play for a few minutes. Right now, the rgov UI acts like you have to do a full credit card transaction every time you want your videogame character to take some small action.

@jimscarver
Copy link
Contributor

throw-away account (key kept in localStorage) where the user puts some small-ish amount of rev (say 0.25 REV) once to cover many deploys

Ok, that is useful and not necessarily related to prepaid deploys. My only concern is wasting much of the rev, taking it out of circulation. A prepaid amount might persist for an account and not require a separate user authentication on top of a signed deploy.

@w2vy
Copy link
Collaborator

w2vy commented May 27, 2021

I was reviewing the Power Box features and it mentions a MultiSigRevVault

It sounds like you can authorize transfers with either the Private Key or a deployerAuthKey

https://github.com/rchain/rchain/blob/dev/casper/src/main/resources/MultiSigRevVault.rho

If that deployerAuthKey can be changed (not sure what seal and unseal are) then I could have a (few) MultiSigRevVaults that I give third parties access to and they could collect gas (or other) fees from me as the needed. This makes the RevVault reusable so no worry of leaving lost of dust behind in discarded RevVaults

If the application is an ongoing relationship they could deduct funds monthly, if short termed then more often

It would be nice when creating the deployerAuthKey if a withdrawal limit could be set, needing a new authorization to get more

@dckc
Copy link
Contributor Author

dckc commented May 27, 2021

Please move discussion of fees paid by someone other to the user to a separate issue.

@TheoXD
Copy link

TheoXD commented May 27, 2021

Please move discussion of fees paid by someone other to the user to a separate issue.

I think those two ideas are still related. If you insert 25c of your own money into a slot machine on rchain, let's assume it goes into a purse that gets drained by the network to cover for tx costs + possibly profits to the developer. If developer decides to give people who happened to walk by a free try, developer shouldn't have to send them 25c worth of REV so that they can put it right back into a machine, so why not let developer put it directly into the slot machine in the first place?

@dckc
Copy link
Contributor Author

dckc commented May 27, 2021

Because it looks like a research project, to me. I have no idea how to do it.

@dckc
Copy link
Contributor Author

dckc commented May 28, 2021

It doesn't get drained by the network. It gets drained in the normal way, by signing deploys with phlo price and phlo limit set. The main difference from the full in-your-face metamask signing experience is that the page ui can do it for you because it know the private key with which to sign deploys.

This is risky... Anyone who has access to your browser might discover the key and take the funds. But it's a small, bounded risk.

It would be like putting a quarter into a Galaga machine, taking a break, and returning to find that someone else had used up your remaining ships. Oh well. No big deal. Put in another quarter if you want to play some more.

@dckc
Copy link
Contributor Author

dckc commented May 28, 2021

The page ui generates a random key and hence rev address and displays an "insert 0.25 REV to avoid annoying dialogs" button. You press the button and transfer 0.25 REV to this generated account using metamask as usual.

Then the page can make several deploys without nagging you.

The key is kept in localStorage, so if you navigate away and come back (using the same browser) you can continue to have deploys paid from the generated account.

@w2vy
Copy link
Collaborator

w2vy commented May 28, 2021 via email

@Bill-Kunj
Copy link
Collaborator

It doesn't get drained by the network. It gets drained in the normal way, by signing deploys with phlo price and phlo limit set. The main difference from the full in-your-face metamask signing experience is that the page ui can do it for you because it know the private key with which to sign deploys.

This is risky... Anyone who has access to your browser might discover the key and take the funds. But it's a small, bounded risk.

It would be like putting a quarter into a Galaga machine, taking a break, and returning to find that someone else had used up your remaining ships. Oh well. No big deal. Put in another quarter if you want to play some more.

@dckc Ugh. I would never play Galaga. But, Defender.... :)

@Bill-Kunj
Copy link
Collaborator

For a longer term solution, don't we need to address the loss of prepaid coin when a browser is closed?

@w2vy
Copy link
Collaborator

w2vy commented May 30, 2021 via email

@dckc
Copy link
Contributor Author

dckc commented May 31, 2021

For a longer term solution, don't we need to address the loss of prepaid coin when a browser is closed?

localStorage persists in that case.

@jimscarver
Copy link
Contributor

localStorage persists in that case

yes, that answers sufficiently for me. I like it. prepaid doing it may be better but is a long way down the read.

@Bill-Kunj
Copy link
Collaborator

For a longer term solution, don't we need to address the loss of prepaid coin when a browser is closed?

localStorage persists in that case.

Agreed.Shall we covert this into a separate issue for implementation?

@dckc
Copy link
Contributor Author

dckc commented Jun 1, 2021

No, I don't see any reason for a separate issue. This issue is about the feature, which includes implementation, testing, documentation, and whatever else it takes to get it done, just like any other feature/enhancement issue.

@Bill-Kunj Bill-Kunj moved this from To do to Backlog in UI/UX Jun 2, 2021
@Bill-Kunj Bill-Kunj added the rholang Stuff that involves rholang code label Jul 11, 2021
@David405 David405 moved this from Backlog to In progress in UI/UX Dec 14, 2021
@David405 David405 moved this from In progress to To do in UI/UX Dec 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rholang Stuff that involves rholang code ui UI / UX We need help!
Projects
UI/UX
To do
Development

No branches or pull requests

6 participants