Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: general improvements and updates of section III #10

Merged
merged 11 commits into from
Oct 9, 2024
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RSS3 Whitepaper

This repository contains the source code of for all versions of the RSS3 Whitepaper.
This repository contains the source code for all versions of the RSS3 Whitepaper.
The Whitepaper has to be updated from time to time to reflect the latest changes in the landscape of the Open Web, and to ensure that the RSS3 Network stays relevant.

The Whitepaper in a way serves as the 'Constitution' of the RSS3 Network.
Expand Down
4 changes: 2 additions & 2 deletions current/acronyms.tex
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

\newdualentry{VSL}{}{Value Sublayer}{A blockchain where the value created by Open Information activities is recorded and distributed.}

\newdualentry{PDS}{}{Permissionless Data Source}{A repository of data that can be accessed without the need for authorization or authentication.}
\newdualentry{ODP}{}{Open Data Protocols}{Sources that generate information and provide unrestricted access to anyone.}

\newdualentry{NR}{\networkReward}{Network Rewards}{Tokens allocated by the RSS3 Network to incentivize network participants.}

Expand Down Expand Up @@ -100,7 +100,7 @@

\newdualentry{Deposit}{\deposit}{Deposit}{Tokens required to operate a \glsfmtlong{Node}.}

\newdualentry{Fee}{\fee}{Request Fees}{Fees paid to \glspl{Node} for delivering \glsfmtlong{OI} from its \glsfmtlong{PDS} to the requesters.}
\newdualentry{Fee}{\fee}{request fees}{Fees paid to \glspl{Node} for delivering \glsfmtlong{OI} from its \glsfmtlong{ODP} to the requesters.}

