No ecossistema blockchain, a Máquina Oracle desempenha um papel fundamental na conexão entre contratos inteligentes e o mundo exterior. Como uma infraestrutura, o sistema de Máquina Oracle pode fornecer informações e dados do mundo exterior para contratos inteligentes em cadeia.
Por exemplo, suponha que tenhamos implantado um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociação de petróleo em uma determinada data. Como o contrato inteligente em si não pode acessar diretamente os dados do mundo real fora da cadeia, é necessário usar uma Máquina Oracle para realizar essa função. O processo específico é: o contrato inteligente grava o volume de negociação de petróleo da data necessária no registro de eventos, em seguida, um processo de monitoramento fora da cadeia é iniciado para assinar esse evento. Assim que a solicitação relevante for detectada, esse processo chamará o método correspondente do contrato através da submissão de uma transação na cadeia, transmitindo as informações do volume de negociação de petróleo da data especificada para o contrato inteligente.
Entre os muitos projetos de Máquina Oracle, a Chainlink ocupa uma posição de destaque no mercado. Como uma solução de Máquina Oracle descentralizada, a Chainlink se dedica a fornecer dados do mundo real para blockchains da forma mais segura possível. Com base nos princípios fundamentais das Máquinas Oracle, foi construído um ecossistema em torno do token LINK que forma um ciclo virtuoso através de incentivos econômicos. A ativação das Máquinas Oracle da Chainlink requer a transferência do token LINK, que é um contrato ERC677 na rede Ethereum. As funcionalidades das Máquinas Oracle realizadas com o token LINK ERC677 pertencem ao modelo de solicitação/resposta.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, combinando o pagamento e o pedido de serviço, atendendo melhor às necessidades do cenário de negócios da Máquina Oracle. Quando um usuário utiliza transferAndCall para transferir, além da operação de transferência ERC20 convencional, também se verifica se o endereço de recebimento é um endereço de contrato. Se for, o método onTokenTransfer desse endereço será chamado.
No processo de solicitação do serviço de Máquina Oracle, o consumidor deve primeiro confirmar a credibilidade da Máquina Oracle, pois o pagamento antecipado é necessário antes da prestação do serviço. O método onTokenTransfer do contrato da Máquina Oracle realizará uma série de verificações de segurança, incluindo a validação se a transferência é um token LINK, verificar se o comprimento dos dados está dentro dos limites e validar o selector da função, entre outros. Após as verificações, o contrato gerará um requestId único, definirá um tempo de expiração e emitirá um evento OracleRequest contendo os dados da solicitação.
Após receber o pedido, o nó off-chain irá responder chamando o método fulfillOracleRequest. Este método realizará uma série de validações, incluindo a verificação de permissões do chamador e a validação da validade do pedido. Após a validação, o nó chamará a função de callback do contrato do solicitante, retornando os dados ao pedido.
Para os desenvolvedores, se precisarem apenas de usar os dados de preços dos pares de moedas existentes, podem chamar diretamente a interface Price Feed fornecida oficialmente. Cada par de negociação tem um Price Feed independente (, ou seja, AggregatorProxy), que fornece métodos de consulta, incluindo decimals(), description(), version(), getRoundData() e latestRoundData(). Dentre estes, o método latestRoundData() retorna o parâmetro answer, que é o preço mais recente. Vale ressaltar que, para os pares de negociação cotados em dólares, a precisão costuma ser padronizada em 8 casas decimais.
Desta forma, os desenvolvedores podem facilmente obter e utilizar os dados de preços em tempo real fornecidos pela Máquina Oracle na blockchain, sem precisar lidar com processos complexos de chamadas de API e validação de dados.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
10 gostos
Recompensa
10
5
Partilhar
Comentar
0/400
AlwaysAnon
· 11h atrás
Só se pode entender bebendo, o que é que a ChainLink sabe?
Profundidade de análise: como a Máquina Oracle conecta contratos inteligentes ao mundo exterior
Máquina Oracle técnica Profundidade análise
No ecossistema blockchain, a Máquina Oracle desempenha um papel fundamental na conexão entre contratos inteligentes e o mundo exterior. Como uma infraestrutura, o sistema de Máquina Oracle pode fornecer informações e dados do mundo exterior para contratos inteligentes em cadeia.
Por exemplo, suponha que tenhamos implantado um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociação de petróleo em uma determinada data. Como o contrato inteligente em si não pode acessar diretamente os dados do mundo real fora da cadeia, é necessário usar uma Máquina Oracle para realizar essa função. O processo específico é: o contrato inteligente grava o volume de negociação de petróleo da data necessária no registro de eventos, em seguida, um processo de monitoramento fora da cadeia é iniciado para assinar esse evento. Assim que a solicitação relevante for detectada, esse processo chamará o método correspondente do contrato através da submissão de uma transação na cadeia, transmitindo as informações do volume de negociação de petróleo da data especificada para o contrato inteligente.
Entre os muitos projetos de Máquina Oracle, a Chainlink ocupa uma posição de destaque no mercado. Como uma solução de Máquina Oracle descentralizada, a Chainlink se dedica a fornecer dados do mundo real para blockchains da forma mais segura possível. Com base nos princípios fundamentais das Máquinas Oracle, foi construído um ecossistema em torno do token LINK que forma um ciclo virtuoso através de incentivos econômicos. A ativação das Máquinas Oracle da Chainlink requer a transferência do token LINK, que é um contrato ERC677 na rede Ethereum. As funcionalidades das Máquinas Oracle realizadas com o token LINK ERC677 pertencem ao modelo de solicitação/resposta.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, combinando o pagamento e o pedido de serviço, atendendo melhor às necessidades do cenário de negócios da Máquina Oracle. Quando um usuário utiliza transferAndCall para transferir, além da operação de transferência ERC20 convencional, também se verifica se o endereço de recebimento é um endereço de contrato. Se for, o método onTokenTransfer desse endereço será chamado.
No processo de solicitação do serviço de Máquina Oracle, o consumidor deve primeiro confirmar a credibilidade da Máquina Oracle, pois o pagamento antecipado é necessário antes da prestação do serviço. O método onTokenTransfer do contrato da Máquina Oracle realizará uma série de verificações de segurança, incluindo a validação se a transferência é um token LINK, verificar se o comprimento dos dados está dentro dos limites e validar o selector da função, entre outros. Após as verificações, o contrato gerará um requestId único, definirá um tempo de expiração e emitirá um evento OracleRequest contendo os dados da solicitação.
Após receber o pedido, o nó off-chain irá responder chamando o método fulfillOracleRequest. Este método realizará uma série de validações, incluindo a verificação de permissões do chamador e a validação da validade do pedido. Após a validação, o nó chamará a função de callback do contrato do solicitante, retornando os dados ao pedido.
Para os desenvolvedores, se precisarem apenas de usar os dados de preços dos pares de moedas existentes, podem chamar diretamente a interface Price Feed fornecida oficialmente. Cada par de negociação tem um Price Feed independente (, ou seja, AggregatorProxy), que fornece métodos de consulta, incluindo decimals(), description(), version(), getRoundData() e latestRoundData(). Dentre estes, o método latestRoundData() retorna o parâmetro answer, que é o preço mais recente. Vale ressaltar que, para os pares de negociação cotados em dólares, a precisão costuma ser padronizada em 8 casas decimais.
Desta forma, os desenvolvedores podem facilmente obter e utilizar os dados de preços em tempo real fornecidos pela Máquina Oracle na blockchain, sem precisar lidar com processos complexos de chamadas de API e validação de dados.