SlideShare a Scribd company logo
GLOBAL SOFTWARE CONSULTANCY
TESTING ETHEREUM SMART
CONTRACTS
By
Preet G S Anand and Himanshu Pandey
1©ThoughtWorks 2019 Commercial in Confidence
VodQA Pune 2019
2©ThoughtWorks 2019 Commercial in Confidence
AGENDA
BRIEF OVERVIEW OF
ETHEREUM
DAPP ARCHITECTURE AND
TESTING COMPONENTS
TESTING IN BLOCKCHAIN
PARADIGM
BRIEF OVERVIEW OF ETHEREUM
3©ThoughtWorks 2019 Commercial in Confidence
Decentralized platform that runs smart contracts
4©ThoughtWorks 2019 Commercial in Confidence
WHAT IS DLT?
● Distributed Ledger Technology
● Distribute the ledger across all nodes
● Every node has complete copy of the
ledger, and all ledgers are always in sync
5©ThoughtWorks 2019 Commercial in Confidence
WHAT IS ETHEREUM ?
DISTRIBUTED PUBLIC
NETWORK
CONSENSUS ETHEREUM VIRTUAL
MACHINE
6©ThoughtWorks 2019 Commercial in Confidence
DISTRIBUTED PUBLIC NETWORK
● Ethereum is a peer to peer network, somewhat like a mesh topology
● Any new node can be added to this network
● Any machine which is part of ethereum network is a node
● There are three types of ethereum nodes:
○ Full node
○ Lightweight node
○ Miner node
7©ThoughtWorks 2019 Commercial in Confidence
CONSENSUS
● Achieve agreement on a single data value in blockchain
● Involves reward for nodes which participate in consensus resolution
● Types :
○ Proof of Work (POW)
○ Proof of Stake (POS)
○ Proof of Authority (POA)
8©ThoughtWorks 2019 Commercial in Confidence
ETHEREUM VIRTUAL MACHINE
● Ethereum is a programmable blockchain
● EVM is “Turing Complete”
● EVM is something which differentiates Ethereum with Blockchain
● Each and every node of the network runs the EVM and executes the same
instructions
DAPP ARCHITECTURE AND TESTING
COMPONENTS
9©ThoughtWorks 2019 Commercial in Confidence
DAPP ARCHITECTURE
10
HTML / JS / CSS
Block
EVM
BLOCKCHAIN FRONT END
BROWSER
©ThoughtWorks 2019 Commercial in Confidence
API
DB
WEB3 API
RPC
Smart
Contracts
HOW IS IT DIFFERENT FROM A WEB APP
11
PARTY A
PARTY B
PARTY C
©ThoughtWorks 2019 Commercial in Confidence
Different parts of Web3 API
● Node / Java / Python API
○ Uses Web3 library
○ Talks to blockchain via RPC calls
○ Provides wrappers over smart
contracts
● Smart Contracts
● Database
HOW DOES THE API LAYER LOOK LIKE
12©ThoughtWorks 2019 Commercial in Confidence
API
DB
Smart
Contracts
WHAT IS A SMART CONTRACT
● Smart contracts is a misnomer.
● They :
○ Store rules
○ Verifies rules
○ Self execute rules
● Removes need of a middle man as they are self
executing, ex: Vending machines
● Help in exchanging money, property, goods in a
transparent, direct and trusted way.
● They are responsible for creating blocks in
blockchain.
13©ThoughtWorks 2019 Commercial in Confidence
SETTING UP A TEST ENVIRONMENT
14©ThoughtWorks 2019 Commercial in Confidence
● In order to communicate with the blockchain, we must use a blockchain client
● Geth is an ethereum client and is written in Go
● Enable you to connect with blockchain over RPC endpoint
● Provides API for account management,transaction management, peer
management, debugging
15©ThoughtWorks 2019 Commercial in Confidence
GETH
16©ThoughtWorks 2019 Commercial in Confidence
● Development environment
● Testing framework
● Asset pipeline for blockchains using the Ethereum Virtual Machine
TRUFFLE
● Install truffle
npm i -g truffle
● Initialise project
truffle init
TRUFFLE SETUP
17©ThoughtWorks 2019 Commercial in Confidence
TESTING IN BLOCKCHAIN PARADIGM
18©ThoughtWorks 2019 Commercial in Confidence
UNIT TESTS
19©ThoughtWorks 2019 Commercial in Confidence
● Written in solidity (.sol) files
● Direct access to your deployed contracts
● Ability to import any contract dependency
INTEGRATION TESTS
20©ThoughtWorks 2019 Commercial in Confidence
● Written in javascript (.js) files
● Uses the Mocha testing framework and Chai
for assertions
NON FUNCTIONAL TESTING
21©ThoughtWorks 2019 Commercial in Confidence
NODE TESTING
● Network Handshaking
● Consensus Handshaking
● Chain Syncing
● Tools : eth-tester
©ThoughtWorks 2019 Commercial in Confidence
PERFORMANCE TESTING
● Network Latency
● Transaction Per Second (TPS)
● Block/Transaction Size
● Gas used per transaction
©ThoughtWorks 2019 Commercial in Confidence
SECURITY TESTING
24
● Access and Authentication
● Network Permissioning
● Wallet Signature Method
● Private Keys
● Smart Contract Owner
Verification
● Tools :
a. Solium
b. Solhint
c. openzeppelin-solidity
©ThoughtWorks 2019 Commercial in Confidence
THANKYOU
25
Preet G S Anand
APPLICATION DEVELOPER
preetgsa@thoughtworks.com | thoughtworks.com
©ThoughtWorks 2019 Commercial in Confidence
HIMANSHU PANDEY
APPLICATION DEVELOPER
phiman@thoughtworks.com | thoughtworks.com

