PageSourceSearch

https://docs.redstone.finance/assets/js/e0087c87.e62ba536.js

js redstone.finance collected 2026-10-02 17:09:10 UTC 7,034 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkredstone_docs=globalThis.webpackChunkredstone_docs||[]).push([[7369],{4042(e,t,r){r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"network-tokenomics/restaking-avs/service-components","title":"Service Components","description":"The AVS operates through several key components, each playing a crucial role in the validation and aggregation process.","source":"@site/docs/network-tokenomics/restaking-avs/service-components.md","sourceDirName":"network-tokenomics/restaking-avs","slug":"/network-tokenomics/restaking-avs/service-components","permalink":"/docs/network-tokenomics/restaking-avs/service-components","draft":false,"unlisted":false,"editUrl":"https://github.com/redstone-finance/redstone-docs/tree/main/docs/network-tokenomics/restaking-avs/service-components.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"sidebar_position":3,"sidebar_label":"Service Components"},"sidebar":"tutorialSidebar","previous":{"title":"RedStone AVS","permalink":"/docs/network-tokenomics/restaking-avs/redstone-avs"},"next":{"title":"Rewards","permalink":"/docs/network-tokenomics/restaking-avs/rewards"}}');var a=r(4848),i=r(8453);const s={sidebar_position:3,sidebar_label:"Service Components"},o="Service Components",c={},d=[{value:"Task Performer",id:"task-performer",level:2},{value:"Attester",id:"attester",level:2},{value:"Validation API",id:"validation-api",level:2},{value:"Aggregator",id:"aggregator",level:2},{value:"Smart contracts",id:"smart-contracts",level:2},{value:"Network Participation and Roles",id:"network-participation-and-roles",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"service-components",children:"Service Components"})}),"\n",(0,a.jsx)(t.p,{children:"The AVS operates through several key components, each playing a crucial role in the validation and aggregation process."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{alt:"RedStone AVS diagram",src:r(2224).A+"",width:"3174",height:"1046"})}),"\n",(0,a.jsx)(t.h2,{id:"task-performer",children:"Task Performer"}),"\n",(0,a.jsx)(t.p,{children:"The Task Performer is responsible for fetching data from multiple oracle nodes using a DDL (Data Distribution Layer).\nIt then verifies the retrieved data for correctness, consistency, and proper signing.\nSubsequently, it extracts the timestamp and calculates the median price from the data obtained from various nodes.\nSimultaneously, it checks the current price and timestamp returned by the smart contract.\nIf the price has changed by more than a predefined deviation or if more than a specified time has passed since the last update, the calculated result is sent to the aggregator."}),"\n",(0,a.jsx)(t.h2,{id:"attester",children:"Attester"}),"\n",(0,a.jsx)(t.p,{children:"Attesters are responsible for verifying the result calculated by the Performer and casting a vote either in favor or against based on this verification.\nEach such vote must be signed by the Attester.\nThe verification process is carried out using the Validation API."}),"\n",(0,a.jsx)(t.h2,{id:"validation-api",children:"Validation API"}),"\n",(0,a.jsx)(t.p,{children:"The Validation API is a service that verifies the accuracy of the result calculated by the Task Performer.\nThe API verifies the data returned by the oracle nodes.\nFor each node, it checks if its public key is included in a predetermined whitelist.\nAdditionally, the median and timestamp calculated by the Performer are verified.\nThe verification result, a Boolean value, is returned to the Attester."}),"\n",(0,a.jsx)(t.h2,{id:"aggregator",children:"Aggregator"}),"\n",(0,a.jsx)(t.p,{children:"The Aggregator acts as a hub, receiving results computed by the Task Performer.\nThese results are sent to a pool of Attesters, who have previously registered with the AVS network through the Aggregator.\nThe Aggregator then monitors for events originating from Attesters, specifically signed votes indicating their approval or disapproval of the verified result.\nThese votes are aggregated into a collective BLS signature.\nFinally, the consolidated result from the Task Performer, accompanied by the BLS signature, is transmitted to the corresponding smart contract deployed on the blockchain."}),"\n",(0,a.jsx)(t.h2,{id:"smart-contracts",children:"Smart contracts"}),"\n",(0,a.jsx)(t.p,{children:"After being verified by Attesters, the Task Performer's result is sent to the blockchain.\nSmart contracts do not need to re-verify the received data.\nIt is sufficient for them to check if the data has been signed by a sufficient number of Attesters.\nThis approach significantly saves on gas fees.\nIf the new price receives enough votes, it is saved in the contract along with a new timestamp.\nAdditionally, the Attesters are credited 
1with an appropriate reward in the contract for their work, which can be claimed later."}),"\n",(0,a.jsxs)(t.admonition,{type:"info",children:[(0,a.jsxs)(t.p,{children:["The address of the ",(0,a.jsx)(t.code,{children:"AttestationCenter"})," contract, where the calculation result is sent:"]}),(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Testnet: ",(0,a.jsx)(t.a,{href:"https://sepolia.basescan.org/address/0x6af9B9272fc72CaC55ccDF6c2BC2c5703a65a187",children:"0x6af9B9272fc72CaC55ccDF6c2BC2c5703a65a187"})]}),"\n",(0,a.jsxs)(t.li,{children:["Mainnet: ",(0,a.jsx)(t.a,{href:"https://basescan.org/address/0x2B766957ce3dbab9eC4b227f5086855CeE7a1ad6",children:"0x2B766957ce3dbab9eC4b227f5086855CeE7a1ad6"})]}),"\n"]})]}),"\n",(0,a.jsx)(t.h2,{id:"network-participation-and-roles",children:"Network Participation and Roles"}),"\n",(0,a.jsxs)(t.p,{children:["RedStone will kickstart the network by managing the Task Performer and Aggregator.\nHowever, we encourage external operators to join and contribute to the network's decentralization.\nTo participate, operators need to set up an Attester and a corresponding Validation API.\nFor detailed instructions on how to configure, register, and run an operator, please refer to our ",(0,a.jsx)(t.a,{href:"/docs/network-tokenomics/restaking-avs/running-avs-operator-mainnet",children:"guide"}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},2224(e,t,r){r.d(t,{A:()=>n});const n=r.p+"assets/images/avs-9651d3d5cc0c20d0c9c98572ed598616.png"},8453(e,t,r){r.d(t,{R:()=>s,x:()=>o});var n=r(6540);const a={},i=n.createContext(a);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.