No ecossistema blockchain, as máquinas Oracle desempenham um papel fundamental como uma ponte entre os contratos inteligentes na cadeia e o mundo externo, atuando como uma infraestrutura crucial. A sua função principal é fornecer dados externos para os contratos inteligentes na blockchain.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociação de petróleo bruto em uma determinada data, como o contrato em si não pode acessar diretamente dados do mundo real fora da cadeia, é necessário recorrer à Máquina Oracle para realizá-lo. O processo específico é: o contrato inteligente registra a demanda pelo volume de negociação de petróleo para a data desejada no registro de eventos, e em seguida, um processo fora da cadeia escuta e se inscreve nesse evento. Quando detecta a solicitação relevante, esse processo chama um método específico do contrato através da submissão de uma transação na cadeia, carregando as informações do volume de negociação de petróleo para a data especificada no contrato inteligente.
Entre os muitos projetos de máquinas Oracle, um projeto de máquina Oracle descentralizada destaca-se pela sua quota de mercado, posicionando-se entre os primeiros. Este projeto visa fornecer dados do mundo real para a blockchain da forma mais segura possível. Além de implementar os princípios básicos da máquina Oracle, o projeto construiu um ecossistema de ciclo benéfico em torno do seu token nativo, garantindo a sustentabilidade do sistema através de incentivos econômicos. Neste sistema, a ativação da máquina Oracle requer a transferência do token nativo, e essa funcionalidade da máquina Oracle baseada em token pertence ao modo de solicitação/resposta.
Este projeto utiliza um padrão de token homogeneizado melhorado, que adiciona um método transferAndCall ao padrão ERC20. Este método combina de forma inteligente o pagamento e o pedido de serviço, satisfazendo bem as necessidades do cenário de negócios da Máquina Oracle. Quando o usuário chama transferAndCall para realizar a transferência, além da transferência convencional 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.
No contrato da Máquina Oracle, o método onTokenTransfer primeiro verifica se a transferência foi feita usando o token especificado, e depois verifica a legalidade dos dados do pedido. Após uma série de verificações de segurança, o contrato gera um ID de pedido único, define um tempo de expiração e registra as informações relevantes no mapeamento commitments. O mais importante é que o contrato emite um evento contendo os dados do pedido, que são codificados em um formato de objeto binário leve.
Os nós off-chain, após receberem o pedido, chamarão o método fulfillOracleRequest para responder à solicitação. Este método começará por realizar uma série de verificações, incluindo a verificação da autorização do chamador, a validade do pedido, entre outros. Após a validação bem-sucedida, serão registadas as quantidades de tokens que podem ser extraídos e o ID do pedido será removido do mapeamento de compromissos. Por último, se houver gás restante suficiente, chamará a função de callback do contrato do solicitante.
Na função de callback, a validade do pedido será verificada novamente e os dados retornados serão processados de acordo com as necessidades específicas. Por exemplo, para a Máquina Oracle de preços, pode ser que os dados de preços atuais sejam atualizados.
Para os desenvolvedores, um determinado projeto de Máquina Oracle também oferece uma interface de consulta de preços mais conveniente. Cada par de negociação possui um agregador de preços independente, e os desenvolvedores podem chamar essas interfaces diretamente para obter os dados de preços mais recentes, sem a necessidade de especificar a URL da fonte de dados. Essas interfaces geralmente incluem funcionalidades como precisão de consulta, descrição, versão, dados históricos e dados mais recentes, simplificando consideravelmente o processo de desenvolvimento.
É importante notar que, na maioria dos cenários de aplicação, o contrato pode apenas precisar ler o preço mais recente. Além disso, para pares de negociação cotados em dólares, a precisão do preço é geralmente padronizada em 8 dígitos, o que evita a complicação de lidar com diferenças na precisão de diferentes tokens.
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.
Máquina Oracle técnica: contratos inteligentes e a ponte para o mundo real
Máquina Oracle tecnologia Profundidade análise
No ecossistema blockchain, as máquinas Oracle desempenham um papel fundamental como uma ponte entre os contratos inteligentes na cadeia e o mundo externo, atuando como uma infraestrutura crucial. A sua função principal é fornecer dados externos para os contratos inteligentes na blockchain.
Por exemplo, se implantarmos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociação de petróleo bruto em uma determinada data, como o contrato em si não pode acessar diretamente dados do mundo real fora da cadeia, é necessário recorrer à Máquina Oracle para realizá-lo. O processo específico é: o contrato inteligente registra a demanda pelo volume de negociação de petróleo para a data desejada no registro de eventos, e em seguida, um processo fora da cadeia escuta e se inscreve nesse evento. Quando detecta a solicitação relevante, esse processo chama um método específico do contrato através da submissão de uma transação na cadeia, carregando as informações do volume de negociação de petróleo para a data especificada no contrato inteligente.
Entre os muitos projetos de máquinas Oracle, um projeto de máquina Oracle descentralizada destaca-se pela sua quota de mercado, posicionando-se entre os primeiros. Este projeto visa fornecer dados do mundo real para a blockchain da forma mais segura possível. Além de implementar os princípios básicos da máquina Oracle, o projeto construiu um ecossistema de ciclo benéfico em torno do seu token nativo, garantindo a sustentabilidade do sistema através de incentivos econômicos. Neste sistema, a ativação da máquina Oracle requer a transferência do token nativo, e essa funcionalidade da máquina Oracle baseada em token pertence ao modo de solicitação/resposta.
Este projeto utiliza um padrão de token homogeneizado melhorado, que adiciona um método transferAndCall ao padrão ERC20. Este método combina de forma inteligente o pagamento e o pedido de serviço, satisfazendo bem as necessidades do cenário de negócios da Máquina Oracle. Quando o usuário chama transferAndCall para realizar a transferência, além da transferência convencional 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.
No contrato da Máquina Oracle, o método onTokenTransfer primeiro verifica se a transferência foi feita usando o token especificado, e depois verifica a legalidade dos dados do pedido. Após uma série de verificações de segurança, o contrato gera um ID de pedido único, define um tempo de expiração e registra as informações relevantes no mapeamento commitments. O mais importante é que o contrato emite um evento contendo os dados do pedido, que são codificados em um formato de objeto binário leve.
Os nós off-chain, após receberem o pedido, chamarão o método fulfillOracleRequest para responder à solicitação. Este método começará por realizar uma série de verificações, incluindo a verificação da autorização do chamador, a validade do pedido, entre outros. Após a validação bem-sucedida, serão registadas as quantidades de tokens que podem ser extraídos e o ID do pedido será removido do mapeamento de compromissos. Por último, se houver gás restante suficiente, chamará a função de callback do contrato do solicitante.
Na função de callback, a validade do pedido será verificada novamente e os dados retornados serão processados de acordo com as necessidades específicas. Por exemplo, para a Máquina Oracle de preços, pode ser que os dados de preços atuais sejam atualizados.
Para os desenvolvedores, um determinado projeto de Máquina Oracle também oferece uma interface de consulta de preços mais conveniente. Cada par de negociação possui um agregador de preços independente, e os desenvolvedores podem chamar essas interfaces diretamente para obter os dados de preços mais recentes, sem a necessidade de especificar a URL da fonte de dados. Essas interfaces geralmente incluem funcionalidades como precisão de consulta, descrição, versão, dados históricos e dados mais recentes, simplificando consideravelmente o processo de desenvolvimento.
É importante notar que, na maioria dos cenários de aplicação, o contrato pode apenas precisar ler o preço mais recente. Além disso, para pares de negociação cotados em dólares, a precisão do preço é geralmente padronizada em 8 dígitos, o que evita a complicação de lidar com diferenças na precisão de diferentes tokens.