Técnicas de desarrollo de contratos aprendidas del código de Uniswap
Recientemente, al escribir un tutorial de desarrollo de un intercambio descentralizado, me referí a la implementación del código de Uniswap V3 y aprendí muchos puntos valiosos. Como desarrollador que intenta por primera vez desarrollar contratos de Defi, estas técnicas serán muy útiles para los principiantes que desean aprender sobre el desarrollo de contratos.
Dirección de despliegue de contrato predecible
Normalmente, la dirección obtenida al desplegar un contrato parece aleatoria, ya que está relacionada con el nonce. Sin embargo, en ciertos casos, necesitamos deducir la dirección del contrato a través de pares de intercambio e información relacionada. Uniswap utiliza el método CREATE2 para crear contratos, añadiendo el parámetro salt, lo que hace que la dirección del contrato generado sea predecible. La lógica de generación de direcciones es: nueva dirección = hash("0xFF", dirección del creador, salt, initcode).
. Este método garantiza que las transacciones normales no se desborden y también asegura la precisión. Aunque teóricamente aún existe una pequeña pérdida de precisión, en la práctica es aceptable.
![Serie para principiantes en Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-b0c3d4eb7e8ca88cc4cfc9476a34437a.webp(
Cálculo de beneficios del mecanismo de compartir
Para registrar de manera eficiente los ingresos por tarifas de los LP, Uniswap adoptó un método similar al de las acciones. Al registrar la tarifa total y las tarifas que deben asignarse por cada unidad de liquidez, los LP solo necesitan calcular las tarifas extraíbles en función de la liquidez que poseen al momento de la extracción, lo que reduce significativamente el consumo de gas.
![Serie para principiantes de Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-45e66af69435e6d4412ae506e77ab893.webp(
Uso razonable de la información fuera de la cadena
Teniendo en cuenta el alto costo del almacenamiento en la cadena, no toda la información necesita estar en la cadena o recuperarse de ella. Por ejemplo, la lista de transacciones en el pool, la información del pool, etc., se pueden almacenar en bases de datos tradicionales, sincronizándose periódicamente con los datos de la cadena. Este método puede mejorar la eficiencia y reducir costos.
División de contratos y reutilización de contratos estándar
Un proyecto puede incluir múltiples contratos realmente desplegados. Incluso si solo se despliega un contrato, se puede dividir el código en múltiples contratos mediante la herencia. Al mismo tiempo, el uso de contratos estándar existentes (como ERC721) puede aumentar la eficiencia del desarrollo y mejorar la fiabilidad del contrato.
Conclusión
La práctica es el mejor método de aprendizaje. Al intentar implementar una versión simplificada de un intercambio descentralizado, se puede comprender más profundamente la implementación del código de Uniswap y aprender valiosas experiencias de proyectos reales. Para los desarrolladores interesados en profundizar en el desarrollo de proyectos Web3 y DeFi, participar en un curso práctico será una excelente opción.
![Serie para principiantes en Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-f95ddc9d89809cf11dbe65b9bafda157.webp(
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
12 me gusta
Recompensa
12
6
Compartir
Comentar
0/400
GateUser-9ad11037
· hace13h
Tutorial de introducción una posición para novatos
Ver originalesResponder0
WalletManager
· hace13h
La rigurosa auditoría previa al contrato es la ingeniería de cimientos... Aprende un poco de impulso.
Desentrañando el código de Uniswap: 7 técnicas de desarrollo de contratos inteligentes explicadas en detalle
Técnicas de desarrollo de contratos aprendidas del código de Uniswap
Recientemente, al escribir un tutorial de desarrollo de un intercambio descentralizado, me referí a la implementación del código de Uniswap V3 y aprendí muchos puntos valiosos. Como desarrollador que intenta por primera vez desarrollar contratos de Defi, estas técnicas serán muy útiles para los principiantes que desean aprender sobre el desarrollo de contratos.
Dirección de despliegue de contrato predecible
Normalmente, la dirección obtenida al desplegar un contrato parece aleatoria, ya que está relacionada con el nonce. Sin embargo, en ciertos casos, necesitamos deducir la dirección del contrato a través de pares de intercambio e información relacionada. Uniswap utiliza el método CREATE2 para crear contratos, añadiendo el parámetro salt, lo que hace que la dirección del contrato generado sea predecible. La lógica de generación de direcciones es: nueva dirección = hash("0xFF", dirección del creador, salt, initcode).
. Este método garantiza que las transacciones normales no se desborden y también asegura la precisión. Aunque teóricamente aún existe una pequeña pérdida de precisión, en la práctica es aceptable.
![Serie para principiantes en Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-b0c3d4eb7e8ca88cc4cfc9476a34437a.webp(
Cálculo de beneficios del mecanismo de compartir
Para registrar de manera eficiente los ingresos por tarifas de los LP, Uniswap adoptó un método similar al de las acciones. Al registrar la tarifa total y las tarifas que deben asignarse por cada unidad de liquidez, los LP solo necesitan calcular las tarifas extraíbles en función de la liquidez que poseen al momento de la extracción, lo que reduce significativamente el consumo de gas.
![Serie para principiantes de Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-45e66af69435e6d4412ae506e77ab893.webp(
Uso razonable de la información fuera de la cadena
Teniendo en cuenta el alto costo del almacenamiento en la cadena, no toda la información necesita estar en la cadena o recuperarse de ella. Por ejemplo, la lista de transacciones en el pool, la información del pool, etc., se pueden almacenar en bases de datos tradicionales, sincronizándose periódicamente con los datos de la cadena. Este método puede mejorar la eficiencia y reducir costos.
División de contratos y reutilización de contratos estándar
Un proyecto puede incluir múltiples contratos realmente desplegados. Incluso si solo se despliega un contrato, se puede dividir el código en múltiples contratos mediante la herencia. Al mismo tiempo, el uso de contratos estándar existentes (como ERC721) puede aumentar la eficiencia del desarrollo y mejorar la fiabilidad del contrato.
Conclusión
La práctica es el mejor método de aprendizaje. Al intentar implementar una versión simplificada de un intercambio descentralizado, se puede comprender más profundamente la implementación del código de Uniswap y aprender valiosas experiencias de proyectos reales. Para los desarrolladores interesados en profundizar en el desarrollo de proyectos Web3 y DeFi, participar en un curso práctico será una excelente opción.
![Serie para principiantes en Web3: Consejos de desarrollo de contratos que aprendí del código de Uniswap])https://img-cdn.gateio.im/webp-social/moments-f95ddc9d89809cf11dbe65b9bafda157.webp(