-
Notifications
You must be signed in to change notification settings - Fork 4
/
ethcomponent.html
84 lines (76 loc) · 6.35 KB
/
ethcomponent.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE HTML>
<html>
<head>
<title>Components of Ethereum</title>
<link rel="icon" href="./images/Fevicon/comp.ico">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="assets/css/main.css" />
</head>
<body class="is-preload">
<div id="wrapper">
<header id="header">
<h1>Components of Ethereum</h1><br>
</header>
<div id="main">
<section id="content" class="main">
<h2>Ethereum Nodes</h2>
<img class="responsive" class="Enode" src="./images/compnode.png" alt="Ethereum Nodes" >
<p>They are the peer-to-peer machines that link to form an Ethereum network.
Nodes communicate with one another in order to validate transactions and record data about the status of the blockchain. On the Ethereum network, these computers or servers are responsible for storing, validating, and trading data.
Each node keeps its own copy of the blockchain and strives to verify that it matches the copies of all the other nodes. A new block is added based on whether or not the majority of nodes accept it.
</p>
<h2>Transactions</h2>
<p>In Ethereum, performing a function that modifies the state of a contract is considered as a transaction.</p>
<h4>The three different kinds of transactions that can be carried out in Ethereum are as follows:</h4>
<ol>
<li>Transferring ether between accounts: The accounts can be contract accounts or externally owned account.</li>
<li>Smart contract deployment: Using EVM, an externally own account can deploy a contract.</li>
<li>In working or using a function of a contract : In Ethereum,a function that modifies the state of a contract is considered as a transaction.</li>
</ol>
<h4>Characteristics of a transaction:</h4>
<ul>
<li><b> From:</b> The account that is initiating the transaction is identified by the "from" account attribute, which represents an account that is prepared to send some gas or ether. The account may be contract-owned or externally owned.</li>
<li><b> To: </b>An account that is receiving ether or benefits instead of an exchange is referred to by the "to" account property. The field is blank for transactions involving the contract's deployment. It can be a contract account or something else entirely.</li>
<li><b> Value: </b>The amount of Ether that is moved from one account to another is described by the "value" account property.</li>
<li><b> Input:</b> The "input" account property refers to the compiled contract bytecode. It is used to store information about function calls to smart contracts and their associated parameters. </li>
<li><b> BlockHash: </b>The hash of the block to which this transaction belongs.</li>
<li><b> BlockNumber:</b> The block to which this transaction belongs is identified by the "blockNumber" account property.</li>
<li><b> Gas: </b>The amount of "gas" delivered by the sender who is carrying out this transaction is referred to as the gas account property.</li>
<li><b> GasPrice: </b>The sender's willingness to pay the price per gas in wei is indicated by the "gasPrice" account property.</li>
<li><b> Transaction Index:</b> The serial number of the most recent transaction in the block .</li>
<li><b> Value:</b> The quantity of Ether transferred in wei is the "value" account feature.</li>
</ul>
<h2>Ethereum Virtual Machine</h2>
<span ><img class="responsive" class="machine" src="./images/machine.png" alt="EVM"/></span>
<p>Ethereum is technically a globally decentralized general-purpose computer. It manages the deployment and execution of smart contracts. It is not only sandboxed but actually completely isolated, which means that code running inside the EVM has no access to network, filesystem or other processes. The Ethereum Virtual Machine’s instruction set is Turing-complete, allowing contracts deployed on the network to perform any task a regular computer program can do. However, this ability comes with a crucial caveat – some programs could take forever to execute. This results into ‘the halting problem’ and puts the Ethereum network at risk of running a never-ending program. A program like this would completely stall the network, but luckily Ethereum has a clever way of dealing with this issue.
</p> <p> Using a concept known as ‘gas,’ the network demands a fee for its computation costs. After a certain maximum computation has been performed, the execution ends after the gas fueling the transaction is depleted, and the EVM halts the program. This means that the EVM is only a quasi-Turing complete machine – it runs any program you throw at it, but only if the program ends after using a certain amount of computational power.
</p>
<h2>Decentralized Applications (DApps)</h2>
<p>Dapps are effectively smart contracts that also have a frontend user interface, making them similar in function to traditional applications. They offer a more comprehensive viewpoint than smart-contracts.
Dapps are based on open, decentralized, peer-to-peer infrastructure services in a border sense. </p>
<h4>Architecture of Dapps is composed of :</h4>
<ol>
<li> Frontend</li>
<li> Backend - smart contract on blockchain</li>
</ol>
<h4>Additional decentralized elements :</h4>
<ul>
<li>Messaging protocol and platform (Whisper) :
Whisper lets nodes in the network communicate with each other.</li>
<li>Storage protocol and platform (Swarm) :
Swarm allows DApps to efficiently share the storage and
bandwidth resources of their data in order to provide the necessary services to end users.</li>
</ul>
</section>
</div>
</div>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.scrollex.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/browser.min.js"></script>
<script src="assets/js/breakpoints.min.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/main.js"></script>
</body>
</html>