如标题所示,向Chainlink Functions发出请求时,可以使用Date.now()吗?为什么/为什么不?或者向第 3 方 API 发出请求并检索和聚合当前时间数据通常是更好的做法吗?
你可以运行这样的东西,
return Functions.encodeUint256(Date.now())
,
在你的函数中没有问题。
我会对在区块链环境中使用精确日期/时间持谨慎态度,因为结果不会立即存储在链上。
请参阅 solidty 文档
中的注释不要依赖
或block.timestamp
作为随机性来源,除非你知道自己在做什么。blockhash
时间戳和区块哈希都会在一定程度上受到矿工的影响。例如,采矿社区中的不良行为者可以在选定的哈希上运行赌场支付功能,如果他们没有收到任何钱,则只需重试不同的哈希。
当前区块时间戳必须严格大于最后一个区块的时间戳,但唯一的保证是它将位于规范链中两个连续区块的时间戳之间。