-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Add EIP190 for ERC190 Smart Contract Packaging Standard #203
Add EIP190 for ERC190 Smart Contract Packaging Standard #203
Conversation
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.
A grammar error and other minor fixes. Oh and change the EIP line at the top to EIP: 190
> These documents have not been inlined into this ERC to ensure that there is a single source of truth for the specification. | ||
|
||
|
||
# Rationale |
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.
Go ahead and remove rationale since you explained it sufficiently in Motivation.
|
||
### Bytecode verification | ||
|
||
Contains the appropriate information for a package manager to inspect a deployed contract and verify that it's bytecode matches the bytecode that results from compilation and linking of the package source code. |
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.
it's should be its
Allows for packages which exclude source code or other elements which would be needed for verification of the contract bytecode. This allows for minimalistic packages to be created for special situations where the package manager will not be performing verification. | ||
|
||
|
||
# Implementation |
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.
You can go ahead and and say "Implementations are complete or in progress for the following frameworks." Then list all of the frameworks.
|
||
# Implementation | ||
|
||
Implementations are implemented in the following frameworks. |
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.
Implementations are implemented?
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.
Hm. Maybe "EIP 190 is implemented in the following frameworks."
Will get these tips addressed soon. Thx for the review.
…On Fri, Feb 10, 2017, 3:58 AM Hudson Jameson ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In EIPS/eip-190-smart-contract-packaging-standard.md
<#203>:
> +Contains the appropriate information for a package manager to inspect a deployed contract and verify that it's bytecode matches the bytecode that results from compilation and linking of the package source code.
+
+
+### Multi-chain deploys
+
+Supports deployments across multiple chains, allowing a package to define addresses on both the public mainnet and testnet.
+
+
+### Trusted packages
+
+Allows for packages which exclude source code or other elements which would be needed for verification of the contract bytecode. This allows for minimalistic packages to be created for special situations where the package manager will not be performing verification.
+
+
+# Implementation
+
+Implementations are implemented in the following frameworks.
Hm. Maybe "EIP 190 is implemented in the following frameworks."
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#203>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAyTgv8Xsq-SSXcRQqApFbpVF_Hrlvcrks5rbEK8gaJpZM4L1s30>
.
|
I believe I've addressed the handful of comments/feedback. |
Thanks @pipermerriam. Approved! |
Should have been final before per #203
Should have been final before per ethereum/EIPs#203
Preamble
Simple Summary
This ERC proposes a specification for Ethereum smart contract packages.
Abstract / Motivation
Packaging is a core piece of modern software development which is missing from the Ethereum ecosystem. The lack of packaging limits the ability for developers to reuse code which negatively affects productivity and security.
A key example of this is the ERC20 standard. There are a few well audited reusable token contracts available but most developers end up writing their own because of the difficulty in finding and reusing existing code.
A packaging standard should have the following positive effects on the ecosystem:
Smart contract packaging should also have a direct positive effect on the end user. Wallet software will be able to consume a released package and generate an interface for interacting with any deployed contracts included within that package. With the advent of ENS all of the pieces will be in place for a wallet to take a human readable name and present the user with an interface for interacting with the underlying application.
Specification
The full specification for this standard is maintained separately in the repository epm/epm-spec.
This EIP refers to the
1.0.0
version of the specification: https://github.com/ethpm/epm-spec/tree/v1.0.0The specification contains details for a single document referred to as a "Release Lockfile".
Rationale
Use Cases
This specification covers the following types of smart contract packages.
owned
pattern.Full explanations and examples of these use cases can be found in the
README.md
from theepm/epm-spec
repository.Package Managers
The Release Lockfile is intended for consumption by package management software. Specific care was made to ensure that all of the following functionality can be implemented by package managers.
Deterministic builds
Ensures that a package will always resolve to the same set of dependencies and source files. Both source files and dependencies are content addressed to ensure that the referenced resources cannot change.
Bytecode verification
Contains the appropriate information for a package manager to inspect a deployed contract and verify that it's bytecode matches the bytecode that results from compilation and linking of the package source code.
Multi-chain deploys
Supports deployments across multiple chains, allowing a package to define addresses on both the public mainnet and testnet.
Trusted packages
Allows for packages which exclude source code or other elements which would be needed for verification of the contract bytecode. This allows for minimalistic packages to be created for special situations where the package manager will not be performing verification.
Implementation
Implementations are implemented in the following frameworks.
Implementations are underway for the following frameworks.
Implementation has not yet begun in the following frameworks but is on the roadmap.
Copyright
Copyright and related rights waived via CC0.