去中心化Oracle-Chainlink使用
我们构建一个DeFi dapp,需要从链外的API中获取一些数据,比如让您的用户能够获取ETH交易对的价格。JavaScript 应用程序或者其他的中心化应用程序可以轻松获取此类信息,比如向Binance 公共 API(或任何其他公开提供价格信息的服务)发出请求。但是,智能合约不能直接访问链外的数据。所以我们想做的是从去中心化的预言机网络(DON)和去中心化的数据源中获取我们的数据。 Chainlink 是一个去中心化预言机网络(DON)的框架,是一种跨多个预言机从多个来源获取数据的方法。这个 DON 以去中心化的方式聚合数据,并将其放在区块链上的智能合约中供我们读取。因此,我们所要做的就是从 Chainlink 网络不断为我们的合约读取数据! 使用 Chainlink 数据馈送是一种在这种去中心化环境中更便宜、更准确、更安全地从现实世界收集数据的方法。由于数据来自多个来源,因此多个人可以参与生态系统,它**甚至比运行集中式预言机更便宜。并且可以极大程度的减少错误集中,**Chainlink 网络使用一种称为链下报告的系统来就链下数据达成共识,并将经过加密验证的单一交易中的数据报...
去中心化Oracle-Chainlink使用
我们构建一个DeFi dapp,需要从链外的API中获取一些数据,比如让您的用户能够获取ETH交易对的价格。JavaScript 应用程序或者其他的中心化应用程序可以轻松获取此类信息,比如向Binance 公共 API(或任何其他公开提供价格信息的服务)发出请求。但是,智能合约不能直接访问链外的数据。所以我们想做的是从去中心化的预言机网络(DON)和去中心化的数据源中获取我们的数据。 Chainlink 是一个去中心化预言机网络(DON)的框架,是一种跨多个预言机从多个来源获取数据的方法。这个 DON 以去中心化的方式聚合数据,并将其放在区块链上的智能合约中供我们读取。因此,我们所要做的就是从 Chainlink 网络不断为我们的合约读取数据! 使用 Chainlink 数据馈送是一种在这种去中心化环境中更便宜、更准确、更安全地从现实世界收集数据的方法。由于数据来自多个来源,因此多个人可以参与生态系统,它**甚至比运行集中式预言机更便宜。并且可以极大程度的减少错误集中,**Chainlink 网络使用一种称为链下报告的系统来就链下数据达成共识,并将经过加密验证的单一交易中的数据报...

关于智能合约随机数生成
在区块中关于随机数的概念:在以太坊的智能合约中,没有提供像其他面向对象编程一样的生成随机数的工具类或方法。其实,所谓的随机数也是伪随机的,没有哪一种语言能够真正的生成随机数。 对于solidity来说通过复杂的算法生成随机数成本太高,同时智能合约又运行在多个节点上,因此,不能使用像时钟时间来生成随机数。 我们在 Solidity 里如何生成随机数呢?真正的答案是你不能,或者最起码,你无法安全地做到这一点。因为区块链的全部内容对所有参与者来说是透明的, 这就让这个问题变得很难,但是我们有一些方案可以让随机数的使用变得更加安全。1.用 keccak256 来制造随机数。在一笔交易中,这笔交易什么时候,被谁打包到区块中,对用户来说是不可知的,但是一旦被打包到区块中,这些值就是确定的了,因此我们可以利用区块的打包时间block.timestamp、区块的打包难度block.difficulty作为种子生成随机数。0-100随机数生成器代码如下:这个方法很容易被不诚实的节点攻击在以太坊上, 当你在和一个合约上调用函数的时候, 你会把它广播给一个节点或者在网络上的 transaction 节...

关于智能合约随机数生成
在区块中关于随机数的概念:在以太坊的智能合约中,没有提供像其他面向对象编程一样的生成随机数的工具类或方法。其实,所谓的随机数也是伪随机的,没有哪一种语言能够真正的生成随机数。 对于solidity来说通过复杂的算法生成随机数成本太高,同时智能合约又运行在多个节点上,因此,不能使用像时钟时间来生成随机数。 我们在 Solidity 里如何生成随机数呢?真正的答案是你不能,或者最起码,你无法安全地做到这一点。因为区块链的全部内容对所有参与者来说是透明的, 这就让这个问题变得很难,但是我们有一些方案可以让随机数的使用变得更加安全。1.用 keccak256 来制造随机数。在一笔交易中,这笔交易什么时候,被谁打包到区块中,对用户来说是不可知的,但是一旦被打包到区块中,这些值就是确定的了,因此我们可以利用区块的打包时间block.timestamp、区块的打包难度block.difficulty作为种子生成随机数。0-100随机数生成器代码如下:这个方法很容易被不诚实的节点攻击在以太坊上, 当你在和一个合约上调用函数的时候, 你会把它广播给一个节点或者在网络上的 transaction 节...