Publicando tu primer Contrato Inteligente en IOST
El valor de las DApps
Las DApps dan valor economizando recursos digitales, creando medios para monetizar bienes digitales que de otra manera serían difíciles de intercambiar. Esto permite una presión competitiva que afecta el precio de los bienes digitales, incrementando los rangos de valores y permitiendo un mercado más amplio. Las aplicaciones descentralizadas permiten la distribución de tokens para desarrollos, recolectas de fondos y minería.
Las DApps son una alternativa para conducir transacciones y están siendo usadas para:
- Permitir registros como contratos inteligentes;
- Ayudar a prevenir fraudes por el uso de tokens;
- Permitir la creación de corporaciones de distribución autónomas o DACs (siglas en inglés para “distributed autonomous corporations”).
Si buscas construir una DApp, aplica los siguientes criterios deben ser aplicados:
- Una aplicación debe operar de forma autónoma, ser de código abierto, la aplicación no tiene capacidad de controlar la mayoría de sus tokens.
- La aplicación debe ser descentralizada y aprovechar la tecnología blockchain.
- La aplicación genera tokens (aplicando el algoritmo general criptográfico). Esto prueba que los nodos de valor están contribuyendo con la DApp.
Usando Contratos Inteligentes
Un contrato inteligente es una fuente de código que tiene la habilidad de regular, conducir e implementar un acuerdo. Al final, los contratos inteligentes son procesos lógicos dependientes de la blockchain con la que interactúan.
Contratos Inteligentes: Oportunidades
- Certeza de código
- Costo-efectividad con relación a transacciones continuas de bajo costo
- La descentralización reduce el riesgo de pérdida permanente de datos y corrupción.
- La transparencia puede asistir efectivamente en la regulación de mercados.
Contratos inteligentes: Contratiempos
- No pueden aplicar ambigüedad deliberada.
- Comparado a computos centralizados, la descentralización puede ser más ineficiente y de mayor costo.
- La falta de control centralizado puede ser un problema para reguladores
- Los inversionistas financieros pueden tener preocupaciones relacionadas con la transparencia
Crear un Contrato Inteligente en IOST usando la Línea de Comando
Para iniciar esta guía, instalamos iwallet, que es la herramienta para la línea de comando del blockchain de IOST. Puedes usar esta herramienta para conectar la blockchain IOST para transferir monedas, crear cuentas, consultar saldos o pedir contratos. Tanto iwallet como API usan RPC API internamente, y tienen características similares. Si quieres conocer iwallet, puedes encontrar nuestra guía de instalación (en inglés) aquí: Command Line Wallet Tool.
1. Importando la cuenta inicial para iwallet
Necesitas importar una cuenta antes de poder usar iwallet, intenta configurar un admin local usando el siguiente comando:
iwallet account import admin 2yquS3ySrGWPEKywCPzX4RTJugqRh7kJSo5aehsLYPEWkUxBWA39oMrZ7ZxuM4fgyXYs2cPwh5n8aNNpH5x2VyK1
2. Escribiendo tu primer contrato
Vamos a preparar tu primer contrato escribiendo un JavaScript class, por ejemplo HelloWorld.js
class HelloWorld { init() {} // necesita proveer una función init que será llamada durante el despliegue. hello(someone) { return “hello, “+ someone } } module.exports = HelloWorld;
El contrato inteligente posee una interfaz que recibe lo ingresado, y luego regresa hello, + enter
. Para permitir que esta interface llame al contrato inteligente externo, necesitas generar el archivo ABI usando la línea de comando (nota: por favor asegurate de tener instalado Node.js y correr npm installcommand dentro del archivo iwallet/contract:
iwallet compile HelloWorld.js
Esto generará un archivo HelloWorld.js.abi para ti, o alternativamente, puedes prepararlo de forma manual:
{ “lang”: “javascript”, “version”: “1.0.0”, “abi”: [ { “name”: “hello”, “args”: [ “string” ] } ] }
3. Publiquemos nuestro contrato vía línea de comando:
Publicar al nodo de prueba local
iwallet \ — expiration 10000 — gas_limit 1000000 — gas_ratio 1 \ — server localhost:30002 \ — account admin \ — amount_limit ‘*:unlimited’ \ publish HelloWorld.js HelloWorld.js.abi
Muestra de Salida
Prueba el llamado ABI
iwallet \ — expiration 10000 — gas_limit 1000000 — gas_ratio 1 \ — server localhost:30002 \ — account admin \ — amount_limit ‘*:unlimited’ \ call “Contract96YFqvomoAnX6Zyj993fkv29D2HVfm8cjGhCEM1ymXGf” “hello” ‘[“developer”]’ # contract id needs to be changed to the id you received
Salida
Recibo de transacción
Luego de eso, puedes obtener el recibo TxReceipt en cualquier momento siguiendo el siguiente comando:
iwallet receipt GTUmtpWPdPMVvJdsVf8AiEPy9EzCBUwUCim9gqKjvFLc
O alternativamente, usando una solicitud HTTP
curl -X GET \ http://localhost:30001/getTxReceiptByTxHash/GTUmtpWPdPMVvJdsVf8AiEPy9EzCBUwUCim9gqKjvFLc
¡Felicidades!
Tu contrato debe estar activo en este instante, podrás ver en tu consola el regreso del comando ‘Hello World’
. Esta llamada será registrada de forma permanente por IOST y no puede ser saboteada o corrompida. Ahora puedes construir un token digital intercambiable que pueda ser usada como moneda, representar un bien, una acción digital, la prueba de pertenencia o lo que desees.
PS: IOST desea presentar su agradecimiento sincero a @Corlyne O’Sullivan en la comunidad de desarrolladores de IOST por enviar amablemente este artículo a IOST.
Artículo orginalmente publicado en inglés aquí
Congratulations @iostvenezuela! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!