O papel e a implementação do sistema Máquina Oracle na Blockchain
Máquina Oracle é uma infraestrutura fundamental na área de Blockchain, cuja principal função é fornecer dados externos para contratos inteligentes. Como uma ponte que conecta contratos inteligentes e o mundo real, a Máquina Oracle desempenha um papel crucial no ecossistema Blockchain.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter o volume de negociações de petróleo bruto em uma data específica, como o contrato em si não pode acessar diretamente os dados fora da cadeia, será necessário utilizar uma Máquina Oracle. Nesse caso, o contrato inteligente escreverá as informações necessárias nos logs de eventos, e então um processo fora da cadeia ouvirá esse evento. Quando a solicitação for detectada, esse processo transmitirá os dados do volume de negociações de petróleo bruto para a data especificada ao contrato inteligente, através da submissão de uma transação na cadeia.
Entre os muitos projetos de Máquina Oracle, a Chainlink ocupa uma posição de destaque no mercado. A Chainlink é uma rede de Máquina Oracle descentralizada, destinada a fornecer dados do mundo real para a Blockchain de forma segura e confiável. Ela construiu um mecanismo de incentivo econômico através do token LINK, formando um ecossistema de ciclo virtuoso.
A ativação da Máquina Oracle Chainlink requer a transferência de tokens LINK. LINK é um contrato ERC677 na rede Ethereum, e a funcionalidade da Máquina Oracle baseada em tokens LINK ERC677 pertence ao modo de solicitação/resposta.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, que combina pagamento e solicitação de serviço, atendendo melhor às necessidades dos cenários de negócios de Máquina Oracle. Quando um usuário realiza uma transferência transferAndCall, além da transferência padrão ERC20, também é verificado se o endereço de recebimento é um endereço de contrato. Se for, o método onTokenTransfer desse endereço será chamado.
Antes de solicitar os serviços da Máquina Oracle, os usuários precisam confirmar a confiabilidade da Máquina Oracle, pois uma taxa deve ser paga antecipadamente antes da prestação do serviço. A confiabilidade da Máquina Oracle pode ser avaliada com base no seu desempenho histórico, sistema de reputação e outros fatores.
Quando a Máquina Oracle recebe um pedido de serviço, ele é processado pelo método onTokenTransfer. Este método realiza uma série de verificações de segurança, incluindo a validação se a transferência é um token LINK, verificação se o comprimento dos dados está em conformidade, validação do selector da função, entre outros. Após as verificações, a Máquina Oracle emitirá o evento OracleRequest, que contém os detalhes do pedido.
Os nós fora da cadeia vão escutar esses eventos, analisar as informações do pedido e, em seguida, obter os dados necessários através de chamadas de API. Depois, o nó chamará o método fulfillOracleRequest do contrato Oracle para submeter os dados na cadeia. Este método realizará uma série de validações e, em seguida, retornará o resultado à função de callback do solicitante.
Para os desenvolvedores, se precisarem apenas de dados de preços de pares de moedas já existentes, podem usar diretamente o Price Feed fornecido pela Chainlink. Cada par de negociação tem um Price Feed separado (também chamado de Agregador), que é, na verdade, um contrato AggregatorProxy. Esses contratos oferecem vários métodos chave, como obter os dados de preços mais recentes com o latestRoundData().
Na maioria dos cenários de aplicação, o contrato só precisa ler o preço mais recente. Vale a pena notar que, para os pares de negociação cotados em dólares, a precisão dos dados de preço é geralmente unificada em 8 casas decimais, o que simplifica o problema do tratamento de precisão entre diferentes tokens.
Desta forma, os contratos inteligentes podem obter e utilizar facilmente dados do mundo externo, expandindo significativamente as possibilidades das aplicações de Blockchain.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
10 gostos
Recompensa
10
6
Partilhar
Comentar
0/400
StrawberryIce
· 19h atrás
link não vai aguentar esta onda de mercado, certo?
Ver originalResponder0
not_your_keys
· 19h atrás
Comprar cedo é libertador $LINK foi severamente subestimado
Máquina Oracle: Blockchain e a ponte para o mundo real. Como a Chainlink realiza a transmissão de dados.
O papel e a implementação do sistema Máquina Oracle na Blockchain
Máquina Oracle é uma infraestrutura fundamental na área de Blockchain, cuja principal função é fornecer dados externos para contratos inteligentes. Como uma ponte que conecta contratos inteligentes e o mundo real, a Máquina Oracle desempenha um papel crucial no ecossistema Blockchain.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter o volume de negociações de petróleo bruto em uma data específica, como o contrato em si não pode acessar diretamente os dados fora da cadeia, será necessário utilizar uma Máquina Oracle. Nesse caso, o contrato inteligente escreverá as informações necessárias nos logs de eventos, e então um processo fora da cadeia ouvirá esse evento. Quando a solicitação for detectada, esse processo transmitirá os dados do volume de negociações de petróleo bruto para a data especificada ao contrato inteligente, através da submissão de uma transação na cadeia.
Entre os muitos projetos de Máquina Oracle, a Chainlink ocupa uma posição de destaque no mercado. A Chainlink é uma rede de Máquina Oracle descentralizada, destinada a fornecer dados do mundo real para a Blockchain de forma segura e confiável. Ela construiu um mecanismo de incentivo econômico através do token LINK, formando um ecossistema de ciclo virtuoso.
A ativação da Máquina Oracle Chainlink requer a transferência de tokens LINK. LINK é um contrato ERC677 na rede Ethereum, e a funcionalidade da Máquina Oracle baseada em tokens LINK ERC677 pertence ao modo de solicitação/resposta.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, que combina pagamento e solicitação de serviço, atendendo melhor às necessidades dos cenários de negócios de Máquina Oracle. Quando um usuário realiza uma transferência transferAndCall, além da transferência padrão ERC20, também é verificado se o endereço de recebimento é um endereço de contrato. Se for, o método onTokenTransfer desse endereço será chamado.
Antes de solicitar os serviços da Máquina Oracle, os usuários precisam confirmar a confiabilidade da Máquina Oracle, pois uma taxa deve ser paga antecipadamente antes da prestação do serviço. A confiabilidade da Máquina Oracle pode ser avaliada com base no seu desempenho histórico, sistema de reputação e outros fatores.
Quando a Máquina Oracle recebe um pedido de serviço, ele é processado pelo método onTokenTransfer. Este método realiza uma série de verificações de segurança, incluindo a validação se a transferência é um token LINK, verificação se o comprimento dos dados está em conformidade, validação do selector da função, entre outros. Após as verificações, a Máquina Oracle emitirá o evento OracleRequest, que contém os detalhes do pedido.
Os nós fora da cadeia vão escutar esses eventos, analisar as informações do pedido e, em seguida, obter os dados necessários através de chamadas de API. Depois, o nó chamará o método fulfillOracleRequest do contrato Oracle para submeter os dados na cadeia. Este método realizará uma série de validações e, em seguida, retornará o resultado à função de callback do solicitante.
Para os desenvolvedores, se precisarem apenas de dados de preços de pares de moedas já existentes, podem usar diretamente o Price Feed fornecido pela Chainlink. Cada par de negociação tem um Price Feed separado (também chamado de Agregador), que é, na verdade, um contrato AggregatorProxy. Esses contratos oferecem vários métodos chave, como obter os dados de preços mais recentes com o latestRoundData().
Na maioria dos cenários de aplicação, o contrato só precisa ler o preço mais recente. Vale a pena notar que, para os pares de negociação cotados em dólares, a precisão dos dados de preço é geralmente unificada em 8 casas decimais, o que simplifica o problema do tratamento de precisão entre diferentes tokens.
Desta forma, os contratos inteligentes podem obter e utilizar facilmente dados do mundo externo, expandindo significativamente as possibilidades das aplicações de Blockchain.