\newdualentry{Chip}{\chip}{Chip}{An ERC-721 Non-Fungible Token (NFT) representing a network participant's stake in a particular Node.}

Expand Down
Binary file added current/figures/GI-Components.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified current/figures/GI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion current/sections/DSL.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ \section{\glsfmtlong{DSL}}
The \glsfirst{DSL} is responsible for the \glsfmtlong{OI} life cycle management, which includes indexing, transformation, storage, dissemination, and consumption \cite{nationalinstituteofstandardsandtechnology2016Information}.
In this section, we introduce the \gls{DSL} and its fundamental components; see \Cref{fig:DSL}.

The \gls{DSL} is formed by two components (see \cref{subsec:SN} and \cref{subsec:GI}) and uses the \gls{Protocol} (see \cref{subsec:protocol}) to structure the information for applications in social, search, AI, and beyond.
The \gls{DSL} is formed by two components (see \cref{subsec:Node} and \cref{subsec:GI}) and uses the \gls{Protocol} (see \cref{subsec:protocol}) to structure the information for applications in social, search, AI, and beyond.

{
\begin{figure}[tb!]
Expand Down
44 changes: 34 additions & 10 deletions current/sections/DSL/GI.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,51 @@ \subsection{RSS3 \glsfmtfull{GI}}
{
\begin{figure}[tb!]
\centering
\includegraphics[width=0.7\columnwidth]{figures/GI.png}
\includegraphics[width=0.8\columnwidth]{figures/GI.png}
\caption{A Venn diagram illustrating the relationship between the worker, the \glsfmtlong{Node}, and the \glsfmtlong{GI}.}
\label{fig:GI}
\end{figure}
}

A \gls{GI} is responsible for facilitating coordination among \glspl{Node} and engaging with the \gls{VSL} and performs critical functions to ensure the \gls{DSL} is robust and reliable.
\glspl{GI} are responsible for facilitating coordination among \glspl{Node} and engaging with the \gls{VSL} and perform critical duties to ensure the \gls{DSL} is robust and reliable.

Given the importance of the \gls{GI} to the Network, its operation is subject to a set of stringent requirements imposed by the Network.
Given the permissionless nature of the \gls{DSL}, robust quality assurance is essential to maintain the integrity and reliability of the \glsfmtlong{R3N}.
As such, the operation of a \gls{GI} is subject to a set of stringent requirements imposed by the Network.

\subsubsection{Performance Assurance} A GI acts as a load balancer and query router for end users to retrieve information from \glspl{Node}.
The unique architecture of the \gls{DSL} demands \glspl{GI} to be equipped with more computational capabilities to work out the optimal route for end users to retrieve specific information from \gls{Node} and frequently from a group of \glspl{Node} simultaneously.
{
\begin{figure}[tb!]
\centering
\includegraphics[width=0.8\columnwidth]{figures/GI-components.png}
\caption{Components of a \gls{GI}. See \Cref{subsec:GI} for more details.}
\label{fig:GI-components}
\end{figure}
}

Each \gls{GI} is composed of several components, each with a unique set of responsibilities and functions that collectively contribute to the overall reliability and robustness of the \gls{DSL}.

\subsubsection{Broadcaster}
The broadcaster is a component that continuously monitors all \glspl{Node} to detect any unusual or unexpected behavior.

\subsubsection{Enforcer}
The enforcer maintains demotion and slashing records, and implements measures to encourage \glspl{Node} to meet the established requirements.

\subsubsection{Indexer}
The indexer component provides structured information through its network transparency API, offering comprehensive insight into Network operations.

\subsubsection{Payment Processor}
The payment processor collects request fees from requesters.
In addition, it calculates the Network's average tax rate and updates the settlement contract on the \gls{VSL} accordingly.

\subsubsection{Quality Assurance} A GI acts as a supervisor for \glspl{Node} to ensure the quality of service.
With the \gls{DSL} being a permissionless Sublayer, the quality needs to be maintained strictly to ensure \glsfmtlong{R3N}'s robustness and reliability.
A \gls{GI} monitors the quality of \glspl{Node} and slashes the \gls{Node} if it fails to meet the requirements.
\subsubsection{Router}
The router is responsible for routing requests to corresponding \gls{Node} with optimal performance and minimal latency.
The distinctive architecture of the \gls{DSL} requires \glspl{GI} be equipped with enhanced computational capabilities to determine the most efficient routing path for incoming requests.
Typically, a request retrieves \glsfmtlong{OI} from a distributed group of \glspl{Node} concurrently.

\subsubsection{Proof Onchain} A GI keeps track of the work and slash records of \glspl{Node} and submits them to the \gls{VSL} for settlement and reward allocation.
\subsubsection{Settler}
The settler component submits \glspl{Node}' work records to the \gls{VSL}. Subsequently, the settlement contract on the \gls{VSL} verifies these records and facilitates the distribution of network rewards.

\subsection{Reliability Score}

A \gls{GI} routes requests to \glspl{Node} based on their information coverage and a \gls{RS}.
The calculation of \reliabilityScore\ is based on a range of factors, including but not limited to the \gls{Node}'s uptime, work, slash records, operation deposit, and staking/trust pool size.
\glspl{Node} with a higher \reliabilityScore\ have an increased likelihood of receiving requests.
\glspl{Node} with a higher \reliabilityScore\ have an increased likelihood of receiving requests.
12 changes: 6 additions & 6 deletions current/sections/DSL/Node.tex
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
\subsection{RSS3 \glsfmtfull{Node}}
\label{subsec:SN}
\label{subsec:Node}

A \gls{Node}, also known as an RSS3 Node, is responsible for indexing, transforming, storing, and ultimately serving the \glsfmtlong{OI} to the end users.

The operation of a \gls{Node} is permissionless and is subject to a set of requirements set by the Network.

\subsubsection{Indexing}
Each \gls{Node} operates a number of workers that index and structure \gls{OI} from \gls{PDS}.
Each \gls{Node} operates a number of workers that index and structure \gls{OI} from \glspl{ODP}.
Workers are community-maintained ``rules'' that define how \gls{OI} is indexed and transformed into the \gls{Protocol} format.

Since each \gls{Node} is independent, it is possible for different \glspl{Node} to employ different combinations of workers to cover different \glspl{PDS}.
Since each \gls{Node} is independent, it is possible for different \glspl{Node} to employ different combinations of workers to cover different \glspl{ODP}.
This design enables node operation to be flexible, accessible, and affordable, in turn offering a high degree of decentralization and robustness.

\subsubsection{Serving}
Each \gls{Node} operates a standard set of interfaces that serve structured \gls{OI} in \gls{Protocol} to the end users via a \gls{GI}.
Each \gls{Node} operates a standard set of interfaces that serve structured \gls{OI}.

Each successful request served on the \gls{DSL} is recorded, and the corresponding \glsfmtlong{Fee} paid by requesters are distributed to the \gls{Node};
See \Cref{subsubsec:operation_pool} for more details.
Each successful request served on the \gls{DSL} is recorded, and the corresponding \glsfmtlong{Fee} paid by requesters will be distributed to the \gls{Node} base on the records.
See \Cref{subsubsec:operation_pool} for more details.
8 changes: 4 additions & 4 deletions current/sections/DSL/Protocol.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ \subsection{\glsfmtlong{Protocol}}

The RSS3 Protocol is used to structure \glsfmtlong{OI} for interoperability \cite{protocol}.

\glsfmtlong{OI}, indexed from multiple \glspl{PDS}, is structured by \glspl{Node} into the \gls{Protocol} format for interoperability.
\glsfmtlong{OI}, indexed from multiple \glspl{ODP}, is structured by \glspl{Node} into the \gls{Protocol} format for interoperability.

\glspl{PDS} use different data structures;
Within a \gls{PDS}, there might be multiple products, services, and protocols that leverage different data structures to suit their needs.
\glspl{ODP} use different data structures;
Within a \gls{ODP}, there might be multiple products, services, and protocols that leverage different data structures to suit their needs.
This lack of standardization means limited interoperability, limiting the creation of scalable applications.

The \gls{Protocol} addresses this issue by offering a unified set of data structures that serve as an abstraction.
This abstraction simplifies the integration process, making it more manageable and scalable for developers to work with data across various \glspl{PDS}.
This abstraction simplifies the integration process, making it more manageable and scalable for developers to work with data across various \glspl{ODP}.
2 changes: 1 addition & 1 deletion current/sections/network.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ \section{\glsfmtlong{R3N}}
The \gls{DSL} then leverages the \gls{VSL}, see \Cref{sec:VSL}, to build an ownership economy for the \gls{OW}.

\subsection{\$RSS3}
\$RSS3 is the Network's native utility token. It is used to cover gas, pay request fees, operate nodes, participate in staking and trust, distribute incentives, and engage in various network activities.
\$RSS3 is the Network's native utility token. It is used to cover gas, settle request fees, operate \glsfmtplural{Node}, participate in staking and trust, distribute incentives, and engage in various network activities.
See \Cref{sec:tokenomics} for more details.

\subsection{\Glsfmtfull{Epoch}}
Expand Down
4 changes: 2 additions & 2 deletions current/sections/tokenomics/network_rewards.tex
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ \subsubsection{\glsfmtfull{TR}}
\subsubsection{Taxation (\tax)}
\label{subsubsec:taxation}

A Normal Node's operator sets the tax rate \taxRate\ which is imposed on the Network Rewards allocated to its \stakingPool.
A Normal Node's operator sets the tax rate \taxRate\ which is imposed on the network rewards allocated to its \stakingPool.

The amount of taxiable \stakingReward\ is capped at a maximum of \taxCap\ times the amount of the current \operationPool, where \taxCap\ is set by the Network.

\begin{equation}
\tax_{\node, \epoch} =
\min(\pool_{\operation|\node, \epoch}
* \taxCap_\epoch , (\networkReward_{\staking|\node, \epoch}
+ \networkReward_{\operation|\node, \epoch} )
+ \networkReward_{\operation|\node, \epoch} )
* \taxRate_{\node, \epoch})
\end{equation}

Expand Down