Programando nuestro primer Smart Contract – Parte 1

Hola, muy buenas tardes etherians!

En esta oportunidad traemos una serie de artículos en la que aprenderemos a programar, ejecutar y modificar en la Blockchain Ethereum nuestro primer Contrato Inteligente o Smart Contract.

Brevísima explicación de un Contrato Inteligente

Un Contrato Inteligente (Smart Contract) no es más que una pieza de código programada en un lenguaje llamado Solidity que a simple vista nos hace recordar a Javascript con algunos matices de Go. Los contratos inteligentes se ejecutan en un entorno totalmente aislado de los archivos, procesos y conexiones de red de nuestra computadora, este entorno se llama Ethereum Virtual Machine (EVM). Un contrato inteligente se comportará siempre como el código se lo indique, el código es la ley.

Cosas que debes saber sobre un Contrato Inteligente:

  1. ¿Puede un contrato inteligente almacenar ETHER? Si, pero no siempre necesitaremos guardar los ETH recibidos, dependerá del uso de nuestro contrato inteligente.
  2. ¿Cómo publico un contrato inteligente? Para hacer público nuestro Contrato Inteligente y compartirlo con alguien más, debemos enviarlo a la red Ethereum a través de una transacción. La transacción será minada por un nodo y nos retornará la dirección del contrato.
  3. ¿Son las direcciones de los contratos diferentes a las de una cuenta? Las direcciones de los contratos tienen el mismo formato que cualquier dirección Ethereum común y corriente (0xf4d23…).
  4. ¿Cualquier persona a la que le envíes la dirección del contrato podrá interactuar con él? Si, cualquier persona, contrato o código podrá interactuar con él mediante transacciones o llamados (calls), solo con su dirección.
  5. ¿Puedo decidir quienes pueden interactuar con mi contrato inteligente? Podemos de manera opcional delimitar mediante código quienes pueden consultar, añadir y modificar información sobre estos contratos inteligentes.

¿Qué herramientas necesito para desarrollar un Contrato Inteligente?

Para esta labor utilizaremos solo 2 herramientas:

  1. Plugin Metamask para navegadores Google Chrome/Mozilla Firefox: Nos permitirá conectar nuestro navegador a la red Ethereum en sencillos pasos.
  2.  Browser Solidity: Se trata de un entorno de programación para Solidity totalmente online. Nos permitirá programar y ejecutar nuestro Contrato Inteligente, realizar llamados a la funciones internas del contrato, añadir y modificar información del mismo.

Luego de muchas noches de lectura y programación en Solidity, pude comprender al fin que un Contrato Inteligente no es más que una especie de sub-Base de datos en la Blockchain Ethereum (pues la Blockchain ya es otro tipo de Base de datos).

En la segunda parte comenzaremos con Solidity, explicaremos algunas de sus características, funciones y variables globales, que a nuestro parecer es lo más relevante para comenzar a programar en él. Utilizaremos las redes de prueba de Ethereum (Rinkeby/Ropsten) para ejecutar el código creado, pues en estas redes los ETHER que se crean no son reales, pues son más fáciles de obtener y no pueden ser transferidos a la red Main Net (Red real).

¿Alguna duda?

Siempre puedes dejarla en los comentarios y te responderemos lo antes posible 😉

Segunda parte: [dApp] dMessenger – Libro de visitas descentralizado

Tercera parte: Tutorial – dApp Venta de entradas [dEvents]

Saludos etherians!

También te podría gustar...