More Related Content

What's hot

Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
Weaveworks
 
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Icinga
 
Concurrency in Swift
Concurrency in SwiftConcurrency in Swift
Concurrency in Swift
Seven Peaks Speaks
 
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
InfluxData
 
The printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN HandbookThe printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN Handbook
Aarno Aukia
 
DevSecOps on Azure
DevSecOps on AzureDevSecOps on Azure
DevSecOps on Azure
Seven Peaks Speaks
 
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
 Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour... Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
VMware Tanzu
 
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
Nuxeo
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
LibbySchulze
 
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
InfluxData
 
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
Icinga
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott Rigby
Weaveworks
 
Monitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxDataMonitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxData
InfluxData
 
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
DevOpsDays Tel Aviv
 
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
InfluxData
 
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
InfluxData
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anyway
Bernd Alter
 
DevOps: Coding Defines Monitoring
DevOps: Coding Defines MonitoringDevOps: Coding Defines Monitoring
DevOps: Coding Defines Monitoring
Opsta
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
Julian Mazzitelli
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to Envoy
Harish
 

What's hot (20)

Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
 
Concurrency in Swift
Concurrency in SwiftConcurrency in Swift
Concurrency in Swift
 
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
Three Ways InfluxDB Enables You to Use Time Series Data Across Your Entire En...
 
The printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN HandbookThe printing press of 2021 - using GitLab to publish the VSHN Handbook
The printing press of 2021 - using GitLab to publish the VSHN Handbook
 
DevSecOps on Azure
DevSecOps on AzureDevSecOps on Azure
DevSecOps on Azure
 
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
 Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour... Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
 
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
 
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
 
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
 
GitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott RigbyGitOps (& Flux) for Helm Users with Scott Rigby
GitOps (& Flux) for Helm Users with Scott Rigby
 
Monitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxDataMonitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxData
 
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
 
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
 
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anyway
 
DevOps: Coding Defines Monitoring
DevOps: Coding Defines MonitoringDevOps: Coding Defines Monitoring
DevOps: Coding Defines Monitoring
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
 
CNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to EnvoyCNCF Singapore - Introduction to Envoy
CNCF Singapore - Introduction to Envoy
 

Similar to vodQA Pune (2019) - Testing ethereum smart contracts

TWISummit 2019 - Blockchain in Enterprise
TWISummit 2019 - Blockchain in EnterpriseTWISummit 2019 - Blockchain in Enterprise
TWISummit 2019 - Blockchain in Enterprise
Thoughtworks
 
