Máquina Oracle técnica detalhada: o caso do Chainlink
Máquina Oracle é a infraestrutura fundamental que conecta contratos inteligentes ao mundo exterior no campo da blockchain. Ela atua como um sistema de middleware, capaz de fornecer informações de dados externos para contratos inteligentes na cadeia. A função principal da Máquina Oracle é entregar dados para contratos inteligentes na blockchain.
Por exemplo, suponha que implantemos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociações de petróleo bruto em uma data específica. Como o contrato inteligente em si não pode acessar diretamente dados do mundo real fora da cadeia, é necessário recorrer à Máquina Oracle para isso. O fluxo específico é: o contrato inteligente primeiro registra a necessidade de dados sobre o volume de negociações de petróleo bruto na data necessária no registro de eventos, e então um processo fora da cadeia será iniciado para monitorar e assinar esse registro de eventos. Quando o pedido na transação é detectado, esse processo chamará os métodos relevantes do contrato através da submissão de uma transação na cadeia, carregando as informações sobre o volume de negociações de petróleo bruto na data especificada para o contrato inteligente.
No mercado de máquinas Oracle, o Chainlink detém a maior participação de mercado. Como um projeto de máquina Oracle descentralizado, o Chainlink visa 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, o Chainlink estabeleceu um ecossistema de ciclo virtuoso em torno do token LINK através de incentivos econômicos. As máquinas Oracle do Chainlink precisam ser acionadas através da transferência de tokens LINK. O LINK é um contrato ERC677 na rede Ethereum, e as funções de máquina Oracle realizadas com o token LINK pertencem ao modo de solicitação/resposta.
O padrão de token ERC677 adiciona o método transferAndCall à base do ERC20. Este método combina pagamento e solicitação de serviço, atendendo à necessidade do cenário de negócios da Máquina Oracle. Quando um usuário realiza uma transferência transferAndCall, além da transferência 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 os serviços da Máquina Oracle, os usuários precisam confirmar a confiabilidade da Máquina Oracle, pois ela requer pagamento antes de fornecer serviços ao consumidor. Quando os consumidores da Máquina Oracle utilizam o método transferAndCall para pagar taxas e solicitar serviços, o método onTokenTransfer do contrato da Máquina Oracle 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 ultrapassa o limite, validação do selector da função, entre outros. Somente após a aprovação das verificações, é que será feita a chamada ao método oracleRequest do contrato oracle através do deleGatecall.
O método oracleRequest irá gerar um requestId único, definir um tempo de expiração e emitir o evento OracleRequest. Este evento contém os dados da solicitação, utilizando o formato de codificação CBOR. Os nós off-chain ouvirão este evento, extrairão as informações da solicitação e, em seguida, chamarão a API para obter os dados necessários, finalmente, através do envio de uma transação, invocarão o método fulfillOracleRequest para submeter os dados na blockchain.
O método fulfillOracleRequest realizará uma série de validações, incluindo a verificação de permissões do chamador, a validação da validade da solicitação, entre outras. Após a validação bem-sucedida, será registrado o montante de tokens que podem ser extraídos e será chamada a função de retorno do contrato do solicitante para retornar os dados.
Para os desenvolvedores, se apenas quiserem usar os dados de preços das pares de moedas existentes, podem chamar diretamente a interface Price Feed fornecida oficialmente. Cada par de negociação tem um Price Feed separado (, que é na verdade o contrato Aggregator), ou seja, o contrato AggregatorProxy. Os desenvolvedores podem obter os dados de preços mais recentes chamando o método latestRoundData(), onde o parâmetro answer é o preço mais recente. A maioria dos pares de negociação cotados em USD tem uma precisão uniforme de 8 casas decimais, simplificando o tratamento da 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.
16 gostos
Recompensa
16
5
Partilhar
Comentar
0/400
PebbleHander
· 5h atrás
É assim que as coisas são.
Ver originalResponder0
BankruptWorker
· 5h atrás
É muito difícil, desistir da luta.
Ver originalResponder0
CryptoGoldmine
· 5h atrás
Eu ganhei 200 vezes no ano passado com o mercado do link, apenas com análise técnica.
Ver originalResponder0
TestnetScholar
· 5h atrás
link foi novamente copiado
Ver originalResponder0
Web3Educator
· 5h atrás
coisas fundamentalmente fascinantes, deixe-me explicar isso para meus alunos de web3...
Máquina Oracle Chainlink: a ponte que conecta Blockchain ao mundo real
Máquina Oracle técnica detalhada: o caso do Chainlink
Máquina Oracle é a infraestrutura fundamental que conecta contratos inteligentes ao mundo exterior no campo da blockchain. Ela atua como um sistema de middleware, capaz de fornecer informações de dados externos para contratos inteligentes na cadeia. A função principal da Máquina Oracle é entregar dados para contratos inteligentes na blockchain.
Por exemplo, suponha que implantemos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de negociações de petróleo bruto em uma data específica. Como o contrato inteligente em si não pode acessar diretamente dados do mundo real fora da cadeia, é necessário recorrer à Máquina Oracle para isso. O fluxo específico é: o contrato inteligente primeiro registra a necessidade de dados sobre o volume de negociações de petróleo bruto na data necessária no registro de eventos, e então um processo fora da cadeia será iniciado para monitorar e assinar esse registro de eventos. Quando o pedido na transação é detectado, esse processo chamará os métodos relevantes do contrato através da submissão de uma transação na cadeia, carregando as informações sobre o volume de negociações de petróleo bruto na data especificada para o contrato inteligente.
No mercado de máquinas Oracle, o Chainlink detém a maior participação de mercado. Como um projeto de máquina Oracle descentralizado, o Chainlink visa 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, o Chainlink estabeleceu um ecossistema de ciclo virtuoso em torno do token LINK através de incentivos econômicos. As máquinas Oracle do Chainlink precisam ser acionadas através da transferência de tokens LINK. O LINK é um contrato ERC677 na rede Ethereum, e as funções de máquina Oracle realizadas com o token LINK pertencem ao modo de solicitação/resposta.
O padrão de token ERC677 adiciona o método transferAndCall à base do ERC20. Este método combina pagamento e solicitação de serviço, atendendo à necessidade do cenário de negócios da Máquina Oracle. Quando um usuário realiza uma transferência transferAndCall, além da transferência 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 os serviços da Máquina Oracle, os usuários precisam confirmar a confiabilidade da Máquina Oracle, pois ela requer pagamento antes de fornecer serviços ao consumidor. Quando os consumidores da Máquina Oracle utilizam o método transferAndCall para pagar taxas e solicitar serviços, o método onTokenTransfer do contrato da Máquina Oracle 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 ultrapassa o limite, validação do selector da função, entre outros. Somente após a aprovação das verificações, é que será feita a chamada ao método oracleRequest do contrato oracle através do deleGatecall.
O método oracleRequest irá gerar um requestId único, definir um tempo de expiração e emitir o evento OracleRequest. Este evento contém os dados da solicitação, utilizando o formato de codificação CBOR. Os nós off-chain ouvirão este evento, extrairão as informações da solicitação e, em seguida, chamarão a API para obter os dados necessários, finalmente, através do envio de uma transação, invocarão o método fulfillOracleRequest para submeter os dados na blockchain.
O método fulfillOracleRequest realizará uma série de validações, incluindo a verificação de permissões do chamador, a validação da validade da solicitação, entre outras. Após a validação bem-sucedida, será registrado o montante de tokens que podem ser extraídos e será chamada a função de retorno do contrato do solicitante para retornar os dados.
Para os desenvolvedores, se apenas quiserem usar os dados de preços das pares de moedas existentes, podem chamar diretamente a interface Price Feed fornecida oficialmente. Cada par de negociação tem um Price Feed separado (, que é na verdade o contrato Aggregator), ou seja, o contrato AggregatorProxy. Os desenvolvedores podem obter os dados de preços mais recentes chamando o método latestRoundData(), onde o parâmetro answer é o preço mais recente. A maioria dos pares de negociação cotados em USD tem uma precisão uniforme de 8 casas decimais, simplificando o tratamento da precisão entre diferentes tokens.