138 Respuestas

  1. cesar machado dice:

    quiero crear una comunidad de desarrolladores de ethereum y queria saber si pueden ayudarnos?

    • Ethereum dice:

      Hola Cesar!

      Estamos precisamente creando una comunidad, te acabo de enviar una invitación a tu correo para que puedas entrar al grupo.

      Saludos.

  2. Antonio dice:

    Hola … Favor incluirme también en el grupo de desarrolladores…. Estoy empezando a investigar sobre la programación en ethereum y los contratos inteligentes… Gracias

    • Ethereum dice:

      Hola Antonio!

      Según el sistema de Slack ya fuiste invitado. Por favor revisa tu bandeja de entrada o spam, si no aparece procura buscar «Slack» en tu proveedor de e-mail.

      Saludos.

  3. Franco dice:

    Hola qué tal? Me parece que este tema esta en pañales en Chile. Soy egresado de leyes, pero también tengo interés por la programación, creo que si el internet de las cosas sigue avanzando los smart contract serán el futuro y respaldo de todo. Una consulta: ¿ Creen que la vinculación leyes y contratos inteligentes irá en aumento o por el contrario debido a la autonomía de estos la relación cada vez será más nula?. Me gustaría participar, saludos!

    • Ethereum dice:

      Hola Franco, buenas tardes.

      Es una tecnología muy nueva aún en Chile, por lo que creo que la regulación de estos contratos va a tardar más que en otros países. Faltan desarrolladores en Chile que programen en esta plataforma y generen «dependencia» de los contratos inteligentes.

      Saludos!

  4. Vicente dice:

    Hola!
    Me gustaría participar también en el slack de desarrolladores, actualmente me encuentro aprendiendo a través de la documentación de Truffle.

    Saludos

    • Ethereum dice:

      Hola Vicente, buenas noches.

      Al parecer ya ingresaste al slack con este correo. De todos modos te dejo un enlace para que te registres nuevamente de ser necesario Grupo Slack

      Saludos!

  5. Victor Diaz dice:

    Hola,
    Por favor, me gustaría unirme a este grupo.
    Muchas gracias!

    • Ethereum dice:

      Buenas tardes Victor, bienvenido.

      Te acabo de añadir al Slack de la comunidad, solo debes pinchar el enlace que te llegará en unos minutos y completar un sencillo formulario. Si tienes problemas por favor envíanos un mensaje por el formulario de contacto.

      Saludos!

  6. Nicolas dice:

    Hola, estoy interesado en entrar en la comunidad de desarrollo!
    Saludo

    • Ethereum dice:

      Hola Nicolas, buenas noches.

      Primero que todo quería darte las gracias por tu interés en la comunidad Ethereum Chile. Te acabo de enviar una invitación para entrar al Slack donde estamos hablando. Te esperamos 😉

      Saludos!

  7. Leonardo dice:

    Hola, me podrian invitar al grupo de desarrolladores?

    Saludos!

    • Ethereum dice:

      Hola Leonardo!

      Te acabo de enviar la invitación para entrar al Slack, muchas gracias por tu interés.

      Saludos.

  8. jose dice:

    Hola, me podrian invitar al grupo de desarrolladores?

    • Ethereum dice:

      Hola José, gracias por tu interés en la comunidad!

      Te acabo de enviar una invitación para participar del grupo en Slack.

      Saludos.

  9. Eduardo dice:

    Hola, tambien estoy interesado en participar del grupo, me podrian invitar?
    gracias
    Saludos

  10. Stefano dice:

    Me parece excelente que se esté armando una comunidad entorno a este tema, los felicito por la iniciativa! ¿Me podrán incluir en el slack? Me interesaría Participar 🙂

    • Ethereum dice:

      Hola Stefano!

      Muchas gracias por tu interés en la comunidad, te acabo de enviar un enlace al correo.

      Saludos.

    • Esteban dice:

      Hola amigos, felicitaciones por haber iniciado esta comunidad hace tanto tiempo. Estará aún vigente? Me gustaría entrar.

      Saludos!

  11. Izzu dice:

    Hola. ¿Podríais informarme de cómo puedo formar parte de la comunidad? He llegado aquí con la idea de encontrar más gente interesada en desarrollar en Ethereum para unir fuerzas y generar sinergias provechosas, y tengo algunas ideas en mente que creo podrían resultar interesantes. Muchas gracias y enhorabuena por la iniciativa. 🙂

    • Ethereum dice:

      Hola Izzu!

      Nos estamos organizando mediante un grupo en Slack, te acabo de enviar una invitación. Muchísimas gracias por tu interés en formar parte de la comunidad de Ethereum en Chile!

      Saludos.

  12. froufe dice:

    Me gustaria poder formar parte del grupo slack, estoy viendo las posibilidades de los smart contract y me gustaria crear un prototipo de una idea. Gracias por el post, es muy buena ayuda para los que empezamos 🙂

    • Ethereum dice:

      Hola Cristobal,

      Te acabo de enviar una invitación para ingresar al grupo en Slack, muchas gracias por tu interés!

      Saludos!

  13. Ismael dice:

    Hola de nuevo, como puedo estar en vuestro grupo de Slack ? Gracias.

    • Ethereum dice:

      Hola Ismael!

      Te acabo de enviar una invitación para entrar al grupo de Slack. Muchas gracias por tu interés en la comunidad.

      Saludos.

  14. Mario dice:

    hola estimados, favor de incluirme en el grupo ya que deseo poder aportar y aprender de la comunidad.
    saludos

    • Ethereum dice:

      Hola Mario,

      Muchas gracias por tu interés en la comunidad, te acabo de enviar una invitación para entrar al grupo en Slack.

      Saludos!

  15. Gonzalo Bustos dice:

    Hola,
    Gracias por todo el aporte realizado. Me interesaría también poder participar de la comunidad.
    Gracias y saludos,

    • Ethereum dice:

      Hola Gonzalo,

      Te acabo de enviar una invitación para participar en el grupo en Slack. Muchas gracias por tu interés.

      Saludos!

  16. ElUnico dice:

    Hola,

    Me encantaría entrar a mí también.

  17. Cesar Laguna dice:

    Señores soy novato en esto de las criptomonedas, lamento no a ver entrado antes a este mundo, me gusta la programacion y estoy convencido q el futuro sera para los programdores, por favor indiquenme por donde empiezo. Mil gracias

  18. Fernando dice:

    Soy licenciado en Estadística , profesor jubilado y he trabajado en varios lenguajes de programación. Me gustaría saber cuál o cuáles lenguajes se pueden usar para trabajar con la tecnología blockchain y como se maneja el almacenamiento en HDD.

    • Ethereum dice:

      Hola Fernando,

      El lenguaje de programación que se utiliza para programar Contratos Inteligentes se llama Solidity y puedes encontrar su documentación oficial dando clic aquí. Respecto al almacenamiento, eso lo maneja la red, ya que la información se distribuye entre los distintos nodos que participan de Ethereum.

      Saludos.

  19. pep dice:

    me gustaria formar parte de la comunidad de desarrolladores etherum gracias

    • Ethereum dice:

      Hola pep!

      En breve deberías recibir la invitación para entrar al grupo en Slack. Muchas gracias 😀

      Saludos.

  20. Hola, Me interesaria estar en el grupo de desarrolladores. Saludos desde Bariloche, Arg.

    • Ethereum dice:

      Hola Facundo!

      Se te acaba de enviar una invitación para formar parte del grupo en Slack 😀 . Muchas gracias por tu interés!

      Saludos.

  21. Alanmar dice:

    Hola, me gustaría formar parte de la comunidad de desarrolladores, gracias y saludos.

  22. Maxi Marelli dice:

    Hola!
    Me interesaría estar en el grupo de desarrolladores de ethereum.
    Vivo en Rosario, Argentina.
    Saludos

  23. Mei Chan dice:

    Hola, me interesa estar en el grupo de desarrolladores. Estoy interesada en el área.

  24. Albert Gil dice:

    Hola. Me gustaría participar en la comunidad. Gracias.

    • Ethereum dice:

      Hola Albert, muchas gracias por tu interés!

      Te acabo de enviar una invitación para formar parte del grupo en Slack de la comunidad.

      Saludos.

  25. Maxi Marelli dice:

    Hola. Me gustaría formar parte de la comunidad. Escribí antes pero no me contestaron.
    Gracias

    • Ethereum dice:

      Hola Maxi,

      Muchas gracias por tu interés en formar parte de la comunidad. Te acabo de enviar una invitación, por favor avísame si no la recibiste.

      Saludos!

  26. Mauricio dice:

    Buenas!
    me interesaria formar parte tambien, recien me estoy metiendo en este mundo, pero se ve interesante.
    Saludos!

    • Ethereum dice:

      Hola Mauricio, muchas gracias por tu interés 😀

      Te acabo de enviar una invitación para que formes parte del grupo en Slack.

      Saludos!!

  27. Saludos por favor agregarme:
    [email protected]
    tengo una empresa de programación.

  28. Sergio dice:

    Saludos, trabajo en seguridad de la información.

    Este tema es de gran interés para mi, ¿podrías invitarme? 🙂
    Muchas gracias!!

    • Ethereum dice:

      Hola Sergio!

      Te acabo de enviar la invitación para participar del grupo en Slack. Gracias por tu interés 😀

      Saludos.

  29. hector dice:

    hola, me gustaria entrar a la comunidad.
    siento que tiene mucho potencial aparte de tener un gran interes para seguir aprendiendo del tema.

  30. Fernando dice:

    Hola Hector.

    Excelente iniciativa te felicito, soy totalmente novato en el tema, pero me interesa mucho, me invitas a formar parte de esta comunidad?
    Saludos

    • Ethereum dice:

      Hola Fernando!

      Te acabo de enviar la invitación para entrar al Slack. Muchas gracias por tu interés, te esperamos!

      Saludos 😀

  31. Gustavo dice:

    Buenas, estoy actualmente estudiando el tema de Blockchain, me gustaria que me recomendaran algun sitio para comenzar a programar desde el nivel basico como el avanzado.

    saludos

    • Ethereum dice:

      Hola Gustavo,

      Te envié hace unos minutos la invitación para formar parte del Slack de la comunidad. Te estamos esperando 😀

      Saludos 😉

  32. Hanne Hunt dice:

    Me gustaría participar de la comunidad.

  33. MARIA JOSE MELO dice:

    HOLA SOY DE COLOMBIA QUIERO HACER PARTE DE LA COMUNIDAD

    • Ethereum dice:

      Hola María José!

      La invitación ya fue enviada, por favor revisa tu correo 😀

      Saludos.

  34. diego hinojosa dice:

    Estimados,
    Soy desarrollador y me gustaría ser parte de la comunidad para empezar aprender más sobre blockchain.
    Saludos.

    • Ethereum dice:

      Hola Diego, muchas gracias por tu interés 😀

      Te acabo de enviar la invitación, así que atento a tu correo!

      Saludos 🙂

  35. Carlos dice:

    Buenas tardes,
    Soy desarrollador y me gustaría ser parte de la comunidad para empezar aprender más sobre blockchain.
    Saludos.

    • Ethereum dice:

      Hola Carlos!

      Se te acaba de enviar la invitación, muchas gracias por tu interés en formar parte de la comunidad.

      Saludos 😀

  36. skangel dice:

    Hola, me gustaría unirme a la comunidad, los contratos inteligentes son fascinantes, es el futuro, saludos.

    • Ethereum dice:

      Hola skangel, muchas gracias por tu interés en la comunidad 😀

      Te acabo de enviar una invitación para formar parte del Slack de la comunidad!

      Saludos 🙂

  37. Johan dice:

    Hola!! Me gustaría unirme a la comunidad!! Encuentro que los contratos inteligentes van a ser requisito en la medida que nos vamos adentrando en la tecnología (internet de las cosas, etc) No soy programador nato, pero tengo habilidad para los análisis y quiero aprender como se construyen! Saludos!

    • Ethereum dice:

      Hola Johan, muchas gracias por tu interés 😀

      Te envié la invitación al e-mail de este comentario, por favor revisa que te haya llegado OK.

      Saludos 😉

  38. Alex dice:

    Hola, soy ingeniero informático y me gustaría ser parte de la comunidad para aprender más de Smart Contracts.

    • Ethereum dice:

      Hola Alex!

      Te acabo de enviar la invitación para formar parte del grupo en Slack, muchas gracias por tu interés, te estamos esperando 😀

      Saludos 😉

  39. Rafael Rosales Sánchez dice:

    Quiero entrar a la comunidad de programadores, vivo en Quito Ecuador y aqui es nuevo todo este tema.

    • Ethereum dice:

      Hola Rafael!

      Se te envió la invitación al e-mail que especificaste en este comentario, por favor revisa tu bandeja de entrada o correos no deseados en el peor de los casos 😀

      Saludos.

  40. Jose Luis dice:

    Me puedes enviar la invitacion para unirme al grupo de desarrolladores

    • Ethereum dice:

      Hola Jose Luis, muchas gracias por tu interés en la comunidad 😀

      Revisa tu bandeja de entrada o correos no deseados si es que no te aparece.

      Saludos 😉

  41. Hola amigos, podrían enviarme una invitaicón a su grupo slack.
    Saludos!

  42. galayo dice:

    Hola, me parece un proyecto muy interesante, serías tan amable de enviarme una invitación? gracias

    • Ethereum dice:

      Hola Galayo!

      Se te acaba de enviar una invitación para formar parte del Slack de la comunidad, muchas gracias por tu interés 😀

      Saludos 😉

  43. Rafael dice:

    Hola, interesante me tema. Me gustaría participar en su comunidad.
    Saludos y gracias.

    • Ethereum dice:

      Hola Rafael, muchas gracias por tu interés en la comunidad 😀

      Por favor revisa tu e-mail, te envié la invitación hace unos minutos.

      Saludos 😉

  44. Reinaldo dice:

    Hola. Igual estoy interesado en esste proyecto y me gustaria participar. Souy desarrollador.

    • Ethereum dice:

      Hola Reinaldo 😀

      Por favor revisa tu e-mail, te envié la invitación hace unos minutos. Gracias por tu interés!!

      Saludos 😉

  45. Laura González dice:

    Buenas noches, quisiera ingresar al grupo de colaboradores. Gracias por su atención.

    • Ethereum dice:

      Hola Laura!!

      Muchas gracias por tu interés en la comunidad de Ethereum en Chile. Te envié una invitación hace unos minutos, por favor revisa tu bandeja de entrada.

      Saludos 😉

  46. Alessandro dice:

    Hola, podrian enviarme la invitacion al grupo? Estoy muy interesado al tema.
    Muchas gracias
    Saludos desde IT

    • Ethereum dice:

      Hola Alessandro 😉

      La invitación ya fue enviada, por favor revista tu correo. Gracias por tu interés!!

      Saludos 😀

  47. Horacio dice:

    Hola…desde Mexico me interesa unirme a su grupo de programación en ethereum…ojal puedan agregarme…saludos

  48. Javier dice:

    Saludos, quisiera ser parte de su equipo, tambien me estoy iniciando en el desarrollo de contratos inteligentes

  49. Stefano dice:

    Hola! Muy buena la iniciativa, felicitaciones
    Estoy interesado en pertenecer al grupo de colaboradores.
    Saludos !

  50. Chevichess dice:

    Saludos, me parece muy interesante el tema, también quiero ser parte de la comunidad… Me enviarías una invitación? Muy agradecido

  51. Janet dice:

    Buen día, a mi también me interesa participar en la comunidad de desarrollo, me podrían enviar una invitación por favor

  52. santiago colvin dice:

    Hola!
    tengo una pregunta hace un tiempo
    entiendo como funciona un smart contract, pero mi pregunta va a como se ejecuta en la realidad? cuando uno lo hace publico y es visible por todos, eso no es una garantia de que la contraparte lo cumpla cierto? eso aun no lo tengo claro, por favor si alguin me lo pudiese explicar…
    muchas gracias!

  53. Alfons dice:

    Hola, estamos desarroyando una idea basada en smartcontract con un grupo de ingenieros Chilenos. pero ninguno tiene mucho conosimiento de solidity.
    nos gustaria contactarnos con algun Dev. que nos pueda orientar y enventualmente implementar la idea.
    Saludos,
    Alfons

  54. Nicolas dice:

    Hola! Estoy muy interesado en el tema! Me podrían enviar una invitación al grupo? Tengo varias ideas que me gustaría desarrolllar del tema.
    Saludos

  55. Lucas dice:

    Hola amigos!! quiero unirme a la comunidad!! estoy investigando los sobre los contratos inteligentes y quiero aprender mucho mas!!! por favor podrian agregarme como miembro??

    saludos!!!

  56. Daniel dice:

    Me gustaría formar parte del grupo.
    Soy programador y resido en España y estoy muy interesado en aprender sobre el tema.
    Gracias.

  57. hector dice:

    me interesaría que me sumen al grupo. Si hay uno en telegram, mejor

  58. Edison dice:

    Estimados, agradeceria me sumanar a la comunidad slack. Me interesa muchísimo aprender más sobre blockchain.

    • Ethereum dice:

      Hola Edison!

      Te acabo de enviar una invitación para formar parte de la comunidad. Muchas gracias por tu interés 😀

      Saludos, Javier Guajardo 🙂

  59. Romina Alarcón Sepúlveda dice:

    Me parece increíble, me gustaría poder entrar a esta comunidad.

    Por favor !!

  60. Raky dice:

    Hola. Buen día.
    Estoy interesa en el tema, me gustaría por favor me agregues al grupo o comunidad.

  61. Ernesto dice:

    Hola, buenisimo el trabajo que estas realizando. Me gustaria unirme a la comunidad, soy de neuquen Argentina. Saludos!!!

  62. Rocio dice:

    Buenos días! Me gustaría unirme a la comunidad de desarrolladores! gracias

  63. Gerardo dice:

    Buenos días desde España, me gustaría recibir invitacion para formar parte del Slack.
    Muchas gracias

  64. Claudio dice:

    Me interesa pertenecer a la comunidad, estoy recien empezando en blockchain

  65. Felipe dice:

    Buenos días estimado
    Me gustaría formar parte del grupo de desarrolladores, de antemano, gracias.

  66. Felipe dice:

    Hola
    Envié un msj, pero no sé si se publicó.
    Me gustaría participar de esta iniciativa. Saludos

  67. juan dice:

    quiero participar en la comunidad.

  68. Camila dice:

    Hola!!
    Estoy muy interesada, me gustaría formar parte de la comunidad.
    Muchas gracias!

  69. francisco rivelino muñoz de la fuente dice:

    Hola Javier… Quiero ser parte del grupo de desarrolladores….
    Estoy empezando en la programación en ethereum y los contratos inteligentes
    Muchas Gracias

    • Hola Francisco,

      Te acabo de enviar una invitación para formar parte del grupo. Cualquier consulta que tengas no dudes en enviar un mensaje a través de este canal.

      Saludos, Javier Guajardo.

  70. Barbara dice:

    Hola

    Me gustaría formar parte de la comunidad desarrolladores, estoy comenzando en esto 😀

    • Hola Barbara,

      Te acabo de enviar una invitación para formar parte del grupo. Cualquier consulta que tengas no dudes en enviar un mensaje a través de este canal.

      Saludos, Javier Guajardo.

  71. Damian LLuch dice:

    hola!, me gustaria unirme al slack

  72. Hola, también me interesa participar. Ahora necesito hacer un contrato inteligente y no encuentro nada. Lo más cercano a lo que busco es una empresa española que me puede ayudar. Por favor añadirme a la estructura de trabajo que quieren hacer. Gracias

  73. Juan lopez dice:

    Interesante tu comunidad soy de Colombia y me gustaría estar en el grupo

  74. Jose Luis dice:

    Hola Javier,

    Estoy empezando en este mundo de solidity y me gustaria unirme a la comunidad de slack, ¿me podrias mandar una invitación?

    Gracias.

  75. Sonny Castro dice:

    Buenas noches. Soy de Venezuela, quisiera unirme al slack. Tengo muchas ideas en Mente Sobre este tema que pienso y considero que sera la proxima revolucion despues del internet, lo que es la blockchain y los smartcontracts

  76. Mau dice:

    Saludos trabajo en el área de tecnología de la Administración pública y estoy introduciendo me en el tema de los smarts contracts , muy bueno el artículo

  77. jonathan dice:

    Hola! que tema tan interesante y apasionante, realmente me gustaría aprender mas, podrian agregarme al grupo de desarrolladores? muchas gracias!