# Matic MasterClass:
## Building a Full-Stack dApp
<!-- Put the link to this slide here so people can follow -->
Angela Gilhotra, Application Developer
Matic Network
---
This isn't necessarily a collaborative session, but if you'd like to follow along you can view
slides: https://hackmd.io/@angelagilhotra/ByLhwZjPU
and a corresponding helper doc: https://hackmd.io/@angelagilhotra/Hyuk5ZjvI
---
## What the session is about
- Introduction to the programmable capabilities of Ethereum blockchain
- We'll be learning the basics and building a barebones application to interact with the blockchain
- Two parts:
- Part1: Discussion on the building blocks of Ethereum
- Part2: Interacting with Ethereum
---
## Prerequisites
Familiarity with Javascript, Node, HTML, and the console.
---
# Part 1
---
## Brief discussion:
### Building blocks of Ethereum
---
## What is full-stack?
---
### Web2.0

---
### Web3.0

---
# Ethereum

---
# Nodes ?
Nodes comprise of data, EVM, and 'World State'
---
# World State
- Simply put, mapping between 'addresses' and 'account states'
- What is included in an 'account state'?
`nonce`,
`balance`,
`storageRoot`,
`codeHash`
- Two types of accounts: Externally owned account, Contract account
---
# Transactions
- single cryptographically signed instruction
- Two types:
- result in a message call
- result in creation of new account with associated code
---
## Transactions comprise of:
```
{
from:
to:
value:
gas:
gasPrice:
data: ""
nonce:
}
```
---
### Quick Recap
- Ethereum: 'world-computer'
- Nodes: the computer systems that form the network that is ethereum
- EVM: a tiny little computer inside a node, running 'bytecode'
- Accounts: transaction creators and receivers. Two types(EOA, contract)
- World State: mapping from address to state
- Transactions: a single signed instruction
---
## Part 2: Let's start building
---
## What we'll be using
1. Solidity
2. A simulated Blockchain on our PC
3. HTML, Javascript
---
## What we'll be building

---
## Before we start
Clone the repository and install dependencies:
```
$ git clone https://github.com/nglglhtr/getter-setter
$ cd getter-setter
$ npm install
```
---
---
# Recap
---
# π And that's it!
---
# β
Wrap up
## What we covered
1. What is full-stack in Web3
2. Writing a smart contract
3. Tools that we can use
- To compile our contract, `solc`
- To run a local blockchain, `ganache-cli`
- To interact with blockchain `Node` and `npm`
---
## Where from here? πΆββοΈ
#### Resources to learn dApp development: https://bit.ly/2VaONzb
---
### Thank you! :sheep:
You can find me on
- Github @nglglhtr
- Twitter @angelagilhotra
- or email me angela@matic.network
{"metaMigratedAt":"2023-06-15T06:19:06.739Z","metaMigratedFrom":"YAML","title":"Talk slides","breaks":true,"contributors":"[{\"id\":\"a17aacfe-1020-4124-8515-aff0611dad5c\",\"add\":5635,\"del\":2605}]"}