关于Ether背景
关于 Ether一词,Vitalik Buterin曾经提过,「Ether」念起来响亮好听,而且其意义为「充满宇宙,让光线行进却不可见的物质」,以太坊的愿景具有类似意义,希望区块链的应用能扩散至每个领域,重新打造一个透明,公平,效率的新世界。
以太单位(Ether Units)
数字常量(字面量)后面添加后缀wei, finney, szabo 或者 ether,这些后缀都是以太坊货币单位,不同的单位可以转换。如果** Ether**没有后缀单位的话,默认是 wei,例如, 2 ether == 2000 finney,评估为 true
Eth不同单位之间的换算方式如下:
- 1 ether == 10^3 finney
- 1 ether == 10^6 szabo
- 1 ether == 10^18 wei
以太坊的单位,沿袭了科学界的传统,用做过杰出贡献的数学、密码学专家的名字命名。
wei: Wei Dai 戴伟 密码学家 ,发表 B-money
finney: Hal Finney 芬尼 密码学家、工作量证明机制(POW)提出
szabo: Nick Szabo 尼克萨博 密码学家、智能合约的提出者
时间单位(Time Units)
像seconds, minutes, hours, days, weeks 和 years都可以加在数字常量后面作为时间单位,不同的单位之间可以相互转换,转换方式如下:
-
1 == 1 seconds (默认单位)
-
1 minutes == 60 seconds
-
1 hours == 60 minutes
-
1 days == 24 hours
-
1 weeks = 7 days
-
1 years = 365 days
注意:使用这些单位进行日期计算需要特别小心,因为不是每年都是365天,且并不是每天都有24小时,因为还有闰秒(leap seconds
)。由于无法预测闰秒,必须由外部的预言(oracle)来更新从而得到一个精确的日历库。
注意:
由于上诉原因,years后缀已经被废弃了。
这些后缀不适用于变量,如果你想对输入的变量,说明其后缀单位,比如days,你可以通过如下方式来实现:
function f(uint start, uint daysAfter) public {
if (now >= start + daysAfter * 1 days) {
// ...
}
}
网友评论