Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introducción a la programación de contratos int...
Search
Mesi Rendón
March 02, 2018
Programming
2
310
Introducción a la programación de contratos inteligentes con Solidity para Ethereum
Mesi Rendón
March 02, 2018
Tweet
Share
More Decks by Mesi Rendón
See All by Mesi Rendón
Smart_Contract_architecture_on_Ethereum.pdf
mesirendon
0
76
La promesa de un futuro descentralizado Blockchain y sus aplicaciones
mesirendon
1
180
Ubuntu virtualization setup
mesirendon
0
73
Other Decks in Programming
See All in Programming
三者三様 宣言的UI
kkagurazaka
0
330
contribution to astral-sh/uv
shunsock
0
570
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
310
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
110
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
140
KoogではじめるAIエージェント開発
hiroaki404
1
230
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
480
外接に惑わされない自システムの処理時間SLIをOpenTelemetryで実現した話
kotaro7750
0
150
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
350
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
47k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
270
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
650
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
A Tale of Four Properties
chriscoyier
161
23k
Why Our Code Smells
bkeepers
PRO
340
57k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Become a Pro
speakerdeck
PRO
29
5.6k
Navigating Team Friction
lara
190
15k
How GitHub (no longer) Works
holman
315
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
For a Future-Friendly Web
brad_frost
180
10k
Designing for Performance
lara
610
69k
Transcript
None
Introducción a programación de contratos inteligentes con Solidity para Ethereum
Angel Mesías Rendón @mesirendon Investigador y Desarrollador Blockchain Grupo InTIColombia
Conceptos Distributed Ledger Technology
DLT https://www.coindesk.com/information/what-is-a-distributed-ledger/
DLT https://www.ibm.com/developerworks/cloud/library/cl-blockchain-basics-intro-bluemix-trs/ “Un tipo de base de datos que se
comparte,replica y sincroniza entre los miembros de una red”
DLT https://git-scm.com/book/en/v2/images/commit-and-tree.png
DLT https://git-scm.com/book/en/v2/images/commits-and-parents.png
DLT
Conceptos Blockchain
Blockchain Imagen tomada de: http://www.goldmansachs.com/our-thinking/pages/blockchain/
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain TX Imagen tomada de: http://www.goldmansachs.com/our-thinking/pages/blockchain/
Blockchain TX 1
Blockchain TX TX 2
Blockchain TX TX TX TX TX TX 6
Blockchain TX TX TX TX TX TX 6
Blockchain TX TX TX TX TX TX 6 1515449107848
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Blockchain
Conceptos Ethereum
Ethereum • Plataforma descentralizada • Dapps sobre Ethereum • Accounts
• Transacciones • Consenso • Equivalencias • EVM • Gas 1 Ether = 1000000000000000000 Wei 1 Ether = 1000000000000000 Kwei 1 Ether = 1000000000000 Mwei 1 Ether = 1000000000 Gwei 1 Ether = 1000000 Szabo 1 Ether = 1000 Finney 1 Ether = 0.001 Kether 1 Ether = 0.000001 Mether 1 Ether = 0.000000001 Gether 1 Ether = 0.000000000001 Tether
Conceptos Solidity
Solidity • Lenguaje de programación orientado a contratos • C++,
Python, JavaScript • Estáticamente tipado, herencia, librerías, tipos definidos por usuario • La Ethereum Virtual Machine corre en la red de Ethereum
Conceptos Ambiente
Ambiente • NodeJS • Nvm - https://github.com/creationix/nvm • NodeJS –
nvm install node • Yarn - https://yarnpkg.com/en/ • Truffle • Ganache npm i -g ganache-cli • Truffle Framework npm i -g truffle • Front end • VueJS npm i -g vue-cli • Truffle Contract yarn add vue-cli • Web3JS yarn add web3 • Browser • MetaMask https://metamask.io/
Conceptos Ðapps
Ðapps
Ðapps
Ðapps
Conceptos Solidity: Generalidades
Tipos de Datos • bool • uint8, uint16, uint24, …,
uint256 (aplica para int, ufixed, fixed) • address (balance, send) • Arrays ◦ bytes1, bytes2, bytes3, …, bytes32 • String (bytes(raw), strings(UTF-8)) • Structs • Enums • Mappings
Estructuras de Control • if • else • while •
for • break • continue • return • ?: • Error handling: Assert, Require, Revert and Exceptions
Características adicionales •Herencia •Visibilidad (alcance) •Modificadores •Librerías •Tuplas
Web3JS JavaScript API de comunicación con geth. Usa JSON-RPC https://github.com/ethereum/wiki/wiki/JavaScript-API