SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
ETHEREUMF O R J AVA S C R I P T D E V E L O P E R S
GreeceJS #21 @panosjee
Panos Papadopoulos

Founder GreeceJS
I am a software engineer that joined the
other side of the Force
I am a Partner at Marathon VC
I was a founder at BugSense and Greece JS
Hello!
I Am Panos
You can contact me at @panosjee
Ethereum aims to be the global, decentralised,
unstoppable, uncensorable computer.
(Using blockchain and ponies of course)
ETHEREUM
I should have ICO’ed back then
The crazy 2017 Ethereum rally
THE BLOCKCHAINIn case you are living under a rock
But way more complex in the case of Ethereum
Every 14 seconds the results
of the programs execution are
shared and verified across all
the nodes of the network. The
new state is written in the
blockchain.
Ethereum programs are called Smart
Contracts and are usually written in
Solidity, Viper and LLL. Smart Contracts
can be accessed via the web thanks to
web3.js
Ethereum listens to other
nodes and executes
program that compile to
Ethereum Virtual Machine
Users run an Ethereum
client, usually geth (the
official client written in Go)
Ethereum for dummies
Nodes
EVM
Smart
Contracts
Ether
Smart Contract execution and
storage costs. The cost is
called gas and can be
purchased for Ether the native
currency of the network
Enterprise Ethereum is an
official effort to bring private
Ethereum networks to the
corporate world.
Corporate friendly
14 seconds block generation
makes for quick transactions
and “fast” socially scalable
programs.
Fast
Elliptical cryptography used
for wallets, PoW to secure
blockchain (might change to
PoS)
Secure
Ethereum creates a
computing platform that
cannot be stopped or altered
Uncensorable
Ethereum is one the most
well performing crypto-
currencies of 2017.
Asset
Ethereum has a large
enthusiastic community
building blocks and dapps
Community
ETHEREUM CORE FEATURES
The Ether issuance model
What is the use case
for smart contracts?
Automate lawyers and trusted 3rd parties out of existence.
Think processes that require trust:
- Financial instruments
- Voting
- Tickets
- Registries
- Ballots
- Marketplaces
- Scams aka ICOs
The main toolset includes the official smart
contract language solidity and web3.js
npm install solc
npm install web3
npm install solium
npm install truffle
npm install ethereumjs-testrpc
Oh and Meteor is a thing for the Ethereum
community.
Tools
A wallet stores your private &
public keys that generate
addresses and sign your
transactions.
At a minimum you need a
wallet to store & send Ether,
interact & deploy smart
contracts. Holding your keys
makes you sovereign.
Popular wallets:
- MyEtherWallet
- Mist
- Coinbase (exchange)
Wallet
Running your node is
educational, useful and
wasteful (good luck syncing).
Geth is the official client
Parity has f***d up several
times.
Implementations in Python, JS,
C++, Java. Use at your own
risk.
Clients expose console, JSON-
RPC, logs.
Node (or not)
WHAT YOU NEED TO START
““Writing smart
contracts on
Ethereum is a
pleasure and the
tools are great”
No one, 2017
LET’S ICO GreeceJS
Pump
Throw decentralisation buzz works
Release whitepaper
Dump
Cash out
Bro down
testrpc is a Node.js based Ethereum client for testing and development.
It uses ethereumjs to simulate full client behavior and make developing
Ethereum applications much faster. It also includes all popular RPC
functions and features (like events) and can be run deterministically to
make development a breeze.

Sanity tip: use -db to keep accounts after restarts
Tools: ethereum-jsonrpc
Install, sync & run a full client is a hassle (but also the point)
This is probably the most portable and most convenient way to install Solidity
locally.
A platform-independent JavaScript library is provided by compiling the C++ source
into JavaScript using Emscripten. It can be used in projects directly (such as
Remix). Please refer to the solc-js repository for instructions.
Tools: solc-js
The fastest way to install the Solidity compiler
To make your app work on Ethereum, you can use the web3 object provided by
the web3.js library. Under the hood it communicates to a local node through
RPC calls. web3.js works with any Ethereum node, which exposes an RPC layer.
Tools: web3.js
The library that exposes Ethereum to rest of us
web3 runs in the browser. If web3 is loaded and can access Ethereum keys then
you can run any Dapp in your browser. 

