{"title": "Ethereum Distribution System", "logoImg": "bafkreidgazt4uywma7sb2ok7xmws5sqokbwtryzp7vmuvj35fnhdoflssm", "website": "https://github.com/peeramid-labs/eds", "bannerImg": "bafkreigrptkxzann6upc6lh5ragj6a2mb4m2zpoiw7xrrwh6hiz7nfteoy", "createdAt": 1723052779970, "userGithub": "peersky", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..tbYwYYXjqVD2ThRoH5mkBOZbkUiIBbzHXw6flHgzx5n_7ZGLR2c8Wvcj5c7ifpV1_kVKm7BbG7aVHotMw4q0Cg", "type": "Ed25519Signature2018", "created": "2024-08-07T17:46:08.105Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-08-07T17:46:08.105Z", "expirationDate": "2024-11-05T17:46:08.105Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x2e8d906A63D15E110037DB42dD24FE69bEc4aFAf", "hash": "v0.0.0:zCilqRLMJ+Zr/0dUufetkRFOmC7NMoQMXad5KHweg18=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextGithubOrg#peeramid-labs#61459744"}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..crpw1I3TibKFrxsu0hp38nHwhWR1biMuvYDPZqJLNeet4RJ1WB5L9wfJ-cS_HuRUBMVPwV0yk3iabKzLkzwhCg", "type": "Ed25519Signature2018", "created": "2024-08-07T17:46:02.123Z", "proofPurpose": "assertionMethod", "verificationMethod": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC#z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC"}, "issuer": "did:key:z6MkghvGHLobLEdj1bgRLhS4LPGJAvbMA1tn2zcRyqmYU5LC", "@context": ["https://www.w3.org/2018/credentials/v1"], "issuanceDate": "2024-08-07T17:46:02.123Z", "expirationDate": "2024-11-05T17:46:02.123Z", "credentialSubject": {"id": "did:pkh:eip155:1:0x2e8d906A63D15E110037DB42dD24FE69bEc4aFAf", "hash": "v0.0.0:6kl0jXAyf0oPUpVFVR2mdnqmW/YnAPynu/LFvHt6Toc=", "@context": [{"hash": "https://schema.org/Text", "provider": "https://schema.org/Text"}], "provider": "ClearTextTwitter#peeramid_labs"}}}, "description": "# Ethereum Distribution System\n\nThe Ethereum Distribution System (EDS) is an open and decentralized, fully on-chain distribution (factory) system for Ethereum smart contracts. \nUsing EDS enables developers to publish and reuse each other's code in a trustless manner. Built-in system for [semantic versioning](http://semver.org/), managing versions and combining into higher level distributions allows developers to avoid using upgradability patterns, instead relying on version control. \n\nSystem provisions for generic interfaces for distributors, developers and installers, each with their own responsibilities and constraints. \n\n### Problem Statement\n\nThe current landscape of smart contract distribution on the Ethereum network is fragmented and inefficient. \n\nServices like Ethereum Attestation Service (EAS), Aragon OSx, and others implement their own semantic versioning attempts.\nHowever, these solutions are not generalized, leading to a lack of uniformity and increased complexity.\nThis also results EIP712 built in versioning field largely underused.\n\nMoreover, projects generate numerous deployment artifacts that cannot be optimized in node memory because of built metadata affecting hashes.\nThis practice results in a significant increase in blockchain size for node operators, far beyond what is necessary. \nThe absence of a trusted ecosystem to exchange functional code pieces (distributions) exacerbates the problem, making it difficult to manage and verify deployment artifacts efficiently and blocks novel applications built on ethereum, which trust each other by-design.\n\nEDS aims to address these challenges by providing a generalized, decentralized, and fully on-chain distribution system. By leveraging semantic versioning, efficient factory frameworks, and robust security measures, EDS seeks to create a more streamlined and secure environment for distributing and managing smart contracts on the Ethereum network.\n\n\n## Use cases \n\n- **Factory Framework**: Instead of writing own factory, just write a distribution and register it\n- **Ship faster**: Reduce the number of needed deployment artifacts in order to ship your project. Re-using others packages instead!\n- **Security oracles**: Disconnect vulnerable code from your users in O(1)\n- **Semantic versioning with EIP712**: Instead of having to figure out \"what to write in EIP712 constructor\" just use built in version control system!\n- **User owned upgradability**: Get more user trust by alllowing them to decide when to upgrade\n- **Improve user UX**: Configure trust within instance or distribution, so that you'r users do not need to set allowances and issue permits anymore!\n-  **On-chain github**: Refer bytecode instead of location using ([ERC7744](https://eips.ethereum.org/EIPS/eip-7744))\n-  **Better Monitize your apps and services**: As your application becomes distributed, and wrapped, you may directly build in payment systems and subscription models on-chain! \n\n\n![image](https://github.com/user-attachments/assets/52fa7028-177c-4de2-9259-3f883491a3d3)", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "peeramid-labs", "projectTwitter": "peeramid_labs"}
Ethereum Distribution System
# Ethereum Distribution System

The Ethereum Distribution System (EDS) is an open and decentralized, fully on-chain distribution (factory) system for Ethereum smart contracts. 
Using EDS enables developers to publish and reuse each other's code in a trustless manner. Built-in system for [semantic versioning](http://semver.org/), managing versions and combining into higher level distributions allows developers to avoid using upgradability patterns, instead relying on version control. 

System provisions for generic interfaces for distributors, developers and installers, each with their own responsibilities and constraints. 

### Problem Statement

The current landscape of smart contract distribution on the Ethereum network is fragmented and inefficient. 

Services like Ethereum Attestation Service (EAS), Aragon OSx, and others implement their own semantic versioning attempts.
However, these solutions are not generalized, leading to a lack of uniformity and increased complexity.
This also results EIP712 built in versioning field largely underused.

Moreover, projects generate numerous deployment artifacts that cannot be optimized in node memory because of built metadata affecting hashes.
This practice results in a significant increase in blockchain size for node operators, far beyond what is necessary. 
The absence of a trusted ecosystem to exchange functional code pieces (distributions) exacerbates the problem, making it difficult to manage and verify deployment artifacts efficiently and blocks novel applications built on ethereum, which trust each other by-design.

EDS aims to address these challenges by providing a generalized, decentralized, and fully on-chain distribution system. By leveraging semantic versioning, efficient factory frameworks, and robust security measures, EDS seeks to create a more streamlined and secure environment for distributing and managing smart contracts on the Ethereum network.


## Use cases 

- **Factory Framework**: Instead of writing own factory, just write a distribution and register it
- **Ship faster**: Reduce the number of needed deployment artifacts in order to ship your project. Re-using others packages instead!
- **Security oracles**: Disconnect vulnerable code from your users in O(1)
- **Semantic versioning with EIP712**: Instead of having to figure out "what to write in EIP712 constructor" just use built in version control system!
- **User owned upgradability**: Get more user trust by alllowing them to decide when to upgrade
- **Improve user UX**: Configure trust within instance or distribution, so that you'r users do not need to set allowances and issue permits anymore!
-  **On-chain github**: Refer bytecode instead of location using ([ERC7744](https://eips.ethereum.org/EIPS/eip-7744))
-  **Better Monitize your apps and services**: As your application becomes distributed, and wrapped, you may directly build in payment systems and subscription models on-chain! 


![image](https://github.com/user-attachments/assets/52fa7028-177c-4de2-9259-3f883491a3d3)
Ethereum Distribution System