Hyperledger fabric 3
Hyperledger fabric 3Hyperledger fabric 3
Hyperledger fabric 3
Arvind Sridharan
 
Hyperledger community update February 2018
Hyperledger  community update   February 2018Hyperledger  community update   February 2018
Hyperledger community update February 2018
Christopher Ferris
 
Kubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing qualityKubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing quality
Adam Schepis
 
What is the best approach to tdd
What is the best approach to tddWhat is the best approach to tdd
What is the best approach to tdd
Red Hat
 
Startup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo PlatformsStartup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo Platforms
The Digital Insurer
 
Hyperledger composer (from zero to hero )
Hyperledger composer  (from zero to hero )Hyperledger composer  (from zero to hero )
Hyperledger composer (from zero to hero )
EmanHerawy
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
OPITZ CONSULTING Deutschland
 
Experiences with Open Source Telecom Software in the Contact Center Industry
Experiences with Open Source Telecom Software in the Contact Center IndustryExperiences with Open Source Telecom Software in the Contact Center Industry
Experiences with Open Source Telecom Software in the Contact Center Industry
Alan Quayle
 
MuleSoft Meetup Valletta 1.0
MuleSoft Meetup Valletta  1.0MuleSoft Meetup Valletta  1.0
MuleSoft Meetup Valletta 1.0
Anastasiia Linnas
 
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays
 
Simplify and secure your path to the multicloud future
Simplify and secure your path to the multicloud futureSimplify and secure your path to the multicloud future
Simplify and secure your path to the multicloud future
MarketingArrowECS_CZ
 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a Nutshell