The most common way to inject web3 into a window and be able to control an
Ethereum wallet is the Metamask Chrome plugin.
MetaMask is a bridge that allows you to visit the distributed web of tomorrow in
your browser today. It allows you to run Ethereum dApps right in your browser
without running a full Ethereum node. (because Mist sucks)

MetaMask includes a secure identity vault, providing a user interface (duh) to
manage your identities on different sites and sign blockchain transactions.

Bonus: IPFS Station Chrome plugin allows you to access IPFS urls seamlessly
from your local IPFS node, and take a look at its stats.
Tools: Metamask
Make Chrome Ethereum-aware
Truffle is the most popular development framework for Ethereum.
Truffle gives structure to your smart contract and help you compile, test,
deploy and migrate.
EthPM is the package manager for Smart Contracts B-E-W-A-R-E
You can write tests in both JS and Solidity. When it comes to “trusted”
computing you cannot escape tests!
Tools: Truffle
Let’s use some JS skills to manage Solidity dapps life cycle
candy maple cake sugar pudding cream honey rich smooth crumble sweet treat
Version pragma: Solidity upgrades break things, make sure the target is right!
Functions execute code internally or externally
Function Modifiers aka decorators
Events change the state, therefore you pay for their execution. Events are dispatched signals the
smart contracts can fire. DApps, or anything connected to Ethereum JSON-RPC API, can listen to
these events and act accordingly. Event can be indexed, so that the event history is searchable later.
event Deposit(address from, uint value);
Anatomy of a smart contract
Demo Time!
Deploy a smart contract
Choose a network (testrpc, testnets: [morden, ropsten, kovan, rinkeby], live)
Have enough gas to pay for deployment
When you deploy you become the owner of the contract unless if specified otherwise
Contract is deployed at an address. App.contracts.GreeceJSToken.deployed().then
ABI (Application Binary Interface) is generated without you cannot interact with web3.js.
ENS (Ethereum Naming System) to the rescue.
Store your web3.js at Swarm or IPFS
Tools: Remix
Tools: Etherscan
Blockchain browser
- Transaction explorer
- Block explorer
- Inspect smart contracts
- Monitor addresses
- See logs
Thanks!
Let’s talk @panosjee panos@marathon.vc
Any questions?

Contenu connexe

Similaire à ETHEREUM FOR JAVASCRIPT DEVELOPERS

Ethereum (Blockchain Network)
Ethereum (Blockchain Network)Ethereum (Blockchain Network)
Ethereum (Blockchain Network)Qais Ammari
 
10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdfWDP Technologies
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introductionkesavan N B
 
Ethereum in a nutshell
Ethereum in a nutshellEthereum in a nutshell
Ethereum in a nutshellDaniel Chan
 
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency app
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency appDylan Butler & Oliver Hager - Building a cross platform cryptocurrency app
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency appDevCamp Campinas
 
Eraswap Network (ESN): A unique Blockchain Network!
 Eraswap Network (ESN): A unique Blockchain Network! Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!RAJPATEL933
 
Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!AlishaShamim1
 
Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!Sapna Sampath
 
Eraswap whitepaper
Eraswap whitepaperEraswap whitepaper
Eraswap whitepaperSujayBhujbal
 

Similaire à ETHEREUM FOR JAVASCRIPT DEVELOPERS (20)

How to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contractHow to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contract
 
Ethereum (Blockchain Network)
Ethereum (Blockchain Network)Ethereum (Blockchain Network)
Ethereum (Blockchain Network)
 
What is ethereum
What is ethereumWhat is ethereum
What is ethereum
 
10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf10 Best Programming Languages for Blockchain in 2023.pdf
10 Best Programming Languages for Blockchain in 2023.pdf
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introduction
 
Ethereum in a nutshell
Ethereum in a nutshellEthereum in a nutshell
Ethereum in a nutshell
 
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency app
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency appDylan Butler & Oliver Hager - Building a cross platform cryptocurrency app
Dylan Butler & Oliver Hager - Building a cross platform cryptocurrency app
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Eraswap Network (ESN): A unique Blockchain Network!
 Eraswap Network (ESN): A unique Blockchain Network! Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!
 
EraSwap White Paper
EraSwap White PaperEraSwap White Paper
EraSwap White Paper
 
Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!Eraswap Network (ESN): A unique Blockchain Network!
Eraswap Network (ESN): A unique Blockchain Network!
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Eraswap whitepaper
Eraswap whitepaperEraswap whitepaper
Eraswap whitepaper
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Esn whitepaper
Esn whitepaperEsn whitepaper
Esn whitepaper
 
