1.1 C语言出现的历史北京
1.2 C语言的特点
- 语言简洁、紧凑,使用方便灵活
- 运算符丰富
- 数据类型丰富,具有现代语言的各种数据结构
- 具有结构化的控制语句
- 语法限制不太严格,程序设计自由度大
- C语言允许直接访问物理地址,能进行bit操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
- 生成目标代码质量高,程序执行效率高
- 用C语言编写的程序可移植性好,基本不做修改就能用于各种型号的计算机和各种操作系统
将使用Solidity编程语言创建一个Dapp用于证明在特定时间的存在、真实性和所有权,即证明一个文件在一个特定时间属于一个特定所有者
Solidity源文件使用的扩展名为.sol
MacOS部署Solidity
http://wiki.jikexueyuan.com/project/solidity-zh/installing-solidity.html
如何学习以太坊? -> 从以太坊的白皮书和黄皮书开始/Building Blockchain Projects
通过有趣的现实世界案例,将了解到如何编写完全按照程序运行、没有欺诈、没有中心机构或者第三方干预的智能合约,并学习如何创建端到端的区块链应用。
将介绍加密货币中的密码学、以太币安全、挖矿、智能合约和Solidity等概念
实例代码下载地址:http://www.packtpub.com
目前几乎所有互联网应用都是中心化,每个应用的服务端由一个特定的企业或者个人所有,开发者在开发中心化应用,用户也一直在使用中心化应用。
但是中心化应用存在一些问题:不透明、单点故障、不能防止网络审查。几乎不可能创建某些特定类型的应用
为了解决这一问题,去中心化应用诞生了,它创建以网络为基础的去中心化应用Dapp
我们将所有的安装放置在/home/zhyunfe/下1
2
3
4
5
6cd /home/zhyunfe
mkdir geth
git clone https://github.com/ethereum/go-ethereum
sudo apt-get install -y build-essential golang
cd go-ethereum
make geth
安装完了之后我们可以使用命令测试一下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15zhyunfe@zhyunfe: /home/zhyunfe$ geth
WARN [08-29|04:30:34.204] Sanitizing cache to Go's GC limits provided=1024 updated=320
INFO [08-29|04:30:34.879] Maximum peer count ETH=25 LES=0 total=25
INFO [08-29|04:30:34.916] Starting peer-to-peer node instance=Geth/v1.8.15-unstable-63352bf4/linux-amd64/go1.10.1
INFO [08-29|04:30:34.919] Allocated cache and file handles database=/home/zhyunfe/.ethereum/geth/chaindata cache=240 handles=512
INFO [08-29|04:30:35.448] Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: <nil> Engine: ethash}"
INFO [08-29|04:30:35.785] Disk storage enabled for ethash caches dir=/home/zhyunfe/.ethereum/geth/ethash count=3
INFO [08-29|04:30:35.794] Disk storage enabled for ethash DAGs dir=/home/zhyunfe/.ethash count=2
INFO [08-29|04:30:35.812] Initialising Ethereum protocol versions="[63 62]" network=1
INFO [08-29|04:30:36.314] Loaded most recent local header number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [08-29|04:30:36.317] Loaded most recent local full block number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [08-29|04:30:36.318] Loaded most recent local fast block number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [08-29|04:30:36.399] Loaded local transaction journal transactions=0 dropped=0
INFO [08-29|04:30:36.443] Regenerated local transaction journal transactions=0 accounts=0
INFO [08-29|04:30:36.453] Starting P2P networking
1 | pragma solidity ^0.4.19; |
状态变量是被永久地保存在合约中,也就是说他们被写入以太币区块链中,想象成写入一个数据库1
2
3
4
5
6
7
8
contract ZombieFactory {
//uint 无符号数据类型,指其值不能是附属,对于有符号的整数存在名为int 的数据类型
// Solidity 中uint是uint256的代名词,一个256位的无符号整数 还有uint8 uint16 uint 32一般用uint就可以了
//定义僵尸的DNA由一个十六位数字组成
uint dnaDigits = 16;
}