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

Initial Draft for EIP-Rules-Engine #2746

Merged
merged 13 commits into from
Jul 18, 2020
Merged

Initial Draft for EIP-Rules-Engine #2746

merged 13 commits into from
Jul 18, 2020

Conversation

jaerith
Copy link
Contributor

@jaerith jaerith commented Jun 21, 2020

When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md

We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

Provided data for header, Simple Summary, Abstract, Motivation, and Implementation.
Populated the sections Specification, Rationale, Implementation, and Security Considerations
Added Section "References" and added Subsections "Considerations" and "Example"
Added URL for discussion
Added consideration for including interface functions that calculate the range cost of a RuleTree
EIPS/eip-draft_rules_engine.md Outdated Show resolved Hide resolved
EIPS/eip-draft_rules_engine.md Outdated Show resolved Hide resolved
EIPS/eip-draft_rules_engine.md Outdated Show resolved Hide resolved
EIPS/eip-draft_rules_engine.md Outdated Show resolved Hide resolved
EIPS/eip-draft_rules_engine.md Outdated Show resolved Hide resolved
jaerith and others added 4 commits June 29, 2020 12:20
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
@lightclient
Copy link
Member

lightclient commented Jun 29, 2020

@jaerith I'm not sure why the CI failed here. Could you force push your last changes to retrigger it?
Edit: Actually it may not retrigger with the same hash, but I believe closing and reopening the PR will retrigger.

@jaerith
Copy link
Contributor Author

jaerith commented Jun 29, 2020

@jaerith I'm not sure why the CI failed here. Could you force push your last changes to retrigger it?
Edit: Actually it may not retrigger with the same hash, but I believe closing and reopening the PR will retrigger.

I made another small change to trigger the integration. Still want me to try closing and reopening the PR?

@lightclient
Copy link
Member

@jaerith I ran the eip-validator locally and I realized that you also need to update the file name of your EIP to eip-2746.md. I think that will solve the CI issues (although still not sure why there was no output).

@jaerith
Copy link
Contributor Author

jaerith commented Jun 29, 2020

@jaerith I ran the eip-validator locally and I realized that you also need to update the file name of your EIP to eip-2746.md. I think that will solve the CI issues (although still not sure why there was no output).

Ah ha! I thought that the file got renamed as part of the integration process. Okay, I'll change the name.

Added interface methods that will provide iteration functionality.
@MicahZoltu
Copy link
Contributor

I think the idea here is good, but it is unclear to me why this needs to be a standard. It seems that this would be better suited as a contract/dapp. Generally speaking, the benefit of having an ERC standard defined in an EIP is when you have a many-to-many relationship, meaning you'll have many contracts interfacing with many different clients. In this case, it seems like there will likely be a single contract that may have many clients talking to it. When the relationship is one to many, you can simply publish a contract to the blockchain, publish some documentation on how to interface with it, and then people can build clients against it.

The above is my personal opinion on EIPs (I generally prefer to standardize less, as standardization leads to calcification). As an EIP editor however, these changes look fine. If you still want to move forward with an ERC given the above mention me in a comment and I'll merge this for you.

@jaerith
Copy link
Contributor Author

jaerith commented Jul 18, 2020

The above is my personal opinion on EIPs (I generally prefer to standardize less, as standardization leads to calcification). As an EIP editor however, these changes look fine. If you still want to move forward with an ERC given the above mention me in a comment and I'll merge this for you.

Hi @MicahZoltu,

Thanks for the compliments about the idea! In general, I'm also laissez-faire when it comes to the idea of standardizing, especially since most standards become unused anyway (due to usually being too abstract). But in this case, I think that such a standard could help with mainstream consideration of Ethereum, especially with enterprises. As the case with the Baseline protocol, it's my hope that any proposals that focus on business transactions could attract the involvement of enterprise, even before Ethereum 2.0. Hopefully, this standard (or another like it) would be implemented and used by both the enterprise companies themselves (like a supplier in a pipeline) and software vendors who build solutions as services (as you had suggested). In the case of the latter, I could see a many-to-many scenario as part of a vendor solution, where each client has its own deployed instance that can interact with other client instances (i.e., one company's RuleTree calls another). Also, by having a standard interface in the case of vendor solutions, it might help to prevent vendor lock-in, so that the clients could easily move to a different vendor. Perhaps clients might even standardize and reuse the same rules (like validating a VAT calculation) by sharing them via IPFS or FileCoin in a standard markup form.

Most importantly, though, I don't expect this interface to be the final version of what's really needed. Instead, I think that it can help serve as the starting point for discussion, to talk about introducing the possibility of a rules engine into the Ethereum space. It's my hope, actually, that others will become involved to make this proposal better than I ever could! So, yes, please move this forward with an ERC. And if you have any ideas for this proposal, I would love to hear them!

@MicahZoltu MicahZoltu merged commit 030283c into ethereum:master Jul 18, 2020
tkstanczak pushed a commit to tkstanczak/EIPs that referenced this pull request Nov 7, 2020
An interface for using a smart contract as a rules engine.  A single deployed contract can register a data domain, create sets of rules that perform actions on that domain, and then invoke a set as an atomic transaction.
Arachnid pushed a commit to Arachnid/EIPs that referenced this pull request Mar 6, 2021
An interface for using a smart contract as a rules engine.  A single deployed contract can register a data domain, create sets of rules that perform actions on that domain, and then invoke a set as an atomic transaction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants