La mejor manera de probar un contrato inteligente

Solo quiero implementar y llamar a un contrato inteligente de muestra simple solo con fines de prueba. ¿Necesito descargar toda la blockchain de ethereum? Es demasiado grande y tarda demasiado en descargarse. ¿Alguien puede sugerir una mejor opción?

Respuestas (6)

La red de prueba de Ropsten (o Görli/Kovan, etc.) es la elección correcta para usted, cuando todavía está probando.

  1. Simplemente instalo el complemento Chrome Metamask . Se comunica con nodos en un servidor remoto (por lo que no hay descargas, aunque Ropsten no es tan grande como la cadena principal de todos modos)

  2. Cree una nueva cuenta después de cambiar a la red Ropsten.

  3. Luego puede usar Online Solidity Compiler para implementar el contrato, así:

  4. Esquina superior izquierda, en Ejecutar> Entorno, marque la segunda opción "Web3 inyectado"

  5. Con "Crear", puede implementar su contrato y Metamask le pedirá su contraseña.

Ahora puede probar su contrato utilizando la interfaz provista.

También puede obtener sus contratos inteligentes en los "detalles" y usarlos en una aplicación.

Si elige la primera opción, "JavaScript VM", logrará una experiencia similar, pero en realidad no implementará nada en la red.

También uso Remix con este enfoque. Es muy sencillo para principiantes, pero cuando llego a conocer más sobre Ethereum, puedo optar por el modo Truffle, que proporciona una forma automática de realizar pruebas unitarias.

Truffle es un entorno de desarrollo, un marco de prueba y una canalización de activos para Ethereum, con el objetivo de facilitar la vida como desarrollador de Ethereum. Con Trufa, obtienes:

  • Compilación, vinculación, implementación y administración binaria de contratos inteligentes incorporados.
  • Pruebas de contrato automatizadas con Mocha y Chai.
  • Canalización de compilación configurable con soporte para procesos de compilación personalizados.
  • Marco de implementación y migraciones programable.
  • Gestión de red para implementar en muchas redes públicas y privadas.
  • Consola interactiva para comunicación directa de contratos.
  • Reconstrucción instantánea de activos durante el desarrollo.
  • Ejecutor de secuencias de comandos externo que ejecuta secuencias de comandos dentro de un entorno Truffle.
¿Descargará toda la cadena de bloques a mi sistema?
Puede usar ethereumjs-testrpc junto con truffle para no tener que descargarlo todo: github.com/ethereumjs/testrpc
esto no está relacionado pero, ¿saben cómo puedo llamar a un contrato que se ha implementado para ropsten, por ejemplo, este: ethereum.stackexchange.com/questions/23344/…

Puede utilizar el marco Populus (basado en Python) para el desarrollo y la prueba de contratos inteligentes. Viene con pruebas unitarias estándar basadas en py.test para contratos inteligentes.

Incluye

  • Pruebe usando TestRPC (transacciones instantáneas) o testnet privado, sin sincronización lenta de blokchain

  • Compilación, vinculación, implementación y administración binaria de contratos inteligentes incorporados.

  • Marco de implementación y migraciones programable.

  • Gestión de red para implementar en muchas redes públicas y privadas.

  • Consola interactiva para la comunicación directa del contrato desde el indicador de Python

  • Reconstrucción instantánea de activos durante el desarrollo

  • Ejecutor de secuencias de comandos externo que ejecuta secuencias de comandos dentro de un entorno Populus (simplemente haga la importación de Python)

Los beneficios sobre los enfoques de JavaScript incluyen

  • Código de prueba más limpio: sin devolución de llamada ( ejemplo )

  • Prueba más legible mediante el uso de assertpalabras clave en lugar de varias funciones de igualdad

Puede usar Embark para implementar y probar contratos simples y complejos. Al usar un simulador o su propia cadena privada, no es necesario descargar una cadena de bloques completa. Más detalles se pueden encontrar aquí .

Monedero Ethereum : no necesita descargar toda la cadena de bloques ETH para usar testnet. Ethereum Wallet es una manera fácil de implementar contratos en redes de prueba. Recomendaría la red de prueba de Rinkeby.

Una herramienta de línea de comandos simple y directa para probar los contratos inteligentes de Ethereum: Ethester . Tiene un mínimo de dependencias de software: Python 2.7, Ethereum. Compilador Solidity sugerido pero no requerido.