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

Light deployment of the protocol #12

Closed
eboadom opened this issue Jan 22, 2021 · 0 comments · Fixed by #14
Closed

Light deployment of the protocol #12

eboadom opened this issue Jan 22, 2021 · 0 comments · Fixed by #14
Assignees
Labels
enhancement New feature or request

Comments

@eboadom
Copy link
Collaborator

eboadom commented Jan 22, 2021

Currently, the deployment of a new market of the Aave Protocol has some disadvantages, mainly:

  • High deployment cost.
  • Burdensome deployment, even by using multiple automations contained on the repository.

In addition, the update of the logic of one component at the same time across all markets is not possible, which creates big friction on versioning of implementations under proxies.

The root cause of these problems is/was the design decision of trying to optimize reading of data via usage of constants/immutables on the smart contracts, leading to non-reusable implementations of components across different markets, even if the logic is exacty the same. Even if this decision is understandable for the initial Aave market -which has the highest usage and needs to be optimal/cheap on execution-, with multiple members of the community working on deploying new markets, we have noticed that in some cases it could be important to have a "light" version of the Aave Protocol with the following requirements:

  • To create a new market, it should be only needed to deploy:
    • A new LendingPoolAddressesProvider.
    • From the LendingPoolAddressesProvider, the proxies for all the proxied components, but reusing implementations of those components from previous markets.
    • From the proxy contract of the LendingPoolConfigurator, deploy proxies for all aTokens and debtTokens, reusing implementations of other aTokens/debtTokens from previous markets.

Mainly, the changes needed for this new deployment flow would consists on moving to storage variables certain constants/immutables on all the contracts affected, in order to remove market or token specific dependencies.

Additional requirements of the implementation:

  • Create hardhat tasks for the new deployment flow.
  • Adapt dev tests where needed.
  • Include a comparision of gas cost on execution of the protocol actions between this new model and the current one.
@eboadom eboadom added the enhancement New feature or request label Jan 22, 2021
@eboadom eboadom self-assigned this Jan 22, 2021
@The-3D The-3D closed this as completed in #14 Mar 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant