一文读懂去中心化交易平台(DEX)
去中心化交易平台(下文简称DEX)是点对点的交易市场,用户可以绕过中间方直接交易和管理cryptocurrency。DEX可以替代银行、券商、支付系统等传统中介,使用区块链智能合约来交易资产。 传统金融交易流程往往缺乏透明性,需要依靠中介执行,而且中介的许多操作都不对外公开。相比之下,DEX完全公开资金流向和交易机制。另外,由于交易中用户资金不会经过第三方的cryptocurrency钱包,因此DEX可以降低cryptocurrency生态中的对手方风险以及系统性的中心化风险。 DEX是去中心化金融(下文简称DeFi)的基石,也是不可或缺的一块“货币乐高”,具有无需许可的可组合性,并可以打造出更加高级的金融产品。 DEX Volume DEX现货交易量快速增长。 (资料来源) 本文探讨了DEX的运行机制、不同类型及其对整个cryptocurrency生态带来的价值和存在的风险。去中心化交易平台的运行机制DEX有许多不同的设计模式,每个模式在功能、可扩展性和去中心化方面都各有利弊。两种最常见的类型包括订单簿DEX和自动做市商(AMM)。DEX聚合器也是常见的模式,这类聚合器可以在各...

学习Solidity,全栈Web3,Javascript和区块链开发
我们终于在 freeCodeCamp 发布了关于全栈 web3,solidity 和区块链开发的完整课程。你现在可以通过该课程学习 Solidity 并且成为一名区块链工程师了。 这个长达 30+ 小时的视频教程由 18 节课组成,会让对 Web3 感兴趣的开发者从零到一百完整学习相关技术。不管你之前是否有开发经验,都可以跟着课程,深入学习课程内容来将自己培养成为一名专业的 Web3 软件工程师。 Chainlink开发者社区中国负责人Frank对视频进行了中文翻译,以帮助您更好地深入学习,感兴趣的小伙伴请点击链接,也欢迎您关注我们的B站账号,除此之外,您还可以在 GitHub 和社区 获得更多支持。 为什么你应该学习这个 Solidity 和 Web3 的课程智能合约,区块链和预言机这三个开创性的技术,因为其天然具备的透明性,可验证性和去中心化三个特点,所以有潜力去重塑社会的信任关系。然而,想要在未来实现一个由去中心化技术和区块链所驱动的世界,我们需要更多的智能合约开发者来开发出易于使用的应用。这个从零到一的课程会教给你一些必要的工具,通过使用这些工具,你可以切换到 新的开发模...
Chainlink为全世界所有混合型智能合约提供最丰富的去中心化服务。


一文读懂去中心化交易平台(DEX)
去中心化交易平台(下文简称DEX)是点对点的交易市场,用户可以绕过中间方直接交易和管理cryptocurrency。DEX可以替代银行、券商、支付系统等传统中介,使用区块链智能合约来交易资产。 传统金融交易流程往往缺乏透明性,需要依靠中介执行,而且中介的许多操作都不对外公开。相比之下,DEX完全公开资金流向和交易机制。另外,由于交易中用户资金不会经过第三方的cryptocurrency钱包,因此DEX可以降低cryptocurrency生态中的对手方风险以及系统性的中心化风险。 DEX是去中心化金融(下文简称DeFi)的基石,也是不可或缺的一块“货币乐高”,具有无需许可的可组合性,并可以打造出更加高级的金融产品。 DEX Volume DEX现货交易量快速增长。 (资料来源) 本文探讨了DEX的运行机制、不同类型及其对整个cryptocurrency生态带来的价值和存在的风险。去中心化交易平台的运行机制DEX有许多不同的设计模式,每个模式在功能、可扩展性和去中心化方面都各有利弊。两种最常见的类型包括订单簿DEX和自动做市商(AMM)。DEX聚合器也是常见的模式,这类聚合器可以在各...

学习Solidity,全栈Web3,Javascript和区块链开发
我们终于在 freeCodeCamp 发布了关于全栈 web3,solidity 和区块链开发的完整课程。你现在可以通过该课程学习 Solidity 并且成为一名区块链工程师了。 这个长达 30+ 小时的视频教程由 18 节课组成,会让对 Web3 感兴趣的开发者从零到一百完整学习相关技术。不管你之前是否有开发经验,都可以跟着课程,深入学习课程内容来将自己培养成为一名专业的 Web3 软件工程师。 Chainlink开发者社区中国负责人Frank对视频进行了中文翻译,以帮助您更好地深入学习,感兴趣的小伙伴请点击链接,也欢迎您关注我们的B站账号,除此之外,您还可以在 GitHub 和社区 获得更多支持。 为什么你应该学习这个 Solidity 和 Web3 的课程智能合约,区块链和预言机这三个开创性的技术,因为其天然具备的透明性,可验证性和去中心化三个特点,所以有潜力去重塑社会的信任关系。然而,想要在未来实现一个由去中心化技术和区块链所驱动的世界,我们需要更多的智能合约开发者来开发出易于使用的应用。这个从零到一的课程会教给你一些必要的工具,通过使用这些工具,你可以切换到 新的开发模...
Chainlink为全世界所有混合型智能合约提供最丰富的去中心化服务。
Share Dialog
Share Dialog

Subscribe to Chainlink预言机

Subscribe to Chainlink预言机
以太坊域名服务或者ENS能为区块链地址提供人类可读的名称,能为以太坊用户和开发者提供简化的体验。用户可以通过清晰易读的地址与智能合约进行交互,而无需使用可能会造成混淆并导致错误的长字符串哈希。
Chainlink正向着使用ENS作为Data Feeds地址的真实来源的方向前进。 考虑到这一点,了解 ENS 是什么以及它的工作原理就尤为重要。
ENS是一项在以太坊区块链上实现分布式、开放和可扩展命名的服务。或者简单地说,它是一个查找服务。ENS 有一个简单的任务:它将人类可读的名称映射到机器可读的地址。从这个意义上说,它类似于域名服务或DNS,DNS会将IP地址替换为域名。但 ENS替换的不是IP地址,而是将区块链地址替换为人类可读的名称。
ENS为地址、哈希和其他标识符提供命名服务。在没有ENS的情况下,用户需要知道以太坊区块链上合约或钱包的完整 64 个字符的地址才能与之交互。
ENS提供了使用人类可读地址的方式。 这类可读地址可以用作域名,也可以启用域名层次结构,也就是说可以为ENS地址指定子域名。
顶级ENS域名由称为注册中心的智能合约所拥有。这些注册中心提供管理子域名分配的规则。在`.eth`顶级域名上,Chainlink与ENS广泛合作,提供`data.eth`域名,其中包含可识别的Chainlink Price Feed地址索引,使得发现以太坊区块链上的Chainlink 预言机网络更加容易。这意味着开发者可以使用诸如`eth-usd.data.eth`之类的人类可读地址来代替诸如`0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419`之类的合约地址。
在支持Web3的 Javascript库中,使用ENS解析域名非常简单。 比如使用 web3.js:
var address = ens.getAddress('eth-usd.data.eth');
其他支持ENS的库可以在ENS文档中找到。
当ENS地址在链上使用时会更加有趣。
ENS文档提供了节点哈希的参考。节点哈希是使用递归算法构造的,该算法会获取域名用 `.` 分隔的每个部分,并将它们哈希在一起。 基于EIP-137的规范,该算法的伪代码如下:
def namehash(name):
if name == '':
return '\0' * 32
else:
label, _, remainder = name.partition('.')
return sha3(namehash(remainder) + sha3(label))
该名称被拆分为几个组件,然后从最后一个组件开始,连接在一起。 `eth-usd.data.eth` 的节点哈希结果将通过以下步骤创建。
node = '\0' * 32
node = sha3(node + sha3('eth'))
node = sha3(node + sha3('data'))
node = sha3(node + sha3('eth-usd'))
值得注意的是为了哈希算法产生正确的输出,必须首先对名称进行规范化。ENS 要求任何使用它的人都必须遵循 UTS46进行规范化和验证。
考虑到该过程的复杂性,推荐将节点哈希结果传递给合约,而不是在链上计算它。 eth-ens-namehash这个npm 包可以用于操作规范化和哈希计算。
此外,The Graph也有一个可用的API能用于查找有关ENS域名的数据; `labelhash` 是包含此信息的特定字段,但也还有更多可用信息。
一旦定义了ENS地址的节点哈希,就可以使用它来解析链上的合约地址。同样,这对解析器很有用,因为节点哈希和人类可读地址是相同的。 解析器作为我们正在解析的实体地址的真实性来源。在本文的情况下,待解析的实体就是Chainlink Data Feeds。
在链上 Solidity 合约中,你需要为 ENS 合约和解析器实现几个接口。
abstract contract ENS {
function resolver(bytes32 node) public virtual view returns (Resolver);
}
abstract contract Resolver {
function addr(bytes32 node) public virtual view returns (address);
}
当这些接口被定义后,就可以创建一个简单的解析器把节点哈希转换为一个地址。
contract MyContract {
// This is the ENS registry address
// It is the same address for Mainet, Ropsten, Rinkerby, Gorli and other networks;
ENS ens = ENS(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e);
function resolve(bytes32 node) public view returns(address) {
Resolver resolver = ens.resolver(node);
return resolver.addr(node);
}
}
Chainlink选择了使用 ENS 作为Data Feeds地址的真实来源。ENS消除了对长地址的使用需求,并有助于确保使用正确的区块链地址进行交互。
要了解有关 ENS 和 Chainlink 的更多信息,可访问Chainlink 文档。
访问 chain.link 或阅读 docs.chain.link 上的文档可以了解有关 Chainlink 的更多信息。要讨论集成,请联系专家。
以太坊域名服务或者ENS能为区块链地址提供人类可读的名称,能为以太坊用户和开发者提供简化的体验。用户可以通过清晰易读的地址与智能合约进行交互,而无需使用可能会造成混淆并导致错误的长字符串哈希。
Chainlink正向着使用ENS作为Data Feeds地址的真实来源的方向前进。 考虑到这一点,了解 ENS 是什么以及它的工作原理就尤为重要。
ENS是一项在以太坊区块链上实现分布式、开放和可扩展命名的服务。或者简单地说,它是一个查找服务。ENS 有一个简单的任务:它将人类可读的名称映射到机器可读的地址。从这个意义上说,它类似于域名服务或DNS,DNS会将IP地址替换为域名。但 ENS替换的不是IP地址,而是将区块链地址替换为人类可读的名称。
ENS为地址、哈希和其他标识符提供命名服务。在没有ENS的情况下,用户需要知道以太坊区块链上合约或钱包的完整 64 个字符的地址才能与之交互。
ENS提供了使用人类可读地址的方式。 这类可读地址可以用作域名,也可以启用域名层次结构,也就是说可以为ENS地址指定子域名。
顶级ENS域名由称为注册中心的智能合约所拥有。这些注册中心提供管理子域名分配的规则。在`.eth`顶级域名上,Chainlink与ENS广泛合作,提供`data.eth`域名,其中包含可识别的Chainlink Price Feed地址索引,使得发现以太坊区块链上的Chainlink 预言机网络更加容易。这意味着开发者可以使用诸如`eth-usd.data.eth`之类的人类可读地址来代替诸如`0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419`之类的合约地址。
在支持Web3的 Javascript库中,使用ENS解析域名非常简单。 比如使用 web3.js:
var address = ens.getAddress('eth-usd.data.eth');
其他支持ENS的库可以在ENS文档中找到。
当ENS地址在链上使用时会更加有趣。
ENS文档提供了节点哈希的参考。节点哈希是使用递归算法构造的,该算法会获取域名用 `.` 分隔的每个部分,并将它们哈希在一起。 基于EIP-137的规范,该算法的伪代码如下:
def namehash(name):
if name == '':
return '\0' * 32
else:
label, _, remainder = name.partition('.')
return sha3(namehash(remainder) + sha3(label))
该名称被拆分为几个组件,然后从最后一个组件开始,连接在一起。 `eth-usd.data.eth` 的节点哈希结果将通过以下步骤创建。
node = '\0' * 32
node = sha3(node + sha3('eth'))
node = sha3(node + sha3('data'))
node = sha3(node + sha3('eth-usd'))
值得注意的是为了哈希算法产生正确的输出,必须首先对名称进行规范化。ENS 要求任何使用它的人都必须遵循 UTS46进行规范化和验证。
考虑到该过程的复杂性,推荐将节点哈希结果传递给合约,而不是在链上计算它。 eth-ens-namehash这个npm 包可以用于操作规范化和哈希计算。
此外,The Graph也有一个可用的API能用于查找有关ENS域名的数据; `labelhash` 是包含此信息的特定字段,但也还有更多可用信息。
一旦定义了ENS地址的节点哈希,就可以使用它来解析链上的合约地址。同样,这对解析器很有用,因为节点哈希和人类可读地址是相同的。 解析器作为我们正在解析的实体地址的真实性来源。在本文的情况下,待解析的实体就是Chainlink Data Feeds。
在链上 Solidity 合约中,你需要为 ENS 合约和解析器实现几个接口。
abstract contract ENS {
function resolver(bytes32 node) public virtual view returns (Resolver);
}
abstract contract Resolver {
function addr(bytes32 node) public virtual view returns (address);
}
当这些接口被定义后,就可以创建一个简单的解析器把节点哈希转换为一个地址。
contract MyContract {
// This is the ENS registry address
// It is the same address for Mainet, Ropsten, Rinkerby, Gorli and other networks;
ENS ens = ENS(0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e);
function resolve(bytes32 node) public view returns(address) {
Resolver resolver = ens.resolver(node);
return resolver.addr(node);
}
}
Chainlink选择了使用 ENS 作为Data Feeds地址的真实来源。ENS消除了对长地址的使用需求,并有助于确保使用正确的区块链地址进行交互。
要了解有关 ENS 和 Chainlink 的更多信息,可访问Chainlink 文档。
访问 chain.link 或阅读 docs.chain.link 上的文档可以了解有关 Chainlink 的更多信息。要讨论集成,请联系专家。
<100 subscribers
<100 subscribers
No activity yet