Máquina Oracle técnica detalhada: o caso do Chainlink
No ecossistema blockchain, a Máquina Oracle desempenha um papel crucial ao conectar contratos inteligentes na cadeia com o mundo externo. Como uma infraestrutura, o sistema de Máquina Oracle pode fornecer dados externos para contratos inteligentes na blockchain, permitindo a realização de cenários de aplicação mais complexos.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter dados de volume de transações de petróleo em uma data específica, como o contrato em si não pode acessar diretamente as informações fora da cadeia, é necessário recorrer à Máquina Oracle para isso. O processo específico é: o contrato inteligente primeiro registra o pedido de dados no log de eventos, em seguida, um processo fora da cadeia escuta e responde a esse pedido, transmitindo as informações especificadas para o contrato inteligente através da submissão de uma transação na cadeia.
Chainlink é atualmente o projeto de Máquina Oracle descentralizada com a maior quota de mercado. Ele construiu um mecanismo de incentivo econômico através do token LINK, formando um ecossistema de ciclo virtuoso. O acionamento da Máquina Oracle da Chainlink requer a transferência de tokens LINK, que é baseado no contrato ERC677 da Ethereum.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, e este design atende às necessidades especiais do cenário de serviços de Máquina Oracle. Quando o usuário chama transferAndCall para realizar uma transferência, além da operação de transferência padrão do ERC20, também será 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 serviços da Máquina Oracle, os usuários devem primeiro confirmar a confiabilidade da Máquina Oracle. 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, ela processa através do método onTokenTransfer. Este método primeiro verifica se a transferência é um token LINK e, em seguida, verifica a legalidade dos dados do pedido. Após a validação, a Máquina Oracle emite um evento OracleRequest, que contém os detalhes do pedido.
Após o nó off-chain ouvir este evento, ele irá analisar as informações do pedido, obter os dados necessários através da chamada da API e, em seguida, submeter os dados na blockchain através do método fulfillOracleRequest. Este método, após realizar uma série de validações, retornará os resultados para a função de callback do solicitante.
Para os desenvolvedores, a Chainlink também oferece um serviço de oráculo de preços mais conveniente. Cada par de negociação tem um Price Feed separado (também conhecido como Aggregator), que na verdade é um contrato AggregatorProxy. Esses contratos fornecem 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.
É importante notar que os pares de negociação denominados em dólares têm geralmente uma precisão de dados de preço padronizada em 8 casas decimais, o que simplifica o tratamento da precisão de preços entre diferentes tokens.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
13 Curtidas
Recompensa
13
5
Repostar
Compartilhar
Comentário
0/400
DAOplomacy
· 08-10 12:47
precedente histórico sugere que o fosso do oráculo permanece... *alinhamento de incentivos sub-óptimo* para ser honesto
Chainlink Máquina Oracle: a ponte que conecta contratos inteligentes ao mundo externo
Máquina Oracle técnica detalhada: o caso do Chainlink
No ecossistema blockchain, a Máquina Oracle desempenha um papel crucial ao conectar contratos inteligentes na cadeia com o mundo externo. Como uma infraestrutura, o sistema de Máquina Oracle pode fornecer dados externos para contratos inteligentes na blockchain, permitindo a realização de cenários de aplicação mais complexos.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter dados de volume de transações de petróleo em uma data específica, como o contrato em si não pode acessar diretamente as informações fora da cadeia, é necessário recorrer à Máquina Oracle para isso. O processo específico é: o contrato inteligente primeiro registra o pedido de dados no log de eventos, em seguida, um processo fora da cadeia escuta e responde a esse pedido, transmitindo as informações especificadas para o contrato inteligente através da submissão de uma transação na cadeia.
Chainlink é atualmente o projeto de Máquina Oracle descentralizada com a maior quota de mercado. Ele construiu um mecanismo de incentivo econômico através do token LINK, formando um ecossistema de ciclo virtuoso. O acionamento da Máquina Oracle da Chainlink requer a transferência de tokens LINK, que é baseado no contrato ERC677 da Ethereum.
O padrão ERC677 adiciona o método transferAndCall à base do ERC20, e este design atende às necessidades especiais do cenário de serviços de Máquina Oracle. Quando o usuário chama transferAndCall para realizar uma transferência, além da operação de transferência padrão do ERC20, também será 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 serviços da Máquina Oracle, os usuários devem primeiro confirmar a confiabilidade da Máquina Oracle. 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, ela processa através do método onTokenTransfer. Este método primeiro verifica se a transferência é um token LINK e, em seguida, verifica a legalidade dos dados do pedido. Após a validação, a Máquina Oracle emite um evento OracleRequest, que contém os detalhes do pedido.
Após o nó off-chain ouvir este evento, ele irá analisar as informações do pedido, obter os dados necessários através da chamada da API e, em seguida, submeter os dados na blockchain através do método fulfillOracleRequest. Este método, após realizar uma série de validações, retornará os resultados para a função de callback do solicitante.
Para os desenvolvedores, a Chainlink também oferece um serviço de oráculo de preços mais conveniente. Cada par de negociação tem um Price Feed separado (também conhecido como Aggregator), que na verdade é um contrato AggregatorProxy. Esses contratos fornecem 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.
É importante notar que os pares de negociação denominados em dólares têm geralmente uma precisão de dados de preço padronizada em 8 casas decimais, o que simplifica o tratamento da precisão de preços entre diferentes tokens.