Problem: Truf Network need to own Solidity Smart Contracts
Nadie ha tomado este issue todavía.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
If I understood the specs correctly, the scope is also to propose a permissionless initial billing strategy, whereas, on Nuon, it could be a contract whitelisted for the Nuon owner/consumers, which simplifies.
@outerlook - after a little looking, and since we proceeding with the CF approach, we're going to need to create our own Solidity Smart Contracts.
This is primarily because CF has a whitelisting mechanism for "consumer" contracts.
Furthermore, there's a cap of 100 "consumer" contracts.
Therefore, our new contract will be a single "consumer", that allows for any number of calling contracts to request Truf data.
The function of these Contracts are to:
- Proxy incoming calls from foreign contracts to Chainlink
1. Here, calling contracts must transfer TRUF tokens to the Proxy in order to facilitate the Chainlink request.
2. We must ensure this Proxy is funded with LINK tokens too.
3. The TRUF token will remain in the Contract - but there must be a Administrative function to withdraw these tokens to a wallet that is predetermined by the Admin. ie. Admin wallet can only trigger a function to withdraw to a SAFE multi-sig.- Facilitate billing dynamics.
We can either use a hook paradigm where upgradeability is only enabled on the hook contract, or we can couple the contracts and make them both upgradeable.
The latter is a little less secure, but we're going to need to manage security around Admin keys anways.
I think zero-trust Admin mechanisms are required - I have plans for this, but in the meantime, there should really be only a single person with access to the Admin wallet....
Or better yet, we make the SAFE wallet that is designated to receive the TRUF tokens as immutable...
@Jarryd-pretorius - What's your take on this?
Zero-trust protocol around key management is something I can propose, but do you have suggests for interim security processes around super-sensitive key management (ie. Contract Admin)?
The best approach to execute this is for Raffael or Michael to try their hand at the Solidity Contracts.
Then I'll review the Contracts before we deploy them.
Additionally, these Contracts will need 100% unit test coverage (ideally in Foundry, but can also be in Hardhat)
Furthermore, deployment scripts are necessary for the Contracts.
Alternative 1: We manually whitelist "consumer" contracts (customers) to use our CF Oracle.
The customers essentially pay us off-chain, and use LINK to execute directly against Chainlink Contracts.
Alternative 2: Giving the CF code to customers to deploy themselves... essentially handing over Serverless Oracle management.
Of course, the first strategy gives us more control over automated TRUF powered billing of data across Chains... but has more technical overhead.
Originally posted by @rsoury in https://github.com/trufnetwork/node/issues/547#issuecomment-2505016845
- Lenguaje dominante
- Go
- Estrellas
- 7
- Forks
- 3
- Merge medio
- 3 h 2 min
- PR fusionados (30 d)
- 13
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de trufnetwork/node
-
type: goal
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
trufnetwork/node#1436 ·
-
trufnetwork/node#1435 · 1 asignado ·
-
trufnetwork/node#1429 · 2 comentarios · 1 asignado ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
trufnetwork/node#1313 · 2 comentarios · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
trufnetwork/node#1200 · 1 comentario ·
Todos los issues de trufnetwork/node
Issues similares
-
bug github_actions
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
registrystack/registry-stack#1393 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
JakeChampion/lang#10213 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
oasisprotocol/oasis-sdk#2523 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100