We're using proxy-upgrade pattern for contracts that touching users' money (i.e. DOSPayment and Staking contract), so that in case of emergency situation we'll be able to upgrade to a patched version without interrupting user behavior.
- DOSAddressBridge - Connector that contains all system contratcs' addresses.
- CommitReveal - Conceals details of commit-reveal scheme, which is used to generate a secure and unpredictable genesis random number by multiparties in every bootstrap phase.
- DOSProxy - Conceals details such as request handling, random group selection, threshold signature verification, user-defined callback function invocation, response parsing, etc.
DOSPayment- Conseals details of oracle request payment schemes and other node runners' validity judgement.- Payment gateway (proxy): https://etherscan.io/address/0x7b8d5a37008382b2c7e8e15ecf3c2727e38a6ac6
- Payment implementation: https://etherscan.io/address/0x24286C5a340bF99EDB2d7e7D114477987d34816F
Staking- Both eligible node runners and normal token holders (delegators) are able to earn staking rewards:- Staking gateway (proxy): https://etherscan.io/address/0x5dbef8e9e83a17d4d1d4c65a1e26133edae851dc
- Staking implementation: https://etherscan.io/address/0x6a829E0EB032FA39D0444D29DFd80Bd3AE91C5B9
- Node runners earn staking rewards by staking at least 800K tokens (or lessen a bit by owning DropBurn token) themselves and join the network to provide oracle services.
- Normal token holders earn staking rewards by delegating to eligible nodes, they may need to pay a percentage of earned rewards to delegated nodes.
- A user-friendly frontend is provided to help node runners and token holders to stake, delegate, withdraw rewards, register a node, etc.
- (Note that running a node requires both on-chain stake bonding and off-chain setup of node software, which is detailed in node runner tutorials)
- DOSAddressBridge
- CommitReveal
- DOSProxy
DOSPayment:- Payment gateway (proxy): https://rinkeby.etherscan.io/address/0x306d78A9Cf1116513220C908C5D950914D797682
- Payment implementation: https://rinkeby.etherscan.io/address/0x6b89f9C6bD11B14ae17DAfba4C578DdA527E7EF3
Staking:- Staking gateway (proxy): https://rinkeby.etherscan.io/address/0x064fa6a739580a9bA8cfeFDc271fa5585BC274e3
- Staking implementation: https://rinkeby.etherscan.io/address/0x9faaebe59eaf3132c3cf42a947bab11408d12296
- Testnet DOS Token
- Please fill in this form to request testnet tokens.
- Testnet DOS token Faucet:
- [x]
The selector expression is following JSONPath and XPath rules to filter components from responses.
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}Example selector expressions for the above json object:
| Selector expression | Description |
|---|---|
| $.expensive | 10 |
| $.store.book[0].price | 8.95 |
| $.store.book[-1].isbn | "0-395-19395-8" |
| $.store.book[0,1].price | [8.95, 12.99] |
| $.store.book[0:2].price | [8.95, 12.99, 8.99] |
| $.store.book[?(@.isbn)].price | [8.99, 22.99] |
| $.store.book[?(@.price > 10)].title | ["Sword of Honour", "The Lord of the Rings"] |
|
|
[8.95, 8.99] |
| $.store.book[:].price | [8.9.5, 12.99, 8.9.9, 22.99] |
- Use this online tool to get familar with JSONPath selector.
<library>
<!-- Great book. -->
<book id="b0836217462" available="true">
<isbn>0836217462</isbn>
<title lang="en">Being a Dog Is a Full-Time Job</title>
<quote>I'd dog paddle the deepest ocean.</quote>
<author id="CMS">
<?echo "go rocks"?>
<name>Charles M Schulz</name>
<born>1922-11-26</born>
<dead>2000-02-12</dead>
</author>
<character id="PP">
<name>Peppermint Patty</name>
<born>1966-08-22</born>
<qualification>bold, brash and tomboyish</qualification>
</character>
<character id="Snoopy">
<name>Snoopy</name>
<born>1950-10-04</born>
<qualification>extroverted beagle</qualification>
</character>
</book>
</library>Example selector expressions for the above xml document:
| Selector expression | Description |
|---|---|
| /library/book/isbn | "0836217462" |
| /library/*/isbn | "0836217462" |
| /library/book/../book/./isbn | "0836217462" |
| /library/book/character[2]/name | "Snoopy" |
| /library/book/character[born='1950-10-04']/name | "Snoopy" |
| /library/book//node()[@id='PP']/name | "Peppermint Patty" |
| //book[author/@id='CMS']/title | "Being a Dog Is a Full-Time Job", |
| /library/book/preceding::comment() | " Great book. " |
| //*[contains(born,'1922')]/name | "Charles M Schulz" |
| //*[@id='PP' or @id='Snoopy']/born | {"1966-08-22", "1950-10-04"} |
- Use this online tool to get familar with XPath selector.
