-
Notifications
You must be signed in to change notification settings - Fork 95
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
Suggestion: Give the possibility to install a cap without a signature in a transaction payload #1702
Comments
Thanks for the suggestion to deal with this using a verifier. Here's my thinking, which I think for the most part is a recap of your thinking. My reasoning earlier re: the The allow verifier is one way we can do that, but what I'd probably prefer is to have a specific verifier just called something like gas-station which has no proof, only grants Frankly I might prefer to not use a verifier for this either, and instead to have a special field in |
It's never a problem to install a cap, so we could just install |
But which |
@edmundnoble sorry I forgot that sigs are indeed how a GAS_PAYER cap is specified:
Agree, adding something like |
Actually, |
IMO: I agree with you. This makes a lot of sense:
|
Currently:
In a transaction payload, a capability is always associated to a signer (pubKey) and a matching signature. It does make a lot of sense because most of the time, a capability code enforces a guard.
But in some cases the capability doesn't enforce any guard, and just need to be installed. One of these particular cases is in gas station triggered by the magic cap
GAS_PAYER
. Since this usually triggers a public gas station, it is a non-sense to associateGAS_PAYER
to a pubKey. However, this is mandatory with the current Chainweb/Pact implementation.Currently for a client or a Dapp there are 2 possible workarounds to make it work:
GAS_PAYER
to the existing signer. From a functional point of view this is completely inconsistent. It just breaks the beauty and the concept of capabilities.I think that Chainweb should allow and always validate a payload containing a
Signer
object with an empty pubKey. In this case, I suggest to use a special marker like"NONE"
or"NOVERIFY"
in thescheme
field, to indicate that signature verification must be bypassed.NB: Not sure if this should be handled directly by Chainweb code or Pact code.
The text was updated successfully, but these errors were encountered: