以太坊开发入门笔记(一)全概

预备:

1.了解区块链(特别是比特币)的相关知识。

比特币:比特币相当于是一个受大家认同的分布式的账本(包含姓名还有余额),交易的进行的实质其实就是账本上数据的变化,并且这种变化是全世界所有的分布式的账本一起变化的。
账本是所有人可见但是有一定的匿名性。
比特币可能出现的安全的问题:
a.如何保持账本的一个统一性?——每次自己要进行交易的时候将交易广播。
b.盗取别人的账号进行交易——每个用户都有一个独一无二的签名(数字),创建账号时会有一个用户的私玥
c.如何判断交易的先后?(可能会导致同一笔钱可以交易两次)——交易池,链来保持顺序,数学彩票方式决定那一笔交易是下一个。
d.挖矿,取决于算力

以太坊:

以太坊,Ethereum是一个分布式的计算机,有许多的节点,其中的每一个节点,都会执行字节码(其实就是智能合约),然后把结果存在区块链上。由于整个网络是分布式的,且应用就是一个个的状态组成,存储了状态就有了服务;所以它就能永不停机,没有一个中心化的结点(没有任何一个节点说了算,去中心化的),任何第三方不能干预。

以太坊白皮书:中文版
https://ethfans.org/wikis/%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6

以太坊白皮书:英文版:
https://github.com/ethereum/wiki/wiki/White-Paper

智能合约:
智能合约=代码+代码运行后存在区块链上的状态。
就是一段代码。
GitHub学习资料
:https://github.com/EthFans/wiki/wiki/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6

Gas:
执行代码需要花费的成本.每一个节点都是全节点,所以代码总是需要执行很多次。
如果你写一个死循环,当gas耗尽后,网络就会拒绝执行接下来的操作,并且回滚你之前的所有操作。

分布式APP
一个分布式App是指,服务端运行于以太坊网络上一个或多个智能合约。
一个分布式App把需要大家共同信任的状态存在区块链上就好了,不然很花费GAS。分布式APP是与以太坊的区块链进行交互。

以太坊节点:
每个节点都存储了整个区块链的数据,并重放所有的交易以验证结果的状态。

以太坊代币:
代币的数据结构就是这样简单,存的就是某个用户,它当前的余额。
ERC20代币与ERC23代币:概念
协议代币与App币:概念

与智能合约交互:

Truffle和Embark:*Truffle和Embark框架*,标准化和自动化了这些琐碎的工作。它们提供了一个好的开发,部署,以及更为重要的,测试智能合约的体验。

EVM以及智能合约创建的状态:
EVM:标准虚拟机

你可能感兴趣的:(区块链学习)