Máquina Oracle: a ponte que conecta Blockchain e o mundo real
Na tecnologia Blockchain, a Máquina Oracle desempenha um papel de infraestrutura crucial. É um sistema capaz de fornecer informações externas para contratos inteligentes em cadeia, servindo como middleware entre a Blockchain e o mundo externo. A principal função da Máquina Oracle é fornecer os dados externos necessários para os contratos inteligentes na Blockchain.
Por exemplo, suponha que criamos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de transações de petróleo em um determinado dia. Como o contrato inteligente em si não pode acessar diretamente esses dados do mundo real fora da cadeia, é necessário usar uma Máquina Oracle para isso. Neste caso, o contrato inteligente irá registrar os dados necessários do volume de transações de petróleo no log de eventos. Em seguida, um processo fora da cadeia será iniciado para monitorar e assinar esse log de eventos. Quando um pedido na transação for detectado, esse processo irá, por meio da submissão de uma transação na cadeia, chamar os métodos relevantes do contrato e enviar as informações do volume de transações de petróleo para a data especificada de volta ao contrato inteligente.
Chainlink: Líder em Máquinas Oracle de Blockchain
No campo das Máquinas Oracle, a Chainlink é sem dúvida o projeto com a maior quota de mercado. Como uma solução de Máquina Oracle descentralizada, o objetivo da Chainlink é fornecer dados gerados no mundo real para a Blockchain da forma mais segura possível. Com base nos princípios básicos das Máquinas Oracle, a Chainlink construiu um ecossistema em torno do token LINK que forma um ciclo virtuoso através de incentivos económicos.
A ativação da Máquina Oracle Chainlink requer a transferência do token LINK. LINK é um token de contrato ERC677 baseado na rede Ethereum. As funções da Máquina Oracle realizadas com o token LINK ERC677 pertencem ao modo de solicitação/resposta.
transferAndCall no token ERC677
O padrão ERC677 foi proposto pela Chainlink para se adaptar aos cenários de serviços de Máquina Oracle. Ele adiciona o método transferAndCall à norma ERC20, combinando pagamento e solicitação de serviço em um só, atendendo às necessidades dos cenários de negócios de Máquina Oracle.
Quando os usuários realizam transferências usando transferAndCall, além da transferência ERC20 convencional, 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. É importante notar que, antes de solicitar serviços de Máquina Oracle, os usuários devem primeiro confirmar a confiabilidade dessa Máquina Oracle, pois os serviços de Máquina Oracle requerem pagamento antecipado.
processo de solicitação de oráculo na Blockchain
Quando os consumidores da Máquina Oracle utilizam o método transferAndCall para pagar taxas e solicitar serviços, o método onTokenTransfer no contrato da Máquina Oracle realiza primeiro uma série de verificações de segurança. Isso inclui verificar se a transferência é um token LINK, verificar se o comprimento dos dados excede o limite, validar se os dados contêm o seletor de função correto, entre outros.
Após a verificação de segurança, o contrato gerará um requestId único e definirá o tempo de expiração do pedido. Por fim, o contrato emitirá um evento OracleRequest, que conterá os dados detalhados do pedido.
Mecanismo de resposta de nós fora da cadeia
Após receber o evento OracleRequest, o nó fora da cadeia analisará as informações específicas do pedido e obterá os dados necessários através da chamada da API da rede. Em seguida, o nó chamará o método fulfillOracleRequest para submeter os dados na blockchain.
Este método realizará uma série de verificações, incluindo a verificação se o chamador está autorizado, a validação da validade do pedido, entre outras. Após a validação, o contrato registrará o montante de tokens que podem ser retirados e removerá esse requestId do mapeamento de commitments. Por fim, o contrato chamará a função de callback do contrato do solicitante, retornando os dados ao consumidor.
Aplicação prática da Máquina Oracle de preços
Para os desenvolvedores, se apenas precisarem usar os dados de preços de pares de moedas existentes, podem usar diretamente a interface Price Feed fornecida pela Chainlink. Cada par de negociação tem um Price Feed separado ( também conhecido como Aggregator ), que na verdade é um contrato AggregatorProxy.
Estas interfaces geralmente oferecem os seguintes métodos de consulta:
decimals(): Retorna o número de casas decimais dos dados de preço
description(): retorna o nome do par de negociação
version(): Identificar o tipo de Agregador que o Proxy aponta
getRoundData(_roundId): Obter dados de preço para uma ronda específica
latestRoundData(): Obter os dados de preço mais recentes
Na maioria dos cenários de aplicação, o contrato pode precisar apenas de ler o preço mais recente, ou seja, chamar o método latestRoundData(). O parâmetro answer retornado é o preço mais recente.
É importante notar que a maioria dos aplicativos lê os preços dos tokens em USD. Neste caso, a precisão é geralmente unificada em 8 casas decimais, o que simplifica o problema de tratamento de precisão entre diferentes tokens.
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.
5 gostos
Recompensa
5
7
Partilhar
Comentar
0/400
nft_widow
· 2h atrás
Máquina Oracle fantástico Isso não significa que posso andar de lado!
Ver originalResponder0
CountdownToBroke
· 2h atrás
Apenas um passageiro na cadeia.
Ver originalResponder0
BlockchainBouncer
· 2h atrás
Gaga, novamente a explicar o mecanismo da Máquina Oracle!
Ver originalResponder0
StakeTillRetire
· 2h atrás
Máquina Oracle esta coisa é realmente boa, meu contrato inteligente não pode ficar sem ela
Ver originalResponder0
FUD_Whisperer
· 2h atrás
Não consigo nem pagar comida de contrato.
Ver originalResponder0
HalfPositionRunner
· 3h atrás
Estes dados de fritura dependem da Máquina Oracle para serem salvos.
Como a Máquina Oracle se torna a ponte de dados entre Blockchain e o mundo real
Máquina Oracle: a ponte que conecta Blockchain e o mundo real
Na tecnologia Blockchain, a Máquina Oracle desempenha um papel de infraestrutura crucial. É um sistema capaz de fornecer informações externas para contratos inteligentes em cadeia, servindo como middleware entre a Blockchain e o mundo externo. A principal função da Máquina Oracle é fornecer os dados externos necessários para os contratos inteligentes na Blockchain.
Por exemplo, suponha que criamos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de transações de petróleo em um determinado dia. Como o contrato inteligente em si não pode acessar diretamente esses dados do mundo real fora da cadeia, é necessário usar uma Máquina Oracle para isso. Neste caso, o contrato inteligente irá registrar os dados necessários do volume de transações de petróleo no log de eventos. Em seguida, um processo fora da cadeia será iniciado para monitorar e assinar esse log de eventos. Quando um pedido na transação for detectado, esse processo irá, por meio da submissão de uma transação na cadeia, chamar os métodos relevantes do contrato e enviar as informações do volume de transações de petróleo para a data especificada de volta ao contrato inteligente.
Chainlink: Líder em Máquinas Oracle de Blockchain
No campo das Máquinas Oracle, a Chainlink é sem dúvida o projeto com a maior quota de mercado. Como uma solução de Máquina Oracle descentralizada, o objetivo da Chainlink é fornecer dados gerados no mundo real para a Blockchain da forma mais segura possível. Com base nos princípios básicos das Máquinas Oracle, a Chainlink construiu um ecossistema em torno do token LINK que forma um ciclo virtuoso através de incentivos económicos.
A ativação da Máquina Oracle Chainlink requer a transferência do token LINK. LINK é um token de contrato ERC677 baseado na rede Ethereum. As funções da Máquina Oracle realizadas com o token LINK ERC677 pertencem ao modo de solicitação/resposta.
transferAndCall no token ERC677
O padrão ERC677 foi proposto pela Chainlink para se adaptar aos cenários de serviços de Máquina Oracle. Ele adiciona o método transferAndCall à norma ERC20, combinando pagamento e solicitação de serviço em um só, atendendo às necessidades dos cenários de negócios de Máquina Oracle.
Quando os usuários realizam transferências usando transferAndCall, além da transferência ERC20 convencional, 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. É importante notar que, antes de solicitar serviços de Máquina Oracle, os usuários devem primeiro confirmar a confiabilidade dessa Máquina Oracle, pois os serviços de Máquina Oracle requerem pagamento antecipado.
processo de solicitação de oráculo na Blockchain
Quando os consumidores da Máquina Oracle utilizam o método transferAndCall para pagar taxas e solicitar serviços, o método onTokenTransfer no contrato da Máquina Oracle realiza primeiro uma série de verificações de segurança. Isso inclui verificar se a transferência é um token LINK, verificar se o comprimento dos dados excede o limite, validar se os dados contêm o seletor de função correto, entre outros.
Após a verificação de segurança, o contrato gerará um requestId único e definirá o tempo de expiração do pedido. Por fim, o contrato emitirá um evento OracleRequest, que conterá os dados detalhados do pedido.
Mecanismo de resposta de nós fora da cadeia
Após receber o evento OracleRequest, o nó fora da cadeia analisará as informações específicas do pedido e obterá os dados necessários através da chamada da API da rede. Em seguida, o nó chamará o método fulfillOracleRequest para submeter os dados na blockchain.
Este método realizará uma série de verificações, incluindo a verificação se o chamador está autorizado, a validação da validade do pedido, entre outras. Após a validação, o contrato registrará o montante de tokens que podem ser retirados e removerá esse requestId do mapeamento de commitments. Por fim, o contrato chamará a função de callback do contrato do solicitante, retornando os dados ao consumidor.
Aplicação prática da Máquina Oracle de preços
Para os desenvolvedores, se apenas precisarem usar os dados de preços de pares de moedas existentes, podem usar diretamente a interface Price Feed fornecida pela Chainlink. Cada par de negociação tem um Price Feed separado ( também conhecido como Aggregator ), que na verdade é um contrato AggregatorProxy.
Estas interfaces geralmente oferecem os seguintes métodos de consulta:
Na maioria dos cenários de aplicação, o contrato pode precisar apenas de ler o preço mais recente, ou seja, chamar o método latestRoundData(). O parâmetro answer retornado é o preço mais recente.
É importante notar que a maioria dos aplicativos lê os preços dos tokens em USD. Neste caso, a precisão é geralmente unificada em 8 casas decimais, o que simplifica o problema de tratamento de precisão entre diferentes tokens.