-
Notifications
You must be signed in to change notification settings - Fork 1
PRE-2256: document updated solana programs #12
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
base: main
Are you sure you want to change the base?
Conversation
README.md
Outdated
| # Predicate Registry - Solana Programs | ||
|
|
||
| A comprehensive predicate registry program for managing attestors, policies, and task validation on Solana. This program provides a decentralized way to register attestors, set client policies, and validate tasks with cryptographic attestations. | ||
| A decentralized attestation validation system for Solana programs. The Predicate Registry enables programs to validate off-chain attestations before executing protected operations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While it is deployed / executed on Solana 'decentralized' would infer that any user has access to all functions. This is more of a "Trusted" vs "trustless/decentralized" application given there is a single attester and single Admin
Further (nit)
on line -> online
on chain -> onchain
off chain -> offchain
| - **Signature Verification**: Ed25519 signature validation for attestations | ||
| - **Expiration Handling**: Time-based validation for tasks and attestations | ||
| **1. Predicate Registry Program** | ||
| - Central registry for managing attesters and program policies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the registry is what is implemented by customer Programs right? Hence why It manages policyIDs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wonder, if we needed to change the attester address, would this be easily done or would It require every customer to update their programs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So this is one major difference currently in Solana vs. EVM. There's not really an "implementation" for customer programs. They will have to call set_policy_id directly on the registry using their program ID. It's basically a manual mapping of programID -> PolicyID. We don't currently have an interface to simplify this.
Wonder, if we needed to change the attester address, would this be easily done or would It require every customer to update their programs?
The attester is set directly on the registry and customer programs are unaffected. I saw this as being something we'd need to update ourselves for the time being.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically a customer program can call set_policy_id via CPI and create their own interface.
README.md
Outdated
| **Why program-based?** | ||
| - Programs like DEXs, DAOs, or games need consistent validation rules for all users | ||
| - Upgrade authorities control program logic and security policies together | ||
| - Simplifies validation: one policy per program instead of per user |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Applications have compliance policies which users must adhere to
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, not fully following the suggestion here. Reading it back, I think these bullets may not make a lot of sense though. I might rework it entirely.
README.md
Outdated
| ├── ARCHITECTURE.md # Detailed architecture guide | ||
| └── README.md # This file | ||
| ``` | ||
| A minimal stub program serving as a policy anchor in the registry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can ride with this but is stub and anchor the best terminology?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I landed on a "Policy Holding Program" but I'm not attached to It. The sole purpose being folks who do not have the registry integration but want to access the API logically
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nvm I see It in the below line)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we can definitely change this up, I'm not attached to those terms at all. I'll just note that this isn't actually a product offering, it's just an example of a program that has zero logic but can still be used as a policy ID reference. "Holding Program" is definitely better language from a customer perspective, but "stub" is what it actually is 😅
Updates the README to be current with the latest changes to the programs.
Rendered