节点
区块链是分布式的,所以新加入节点,需要找到其它节点,这时候就是需要有种子节点(也就是发现中心了)1
2
3
4
5
6seed.bitcoin.sipa.be
dnsseed.bluematt.me
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com
seed.bitcoin.jonasschnelli.ch
seed.btc.petertodd.org
用golang写个获取节点列表的例子1
2
3
4
5
6
7
8
9
10
11
12
13func LookUpSeed(seed string) {
ips, err := net.LookupIP(seed)
if err != nil {
panic(err)
}
for i, _ := range ips {
fmt.Println(ips[i])
}
}
func main() {
LookUpSeed("seed.bitcoin.sipa.be")
}
区块链中有不同类型的代币,但通常分为两大类:
- 可互换代币。 可互换代币的特征是:
- 等效
- 可交换
- 按你拥有的代币数量来确定价值
- 不可互换代币。 不可互换代币的特征是:
智能合约
所谓智能合约,就是一种运行在区块链上的程序。
- 不支持浮点运算
- 不支持随机数
- 不支持从外部读取输入
- 等等
Soidity
所有 Solidity 合同通常都包括:
- Pragma 指令
- 状态变量
- 函数
- 事件
值类型
- 整数
整数的范围为可存储的 8 位到 256 位,如果未指定位数,则默认值为 256 位。 - 布尔型
它们的值始终是 true 或 false 字符串文本
它们是用双引号或单引号括起来的字符或字词1
String shipped = "shipped"; // shipped
地址
地址是一种具有 20 字节值的类型,它表示 Ethereum 用户帐户,此类型可以是常规“address”,也可以是“address payable”。- “address payable”类型是 Ether 发送到的地址, 它包含额外的成员 transfer 和 send
- 枚举
可使用枚举在 Solidity 中创建用户定义类型。 之所以称之为用户定义,是因为创建合同的人员决定要包含哪些值。 - 引用类型
与总是传递值的独立副本的值类型不同,引用类型为值提供数据位置。 这三种引用类型为:结构、数组和映射。