Daniel Chan
 
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발 [Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
Yunho Maeng
 
Government ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock InGovernment ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock In
Jeremy Brown
 
Blockchain Essentials for Enterprise Architects
Blockchain Essentials for Enterprise ArchitectsBlockchain Essentials for Enterprise Architects
Blockchain Essentials for Enterprise Architects
Gokul Alex
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
Rohit Kelapure
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
VMware Tanzu
 
AWS Community Day - Amy Negrette - Gateways to Gateways
AWS Community Day - Amy Negrette - Gateways to GatewaysAWS Community Day - Amy Negrette - Gateways to Gateways
AWS Community Day - Amy Negrette - Gateways to Gateways
AWS Chicago
 

Similar to vodQA Pune (2019) - Testing ethereum smart contracts (20)

TWISummit 2019 - Blockchain in Enterprise
TWISummit 2019 - Blockchain in EnterpriseTWISummit 2019 - Blockchain in Enterprise
TWISummit 2019 - Blockchain in Enterprise
 
Hyperledger fabric 3
Hyperledger fabric 3Hyperledger fabric 3
Hyperledger fabric 3
 
Hyperledger community update February 2018
Hyperledger  community update   February 2018Hyperledger  community update   February 2018
Hyperledger community update February 2018
 
Kubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing qualityKubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing quality
 
What is the best approach to tdd
What is the best approach to tddWhat is the best approach to tdd
What is the best approach to tdd
 
Startup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo PlatformsStartup InsurTech Award - Galileo Platforms
Startup InsurTech Award - Galileo Platforms
 
Hyperledger composer (from zero to hero )
Hyperledger composer  (from zero to hero )Hyperledger composer  (from zero to hero )
Hyperledger composer (from zero to hero )
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
Experiences with Open Source Telecom Software in the Contact Center Industry
Experiences with Open Source Telecom Software in the Contact Center IndustryExperiences with Open Source Telecom Software in the Contact Center Industry
Experiences with Open Source Telecom Software in the Contact Center Industry
 
MuleSoft Meetup Valletta 1.0
MuleSoft Meetup Valletta  1.0MuleSoft Meetup Valletta  1.0
MuleSoft Meetup Valletta 1.0
 
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
 
What's new in Performance Vision version 2.18
What's new in Performance Vision version 2.18What's new in Performance Vision version 2.18
What's new in Performance Vision version 2.18
 
Simplify and secure your path to the multicloud future
Simplify and secure your path to the multicloud futureSimplify and secure your path to the multicloud future
Simplify and secure your path to the multicloud future
 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a Nutshell
 
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발 [Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
 
Government ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock InGovernment ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock In
 
Blockchain Essentials for Enterprise Architects
Blockchain Essentials for Enterprise ArchitectsBlockchain Essentials for Enterprise Architects
Blockchain Essentials for Enterprise Architects
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
 
AWS Community Day - Amy Negrette - Gateways to Gateways
AWS Community Day - Amy Negrette - Gateways to GatewaysAWS Community Day - Amy Negrette - Gateways to Gateways
AWS Community Day - Amy Negrette - Gateways to Gateways
 

More from vodQA

Performance Testing
Performance TestingPerformance Testing
Performance Testing
vodQA
 
Testing Strategy in Micro Frontend architecture
Testing Strategy in Micro Frontend architectureTesting Strategy in Micro Frontend architecture
Testing Strategy in Micro Frontend architecture
vodQA
 
Api testing libraries using java script an overview
Api testing libraries using java script   an overviewApi testing libraries using java script   an overview
Api testing libraries using java script an overview
vodQA
 
Testing face authentication on mobile
Testing face authentication on mobileTesting face authentication on mobile
Testing face authentication on mobile
vodQA
 
Testing cna
Testing cnaTesting cna
Testing cna
vodQA
 
EDA for QAs
EDA for QAsEDA for QAs
EDA for QAs
vodQA
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev tools
vodQA
 
vodQA Pune (2019) - Augmented reality overview and testing challenges
vodQA Pune (2019) - Augmented reality overview and testing challengesvodQA Pune (2019) - Augmented reality overview and testing challenges
vodQA Pune (2019) - Augmented reality overview and testing challenges
vodQA
 
vodQA Pune (2019) - Performance testing cloud deployments
vodQA Pune (2019) - Performance testing cloud deploymentsvodQA Pune (2019) - Performance testing cloud deployments
vodQA Pune (2019) - Performance testing cloud deployments
vodQA
 
vodQA Pune (2019) - Jenkins pipeline As code
vodQA Pune (2019) - Jenkins pipeline As codevodQA Pune (2019) - Jenkins pipeline As code
vodQA Pune (2019) - Jenkins pipeline As code
vodQA
 
vodQA(Pune) 2018 - Consumer driven contract testing using pact
vodQA(Pune) 2018 - Consumer driven contract testing using pactvodQA(Pune) 2018 - Consumer driven contract testing using pact
vodQA(Pune) 2018 - Consumer driven contract testing using pact
vodQA
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA
 
vodQA(Pune) 2018 - Enhancing the capabilities of testing team preparing for...
vodQA(Pune) 2018 - Enhancing the capabilities of testing team   preparing for...vodQA(Pune) 2018 - Enhancing the capabilities of testing team   preparing for...
vodQA(Pune) 2018 - Enhancing the capabilities of testing team preparing for...
vodQA
 
vodQA(Pune) 2018 - QAing the security way
vodQA(Pune) 2018 - QAing the security wayvodQA(Pune) 2018 - QAing the security way
vodQA(Pune) 2018 - QAing the security way
vodQA
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
vodQA
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptx
vodQA
 
An approach to app security - For beginners
An approach to app security - For beginnersAn approach to app security - For beginners
An approach to app security - For beginners
vodQA
 
Retrospective
RetrospectiveRetrospective
Retrospective
vodQA
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of Automation
vodQA
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
vodQA
 

More from vodQA (20)

Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Testing Strategy in Micro Frontend architecture
Testing Strategy in Micro Frontend architectureTesting Strategy in Micro Frontend architecture
Testing Strategy in Micro Frontend architecture
 
Api testing libraries using java script an overview
Api testing libraries using java script   an overviewApi testing libraries using java script   an overview
Api testing libraries using java script an overview
 
Testing face authentication on mobile
Testing face authentication on mobileTesting face authentication on mobile
Testing face authentication on mobile
 
Testing cna
Testing cnaTesting cna
Testing cna
 
EDA for QAs
EDA for QAsEDA for QAs
EDA for QAs
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev tools
 
vodQA Pune (2019) - Augmented reality overview and testing challenges
vodQA Pune (2019) - Augmented reality overview and testing challengesvodQA Pune (2019) - Augmented reality overview and testing challenges
vodQA Pune (2019) - Augmented reality overview and testing challenges
 
vodQA Pune (2019) - Performance testing cloud deployments
vodQA Pune (2019) - Performance testing cloud deploymentsvodQA Pune (2019) - Performance testing cloud deployments
vodQA Pune (2019) - Performance testing cloud deployments
 
vodQA Pune (2019) - Jenkins pipeline As code
vodQA Pune (2019) - Jenkins pipeline As codevodQA Pune (2019) - Jenkins pipeline As code
vodQA Pune (2019) - Jenkins pipeline As code
 
vodQA(Pune) 2018 - Consumer driven contract testing using pact
vodQA(Pune) 2018 - Consumer driven contract testing using pactvodQA(Pune) 2018 - Consumer driven contract testing using pact
vodQA(Pune) 2018 - Consumer driven contract testing using pact
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
 
vodQA(Pune) 2018 - Enhancing the capabilities of testing team preparing for...
vodQA(Pune) 2018 - Enhancing the capabilities of testing team   preparing for...vodQA(Pune) 2018 - Enhancing the capabilities of testing team   preparing for...
vodQA(Pune) 2018 - Enhancing the capabilities of testing team preparing for...
 
vodQA(Pune) 2018 - QAing the security way
vodQA(Pune) 2018 - QAing the security wayvodQA(Pune) 2018 - QAing the security way
vodQA(Pune) 2018 - QAing the security way
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptx
 
An approach to app security - For beginners
An approach to app security - For beginnersAn approach to app security - For beginners
An approach to app security - For beginners
 
Retrospective
RetrospectiveRetrospective
Retrospective
 
Whys and Hows of Automation
Whys and Hows of AutomationWhys and Hows of Automation
Whys and Hows of Automation
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 

Recently uploaded

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

vodQA Pune (2019) - Testing ethereum smart contracts

  • 1. GLOBAL SOFTWARE CONSULTANCY TESTING ETHEREUM SMART CONTRACTS By Preet G S Anand and Himanshu Pandey 1©ThoughtWorks 2019 Commercial in Confidence VodQA Pune 2019
  • 2. 2©ThoughtWorks 2019 Commercial in Confidence AGENDA BRIEF OVERVIEW OF ETHEREUM DAPP ARCHITECTURE AND TESTING COMPONENTS TESTING IN BLOCKCHAIN PARADIGM
  • 3. BRIEF OVERVIEW OF ETHEREUM 3©ThoughtWorks 2019 Commercial in Confidence Decentralized platform that runs smart contracts
  • 4. 4©ThoughtWorks 2019 Commercial in Confidence WHAT IS DLT? ● Distributed Ledger Technology ● Distribute the ledger across all nodes ● Every node has complete copy of the ledger, and all ledgers are always in sync
  • 5. 5©ThoughtWorks 2019 Commercial in Confidence WHAT IS ETHEREUM ? DISTRIBUTED PUBLIC NETWORK CONSENSUS ETHEREUM VIRTUAL MACHINE
  • 6. 6©ThoughtWorks 2019 Commercial in Confidence DISTRIBUTED PUBLIC NETWORK ● Ethereum is a peer to peer network, somewhat like a mesh topology ● Any new node can be added to this network ● Any machine which is part of ethereum network is a node ● There are three types of ethereum nodes: ○ Full node ○ Lightweight node ○ Miner node
  • 7. 7©ThoughtWorks 2019 Commercial in Confidence CONSENSUS ● Achieve agreement on a single data value in blockchain ● Involves reward for nodes which participate in consensus resolution ● Types : ○ Proof of Work (POW) ○ Proof of Stake (POS) ○ Proof of Authority (POA)
  • 8. 8©ThoughtWorks 2019 Commercial in Confidence ETHEREUM VIRTUAL MACHINE ● Ethereum is a programmable blockchain ● EVM is “Turing Complete” ● EVM is something which differentiates Ethereum with Blockchain ● Each and every node of the network runs the EVM and executes the same instructions
  • 9. DAPP ARCHITECTURE AND TESTING COMPONENTS 9©ThoughtWorks 2019 Commercial in Confidence
  • 10. DAPP ARCHITECTURE 10 HTML / JS / CSS Block EVM BLOCKCHAIN FRONT END BROWSER ©ThoughtWorks 2019 Commercial in Confidence API DB WEB3 API RPC Smart Contracts
  • 11. HOW IS IT DIFFERENT FROM A WEB APP 11 PARTY A PARTY B PARTY C ©ThoughtWorks 2019 Commercial in Confidence
  • 12. Different parts of Web3 API ● Node / Java / Python API ○ Uses Web3 library ○ Talks to blockchain via RPC calls ○ Provides wrappers over smart contracts ● Smart Contracts ● Database HOW DOES THE API LAYER LOOK LIKE 12©ThoughtWorks 2019 Commercial in Confidence API DB Smart Contracts
  • 13. WHAT IS A SMART CONTRACT ● Smart contracts is a misnomer. ● They : ○ Store rules ○ Verifies rules ○ Self execute rules ● Removes need of a middle man as they are self executing, ex: Vending machines ● Help in exchanging money, property, goods in a transparent, direct and trusted way. ● They are responsible for creating blocks in blockchain. 13©ThoughtWorks 2019 Commercial in Confidence
  • 14. SETTING UP A TEST ENVIRONMENT 14©ThoughtWorks 2019 Commercial in Confidence
  • 15. ● In order to communicate with the blockchain, we must use a blockchain client ● Geth is an ethereum client and is written in Go ● Enable you to connect with blockchain over RPC endpoint ● Provides API for account management,transaction management, peer management, debugging 15©ThoughtWorks 2019 Commercial in Confidence GETH
  • 16. 16©ThoughtWorks 2019 Commercial in Confidence ● Development environment ● Testing framework ● Asset pipeline for blockchains using the Ethereum Virtual Machine TRUFFLE
  • 17. ● Install truffle npm i -g truffle ● Initialise project truffle init TRUFFLE SETUP 17©ThoughtWorks 2019 Commercial in Confidence
  • 18. TESTING IN BLOCKCHAIN PARADIGM 18©ThoughtWorks 2019 Commercial in Confidence
  • 19. UNIT TESTS 19©ThoughtWorks 2019 Commercial in Confidence ● Written in solidity (.sol) files ● Direct access to your deployed contracts ● Ability to import any contract dependency
  • 20. INTEGRATION TESTS 20©ThoughtWorks 2019 Commercial in Confidence ● Written in javascript (.js) files ● Uses the Mocha testing framework and Chai for assertions
  • 21. NON FUNCTIONAL TESTING 21©ThoughtWorks 2019 Commercial in Confidence
  • 22. NODE TESTING ● Network Handshaking ● Consensus Handshaking ● Chain Syncing ● Tools : eth-tester ©ThoughtWorks 2019 Commercial in Confidence
  • 23. PERFORMANCE TESTING ● Network Latency ● Transaction Per Second (TPS) ● Block/Transaction Size ● Gas used per transaction ©ThoughtWorks 2019 Commercial in Confidence
  • 24. SECURITY TESTING 24 ● Access and Authentication ● Network Permissioning ● Wallet Signature Method ● Private Keys ● Smart Contract Owner Verification ● Tools : a. Solium b. Solhint c. openzeppelin-solidity ©ThoughtWorks 2019 Commercial in Confidence
  • 25. THANKYOU 25 Preet G S Anand APPLICATION DEVELOPER preetgsa@thoughtworks.com | thoughtworks.com ©ThoughtWorks 2019 Commercial in Confidence HIMANSHU PANDEY APPLICATION DEVELOPER phiman@thoughtworks.com | thoughtworks.com

Editor's Notes

  1. . Most popular implementation of DLT . Unlike bitcoin, which is only used to transfer coins, we can have a complete application deployed in ethereum . Ethereum is on a public network . Biggest differance is that data and code won’t be restricted to one party