Es una gentil introducción a la programación de aplicaciones en eosio blockchains dirigida a desarrolladores de software.
- No es indispensable conocer c++, sin embargo conocimientos de programación son requiridos para comprender los contenidos de este webinar.
- Haremos un recorrido general por el diseño, historia y ecosistema de eosio.
- Veremos el proceso de desarollo de contratos inteligentes.
- Intro
- Breve historia.
- Arquitectura de las redes basadas en EOSIO Software.
- Componentes de EOS. ( cleos, keosd, nodeos)
- Configuración de ambiente de desarrollo.
- Demostración del proceso de desarrollo de un contrato.
- Preguntas y Respuestas.
Soy Gabo de EOS Costa Rica. Ingeniero de software con 10 años de experiencia desarrollando aplicaciones con tecnologías open source. Colaboro en BlockchainCR, una organización enfocada en impulsar la tecnología de cadenas de bloques en Costa Rica mediante educación y organización eventos. Formo parte de AsoBlockchain.org, la asociación de empresas e individuos del gremio de blockchain en Costa Rica.
Si pasan por Costa Rica, La Crypto Cantina es un evento abierto e informal que se realiza todos los jueves a partir de las 6pm en la San José.
https://gaboesquivel.com - @gaboesquivel
Es una empresa costarricense que se enfoca en las siguientes áreas:
- Infrastructura para redes eosio.
- Desarrollo de soluciones empresariales.
- Educación y comunidad.
- https://github.com/eoscostarica
- https://eoscostarica.io
- https://www.meetup.com/EOS-Costa-Rica/
- https://t.me/eoscr
- https://eoscostarica.io/discord
Blockchain es un almacén descentralizado y distribuido de datos. Periódicamente se crea un nuevo bloque de transacciones y se conecta al bloque anterior. Se distribuye porque la cadena de bloques almacena las transacciones en muchas computadoras. Está descentralizado porque la infraestructura de blockchain no es propiedad de una sola compañía. Blockchain proporciona confianza; La criptografía y el consenso aseguran que las transacciones sean inmutables. Blockchain proporciona resistencia y transparencia; La descentralización y la distribución significan que muchas copias de la cadena de bloques están disponibles para que todos las vean.
Qué es un contrato?
- Acuerdo, generalmente escrito, por el que dos o más partes se comprometen recíprocamente a respetar y cumplir una serie de condiciones.
- Documento en que figura este acuerdo, firmado por todas las partes.
Un contrato inteligente es básicamente el mismo concepto pero programado y firmado con llaves cryptográfica. La tecnología blockchain permite que una red de nodos con un copia del estado e historial sirva como testigos y validadores mediante algoritmos de concenso.
- Es una mejor arquitectura que client server actual.
- Mayor seguridad con firmas criptográficas.
- Ejecución de contratos inteligentes. ( acuerdo programables )
- Libros abiertos y trazabilidad de cambios en la data.
- Auditabilidad y transparencia.
- Organizaciones / Comunidades / Compañías autónomas decentralizadas.
- Reducción de costos de infrastructura.
- Permite representar valor por medio de tokens.
- Dinero programable.
- Nuevos modelos de incentivos.
- Eficiencias en el intercambio de valor.
- Resistencia a la censura y desastres.
- Criptografía ( 1970, firmas digitales )
- File Sharing ( 1999/2001 link-only mp3, napster, naturaleza de resistencia a la censura )
- BitTorrent ( 2001, protocolo libre y open source, prueba criptográfica de no modificación de los archivos )
- Bitcoin ( 2008/2009, satoshi, cypherpunks, prueba de trabajo y suministro limitado )
- Ethereum ( 2013/2014, prueba de trabajo y smart contracts )
- Graphene & BitShares (2013/2014, DPOS, performant blockchain for financial services, dex and permissions )
- Steem (2016, DAC, SMTs, Steemit)
- EOS ( 2017/2018, real-time, no fees, scalable, 4000+ TPS -> millions TPS, gobernanza, DACs )
-
EOSIO fue diseñado por Dan Larimer, quien previamente desarolló:
-
Basado en un documento publicado en 2017, la plataforma EOSIO fue desarrollada por la empresa privada block.one y lanzada como software de código abierto en 2018.
-
Con el fin de garantizar una amplia distribución de la criptomoneda nativa en el lanzamiento del blockchain, mil millones de tokens se distribuyeron como tokens ERC-20 por block.one durante un año. Se recaudó más de cuatro mil millones de dólares para apoyar la cadena de bloques durante la oferta inicial de monedas. Período (ICO).
-
Block.one apoya la cadena de bloques EOS con más de mil millones de dólares en fondos destinados a impulsar aplicaciones decentralizadas en EOS, EOS VC.
-
En Junio 2018 se lanzo oficialmente el EOS Mainnet.
https://dappradar.com/eos-dapps
-
Whitepaper
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md -
Elemental Battles
https://battles.eos.io/ https://github.com/eosio/eos/releases?after=v1.2.0 -
Developers Documentation https://developers.eos.io/
-
Código open source https://github.com/eosio/ https://github.com/eoscostarica/eos-contracts/
-
Más recursos en EOS Learn https://learn.eoscostarica.io/
- Blockchain software para propósito general.
- Respuesta en tiempo real.
- Nombre de usuario amigables para el usuario.
- Sistema de autenticación y permisos.
- Sistema de gobernanza, DAC.
- Interblockchain comunication.
- Actualizaciones constantes.
- Permite modelos de servicio en el que el negocio paga por infra. ( no gas fees )
- Código fuente en C++, contratos se compilan a WASM.
- Tablas en RAM con multi-index, historial transaciones en disco.
- Red de punto a punto.
- Libro o estado compartido ( datos ).
- Protocolo comunicación y consenso ( dpos 2/3+ ).
Mediante un sistema de votación contínuo se delega el poder de firmar bloques a 21 productores. Hay también nodos o block producer en una posición de stand by listo para producir si fiera necesario, block producers también exponen APIs para interactuar con la red.
https://eosauthority.com/voting
Esto tiene beneficios con respecto a la prueba de trabajo, uno de ellos es que disminuye el consumo energético, es más ecológico.
source https://steemit.com/eos/@genereos/eos-energy-consumption-vs-bitcoin-and-ethereum
read more
- https://steemit.com/dpos/@dantheman/dpos-consensus-algorithm-this-missing-white-paper
- http://docs.bitshares.org/bitshares/dpos.html
Uno de los diferenciadores que distingue a EOS de otras cadenas de bloques es su mecanismo de puesta ( staking ) de recursos: los usuarios obtienen acceso a los recursos de ancho de banda y CPU a través de la puesta de tokens de EOS.
- CPU
- NET ( Bandwidth )
- RAM
- Flotante o líquido
Se puede ver como Blockchain Real State.
A diferencia de otras redes en EOS las llaves de acceso y las cuentas son conceptos diferentes, las llave proveen la habilidad de realizar las firma criptográficas pero puedes utilizar nombre de usuario de 12 caracteres y configurar diferentes niveles de permisos para cada una de tus llaves.
- Accounts / Cuentas
- Actions / Acciones
- Handlers / Controladores
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md#actions--handlers
La combinación de actions y controladores es la forma en que eosio define los contratos inteligentes.
https://hackernoon.com/eos-101-getting-started-with-eos-part-2-2afbce4a8a05
https://medium.com/coinmonks/eos-accounts-and-permissions-visualized-677fc9c144e4
https://developers.eos.io/eosio-nodeos/docs/boot-sequence
https://steemit.com/eos/@cicbar/eos-unlimited-scaling-possibilities
Block
Region
Cycles (sequential)
Shards (parallel)
Transactions (sequential)
Actions (sequential)
Receiver and Notified Accounts (parallel)
- Telos https://www.telosfoundation.io/
- Worbli https://worbli.io/
- more..
https://steemit.com/eos/@cryptojack/why-eos-will-unmercilessly-f-k-ethereum-in-the-ausd-and
https://steemit.com/eos/@trogdor/eos-vs-ethereum-for-dummies
- nodeos (node + eos = nodeos): el demonio del nodo EOSIO que se puede configurar con complementos para ejecutar un nodo. Ejemplos de uso son producción de bloques, puntos finales de API dedicados y desarrollo local.
- cleos (cli + eos = cleos): interfaz de línea de comandos para interactuar con la cadena de bloques y administrar las billeteras.
- keosd (clave + eos = keosd): componente que almacena de forma segura las claves EOSIO en las billeteras.
- onchain: data o eventos en la cadena.
- offchain: data o eventos fuera del blockchain.
- testnet: red de prueba.
- cuenta: nombre de la cuenta en eos.
- owner key: llave privada para que demuestra que eres el dueño.
- active key: llave privada para para firma de transacciones.
- private key: llave criptográfica para firmar.
- wallet: software que guarda tus llaves de manera segura.
- cliente: software que interactúa con el blockchain a travez de apis.
https://www.eoscanada.com/en/abc-eos
- autobuild, manual build, install executables https://developers.eos.io/eosio-nodeos/docs/install-nodeos
- eos-local https://github.com/eoscostarica/eos-local