Era Swap Network
Era Swap NetworkEra Swap Network
Era Swap Network
 

Plus de GreeceJS

Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...GreeceJS
 
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...GreeceJS
 
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...GreeceJS
 
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27GreeceJS
 
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...GreeceJS
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22GreeceJS
 
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22GreeceJS
 
Taming forms with React
Taming forms with ReactTaming forms with React
Taming forms with ReactGreeceJS
 
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...GreeceJS
 
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)GreeceJS
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15GreeceJS
 
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17GreeceJS
 
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17GreeceJS
 
The case for HTTP/2
The case for HTTP/2The case for HTTP/2
The case for HTTP/2GreeceJS
 
GraphQL vs REST
GraphQL vs RESTGraphQL vs REST
GraphQL vs RESTGreeceJS
 
Ellak JavaScript Day
Ellak JavaScript DayEllak JavaScript Day
Ellak JavaScript DayGreeceJS
 
The history of asynchronous JavaScript
The history of asynchronous JavaScriptThe history of asynchronous JavaScript
The history of asynchronous JavaScriptGreeceJS
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.ioGreeceJS
 

Plus de GreeceJS (19)

Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
 
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
Next.js and the pursuit of happiness (Dimitris Michalakos, Lead Developer at ...
 
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
An Emoji Introduction to React Native (Panagiotis Vourtsis, Senior Front End ...
 
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
Under the hood of RxJS (Dimitris Livas) - GreeceJS #27
 
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
TypeScript: JavaScript that scales (Kostas Stergiou) - GreeceJS #22
 
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
Migrating from Monolithic to Serverless (Kostas Katsikas) - GreeceJS #22
 
Taming forms with React
Taming forms with ReactTaming forms with React
Taming forms with React
 
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
 
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
 
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
 
The case for HTTP/2
The case for HTTP/2The case for HTTP/2
The case for HTTP/2
 
GraphQL vs REST
GraphQL vs RESTGraphQL vs REST
GraphQL vs REST
 
Ellak JavaScript Day
Ellak JavaScript DayEllak JavaScript Day
Ellak JavaScript Day
 
The history of asynchronous JavaScript
The history of asynchronous JavaScriptThe history of asynchronous JavaScript
The history of asynchronous JavaScript
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.io
 

Dernier

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Dernier (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

ETHEREUM FOR JAVASCRIPT DEVELOPERS

  • 1. ETHEREUMF O R J AVA S C R I P T D E V E L O P E R S GreeceJS #21 @panosjee Panos Papadopoulos
 Founder GreeceJS
  • 2. I am a software engineer that joined the other side of the Force I am a Partner at Marathon VC I was a founder at BugSense and Greece JS Hello! I Am Panos You can contact me at @panosjee
  • 3. Ethereum aims to be the global, decentralised, unstoppable, uncensorable computer. (Using blockchain and ponies of course) ETHEREUM
  • 4. I should have ICO’ed back then
  • 5. The crazy 2017 Ethereum rally
  • 6. THE BLOCKCHAINIn case you are living under a rock But way more complex in the case of Ethereum
  • 7. Every 14 seconds the results of the programs execution are shared and verified across all the nodes of the network. The new state is written in the blockchain. Ethereum programs are called Smart Contracts and are usually written in Solidity, Viper and LLL. Smart Contracts can be accessed via the web thanks to web3.js Ethereum listens to other nodes and executes program that compile to Ethereum Virtual Machine Users run an Ethereum client, usually geth (the official client written in Go) Ethereum for dummies Nodes EVM Smart Contracts Ether Smart Contract execution and storage costs. The cost is called gas and can be purchased for Ether the native currency of the network
  • 8. Enterprise Ethereum is an official effort to bring private Ethereum networks to the corporate world. Corporate friendly 14 seconds block generation makes for quick transactions and “fast” socially scalable programs. Fast Elliptical cryptography used for wallets, PoW to secure blockchain (might change to PoS) Secure Ethereum creates a computing platform that cannot be stopped or altered Uncensorable Ethereum is one the most well performing crypto- currencies of 2017. Asset Ethereum has a large enthusiastic community building blocks and dapps Community ETHEREUM CORE FEATURES
  • 10. What is the use case for smart contracts? Automate lawyers and trusted 3rd parties out of existence. Think processes that require trust: - Financial instruments - Voting - Tickets - Registries - Ballots - Marketplaces - Scams aka ICOs
  • 11. The main toolset includes the official smart contract language solidity and web3.js npm install solc npm install web3 npm install solium npm install truffle npm install ethereumjs-testrpc Oh and Meteor is a thing for the Ethereum community. Tools A wallet stores your private & public keys that generate addresses and sign your transactions. At a minimum you need a wallet to store & send Ether, interact & deploy smart contracts. Holding your keys makes you sovereign. Popular wallets: - MyEtherWallet - Mist - Coinbase (exchange) Wallet Running your node is educational, useful and wasteful (good luck syncing). Geth is the official client Parity has f***d up several times. Implementations in Python, JS, C++, Java. Use at your own risk. Clients expose console, JSON- RPC, logs. Node (or not) WHAT YOU NEED TO START
  • 12. ““Writing smart contracts on Ethereum is a pleasure and the tools are great” No one, 2017
  • 13. LET’S ICO GreeceJS Pump Throw decentralisation buzz works Release whitepaper Dump Cash out Bro down
  • 14. testrpc is a Node.js based Ethereum client for testing and development. It uses ethereumjs to simulate full client behavior and make developing Ethereum applications much faster. It also includes all popular RPC functions and features (like events) and can be run deterministically to make development a breeze. Sanity tip: use -db to keep accounts after restarts Tools: ethereum-jsonrpc Install, sync & run a full client is a hassle (but also the point)
  • 15. This is probably the most portable and most convenient way to install Solidity locally. A platform-independent JavaScript library is provided by compiling the C++ source into JavaScript using Emscripten. It can be used in projects directly (such as Remix). Please refer to the solc-js repository for instructions. Tools: solc-js The fastest way to install the Solidity compiler
  • 16. To make your app work on Ethereum, you can use the web3 object provided by the web3.js library. Under the hood it communicates to a local node through RPC calls. web3.js works with any Ethereum node, which exposes an RPC layer. Tools: web3.js The library that exposes Ethereum to rest of us web3 runs in the browser. If web3 is loaded and can access Ethereum keys then you can run any Dapp in your browser. The most common way to inject web3 into a window and be able to control an Ethereum wallet is the Metamask Chrome plugin.
  • 17. MetaMask is a bridge that allows you to visit the distributed web of tomorrow in your browser today. It allows you to run Ethereum dApps right in your browser without running a full Ethereum node. (because Mist sucks) MetaMask includes a secure identity vault, providing a user interface (duh) to manage your identities on different sites and sign blockchain transactions. Bonus: IPFS Station Chrome plugin allows you to access IPFS urls seamlessly from your local IPFS node, and take a look at its stats. Tools: Metamask Make Chrome Ethereum-aware
  • 18. Truffle is the most popular development framework for Ethereum. Truffle gives structure to your smart contract and help you compile, test, deploy and migrate. EthPM is the package manager for Smart Contracts B-E-W-A-R-E You can write tests in both JS and Solidity. When it comes to “trusted” computing you cannot escape tests! Tools: Truffle Let’s use some JS skills to manage Solidity dapps life cycle candy maple cake sugar pudding cream honey rich smooth crumble sweet treat
  • 19. Version pragma: Solidity upgrades break things, make sure the target is right! Functions execute code internally or externally Function Modifiers aka decorators Events change the state, therefore you pay for their execution. Events are dispatched signals the smart contracts can fire. DApps, or anything connected to Ethereum JSON-RPC API, can listen to these events and act accordingly. Event can be indexed, so that the event history is searchable later. event Deposit(address from, uint value); Anatomy of a smart contract Demo Time!
  • 20. Deploy a smart contract Choose a network (testrpc, testnets: [morden, ropsten, kovan, rinkeby], live) Have enough gas to pay for deployment When you deploy you become the owner of the contract unless if specified otherwise Contract is deployed at an address. App.contracts.GreeceJSToken.deployed().then ABI (Application Binary Interface) is generated without you cannot interact with web3.js. ENS (Ethereum Naming System) to the rescue. Store your web3.js at Swarm or IPFS
  • 22. Tools: Etherscan Blockchain browser - Transaction explorer - Block explorer - Inspect smart contracts - Monitor addresses - See logs
  • 23. Thanks! Let’s talk @panosjee panos@marathon.vc Any questions?