Para evitar falhas de ponto único, alguns serviços de Máquina Oracle adotaram um design distribuído. Tomando como exemplo o serviço que fornece o preço do BTC em dólares, uma plataforma de Máquina Oracle conhecida agrega 31 fontes de preços para oferecer serviços aos usuários.
O código-fonte do contrato deste agregador pode ser visualizado no explorador de blocos do Ethereum. Ao chamar o método transmitters no contrato, é possível ver todos os oráculos off-chain que este agregador contém.
Cada Máquina Oracle off-chain pode fornecer dados de preços chamando o método transmit, em resposta aos pedidos dos usuários no agregador. Essas Máquinas Oracle off-chain são algumas contas externas (EOA), que não apenas fornecem dados de preços para o agregador BTC/USD, mas também podem fornecer dados de preços para outros agregadores (, como ETH/USD).
O processo de tratamento de contratos em blockchain é aproximadamente o seguinte:
Primeiro, leia o estado atual do contrato e realize uma série de verificações.
Após a verificação, faça alguns preparativos.
Em seguida, use ecrecover() para verificar cada dado de assinatura, validando se o valor hash corresponde ao hash feito por _report. Ao mesmo tempo, verifique se o papel do signatário é Signer e também verifique a duplicidade da assinatura.
Por fim, verifique se os valores observados estão ordenados. Selecione a mediana median dos valores observados ordenados e assegure-se de que a mediana não exceda os dois limites superiores e inferiores. Se não houver problemas, registre a resposta da Máquina Oracle desta transmissão em s_transmissions. Além disso, também deve verificar a resposta.
Aqui, após uma série de chamadas, finalmente será chamada o método validate do contrato de uma Máquina Oracle de determinado preço. O ponto chave é comparar se a variação de preço fornecida pelas duas máquinas oracle está dentro de um intervalo aceitável.
Registro de Feed
Para aumentar a flexibilidade e reduzir os custos de governança, algumas plataformas lançaram o Feed Registry. Pode ser entendido como um agregador de PriceFeeds, já que agregou vários priceFeeds. Com isso, os usuários não precisam configurar o priceFeed por conta própria, podendo acessar os dados de preços diretamente através do Feed Registry.
mecanismo de oferta
O preço da Máquina Oracle é geralmente obtido através da agregação de dados em múltiplos níveis, que inclui a agregação de fontes de dados, a agregação de operadores de nós e a agregação da rede de oráculos.
Os dados de preços mais originais vêm principalmente de várias plataformas de negociação centralizadas e descentralizadas. Alguns prestadores de serviços de agregação de dados especializados coletam dados de preços brutos dessas plataformas e os processam e integram, como calculando pesos com base em volume de negociação, liquidez e diferença de tempo. Esta é a agregação da fonte de dados de primeiro nível.
A segunda camada é a agregação dos operadores de nó. Cada operador de nó é responsável por executar o software central, obter dados de preços de vários prestadores de serviços de agregação de dados independentes, calcular a mediana, eliminar valores anómalos e o tempo de inatividade da API.
A última camada é a agregação de toda a Máquina Oracle, a forma comum é calcular a mediana dos dados quando o número de nós de resposta atinge um valor pré-definido.
As atualizações de preços normalmente precisam atender a um dos dois parâmetros de gatilho: o limiar de desvio ou o limiar de heartbeat. Os valores desses dois parâmetros podem ser diferentes em diferentes fontes de preços.
De um modo geral, algumas plataformas de Máquina Oracle conhecidas têm uma integração de preços que é conveniente e segura, mas devido à existência de um limite de desvio no mecanismo de atualização de preços, as atualizações são mais lentas, sendo adequadas para aplicações que não são muito sensíveis a atualizações de preços. Esta também é a sua limitação, não podendo ser aplicada a todos os cenários.
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.
18 Curtidas
Recompensa
18
6
Compartilhar
Comentário
0/400
WealthCoffee
· 08-02 23:24
Distribuído é interessante, finalmente não preciso mais olhar a cara das pessoas.
Ver originalResponder0
HashBrownies
· 08-02 07:13
31 fontes de dados, parece que não são suficientes~
Ver originalResponder0
RektDetective
· 08-02 07:08
O dia todo a ver instituições a despirem-se. Já chega de ver isso?
Ver originalResponder0
GasFeeCrier
· 08-02 07:00
Boa rapaz, estou tonto de tanto ver gás pequeno príncipe
Ver originalResponder0
NFTArchaeologis
· 08-02 06:57
na cadeia código lê-se como uma escrita elegante de lacre.
Ver originalResponder0
MEV_Whisperer
· 08-02 06:56
Agregar tanto tem alguma utilidade? Continua a não ser preciso.
Sistema de Máquina Oracle de Preços Distribuídos: Agregação em Múltiplas Camadas e Otimização do Feed Registry
Sistema de Máquina Oracle de Preços Distribuídos
Para evitar falhas de ponto único, alguns serviços de Máquina Oracle adotaram um design distribuído. Tomando como exemplo o serviço que fornece o preço do BTC em dólares, uma plataforma de Máquina Oracle conhecida agrega 31 fontes de preços para oferecer serviços aos usuários.
O código-fonte do contrato deste agregador pode ser visualizado no explorador de blocos do Ethereum. Ao chamar o método transmitters no contrato, é possível ver todos os oráculos off-chain que este agregador contém.
Cada Máquina Oracle off-chain pode fornecer dados de preços chamando o método transmit, em resposta aos pedidos dos usuários no agregador. Essas Máquinas Oracle off-chain são algumas contas externas (EOA), que não apenas fornecem dados de preços para o agregador BTC/USD, mas também podem fornecer dados de preços para outros agregadores (, como ETH/USD).
O processo de tratamento de contratos em blockchain é aproximadamente o seguinte:
Primeiro, leia o estado atual do contrato e realize uma série de verificações.
Após a verificação, faça alguns preparativos.
Em seguida, use ecrecover() para verificar cada dado de assinatura, validando se o valor hash corresponde ao hash feito por _report. Ao mesmo tempo, verifique se o papel do signatário é Signer e também verifique a duplicidade da assinatura.
Por fim, verifique se os valores observados estão ordenados. Selecione a mediana median dos valores observados ordenados e assegure-se de que a mediana não exceda os dois limites superiores e inferiores. Se não houver problemas, registre a resposta da Máquina Oracle desta transmissão em s_transmissions. Além disso, também deve verificar a resposta.
Aqui, após uma série de chamadas, finalmente será chamada o método validate do contrato de uma Máquina Oracle de determinado preço. O ponto chave é comparar se a variação de preço fornecida pelas duas máquinas oracle está dentro de um intervalo aceitável.
Registro de Feed
Para aumentar a flexibilidade e reduzir os custos de governança, algumas plataformas lançaram o Feed Registry. Pode ser entendido como um agregador de PriceFeeds, já que agregou vários priceFeeds. Com isso, os usuários não precisam configurar o priceFeed por conta própria, podendo acessar os dados de preços diretamente através do Feed Registry.
mecanismo de oferta
O preço da Máquina Oracle é geralmente obtido através da agregação de dados em múltiplos níveis, que inclui a agregação de fontes de dados, a agregação de operadores de nós e a agregação da rede de oráculos.
Os dados de preços mais originais vêm principalmente de várias plataformas de negociação centralizadas e descentralizadas. Alguns prestadores de serviços de agregação de dados especializados coletam dados de preços brutos dessas plataformas e os processam e integram, como calculando pesos com base em volume de negociação, liquidez e diferença de tempo. Esta é a agregação da fonte de dados de primeiro nível.
A segunda camada é a agregação dos operadores de nó. Cada operador de nó é responsável por executar o software central, obter dados de preços de vários prestadores de serviços de agregação de dados independentes, calcular a mediana, eliminar valores anómalos e o tempo de inatividade da API.
A última camada é a agregação de toda a Máquina Oracle, a forma comum é calcular a mediana dos dados quando o número de nós de resposta atinge um valor pré-definido.
As atualizações de preços normalmente precisam atender a um dos dois parâmetros de gatilho: o limiar de desvio ou o limiar de heartbeat. Os valores desses dois parâmetros podem ser diferentes em diferentes fontes de preços.
De um modo geral, algumas plataformas de Máquina Oracle conhecidas têm uma integração de preços que é conveniente e segura, mas devido à existência de um limite de desvio no mecanismo de atualização de preços, as atualizações são mais lentas, sendo adequadas para aplicações que não são muito sensíveis a atualizações de preços. Esta também é a sua limitação, não podendo ser aplicada a todos os cenários.