Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

483 lignes
29KB

  1. <!DOCTYPE html>
  2. <html class="writer-html5" lang="en" >
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Graviton &mdash; DERO Documentation documentation</title>
  7. <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  8. <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  9. <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
  10. <!--[if lt IE 9]>
  11. <script src="../_static/js/html5shiv.min.js"></script>
  12. <![endif]-->
  13. <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
  14. <script src="../_static/jquery.js"></script>
  15. <script src="../_static/underscore.js"></script>
  16. <script src="../_static/doctools.js"></script>
  17. <script type="text/javascript" src="../_static/js/theme.js"></script>
  18. <link rel="index" title="Index" href="../genindex.html" />
  19. <link rel="search" title="Search" href="../search.html" />
  20. <link rel="next" title="DERO Atlantis RPC API V2.0" href="dev_rpcapi.html" />
  21. <link rel="prev" title="DHEBP (DERO Homomorphic Encryption Blockchain Protocol)" href="dev_DHEBP.html" />
  22. </head>
  23. <body class="wy-body-for-nav">
  24. <div class="wy-grid-for-nav">
  25. <nav data-toggle="wy-nav-shift" class="wy-nav-side">
  26. <div class="wy-side-scroll">
  27. <div class="wy-side-nav-search" >
  28. <a href="../index.html">
  29. <img src="../_static/docs_logo.png" class="logo" alt="Logo"/>
  30. </a>
  31. <div role="search">
  32. <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
  33. <input type="text" name="q" placeholder="Search docs" />
  34. <input type="hidden" name="check_keywords" value="yes" />
  35. <input type="hidden" name="area" value="default" />
  36. </form>
  37. </div>
  38. </div>
  39. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  40. <p class="caption"><span class="caption-text">Basic's</span></p>
  41. <ul>
  42. <li class="toctree-l1"><a class="reference internal" href="basic_desktopwallet.html">Desktop Wallet User Guide</a><ul>
  43. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#downloading-binaries">Downloading Binaries</a></li>
  44. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#installing-the-desktop-app">Installing the desktop app</a></li>
  45. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#windows-installation">Windows Installation</a></li>
  46. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#mac-installation">MAC Installation</a></li>
  47. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#linux-installation">Linux Installation</a></li>
  48. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#where-are-the-dero-wallet-files-located">Where are the DERO Wallet files located?</a></li>
  49. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#create-a-new-wallet">Create a new wallet</a></li>
  50. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#opening-a-dero-wallet">Opening a DERO wallet</a></li>
  51. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#synchronizing-the-dero-cmd-wallet">Synchronizing the DERO CMD Wallet</a></li>
  52. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#rescan-blockchain">Rescan Blockchain</a></li>
  53. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#upgrading-from-a-previous-version">Upgrading from a previous version</a></li>
  54. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#main-wallet-screen">Main wallet screen</a></li>
  55. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#wallet-status">Wallet status</a></li>
  56. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#offline-mode">Offline mode</a></li>
  57. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#sending-dero">Sending DERO</a></li>
  58. <li class="toctree-l2"><a class="reference internal" href="basic_desktopwallet.html#restoring-dero-funds">Restoring DERO Funds</a></li>
  59. </ul>
  60. </li>
  61. <li class="toctree-l1"><a class="reference internal" href="basic_webwallet.html">Browser Wallet User Guide</a><ul>
  62. <li class="toctree-l2"><a class="reference internal" href="basic_webwallet.html#using-the-browser-wallet">Using the Browser Wallet</a></li>
  63. <li class="toctree-l2"><a class="reference internal" href="basic_webwallet.html#create-a-wallet">Create a wallet</a></li>
  64. <li class="toctree-l2"><a class="reference internal" href="basic_webwallet.html#restore-a-wallet">Restore a wallet</a></li>
  65. <li class="toctree-l2"><a class="reference internal" href="basic_webwallet.html#rescan-blockchain">Rescan Blockchain</a></li>
  66. </ul>
  67. </li>
  68. <li class="toctree-l1"><a class="reference internal" href="basic_cmd.html">Command Line Wallet User Guide</a><ul>
  69. <li class="toctree-l2"><a class="reference internal" href="basic_cmd.html#rescan-blockchain">Rescan Blockchain</a></li>
  70. </ul>
  71. </li>
  72. <li class="toctree-l1"><a class="reference internal" href="basic_coldwallet.html">Cold Wallet</a><ul>
  73. <li class="toctree-l2"><a class="reference internal" href="basic_coldwallet.html#creating-a-cold-storage-dero-wallet">Creating a cold storage DERO wallet</a></li>
  74. <li class="toctree-l2"><a class="reference internal" href="basic_coldwallet.html#creating-transactions-using-cold-wallet">Creating transactions using cold wallet</a></li>
  75. </ul>
  76. </li>
  77. <li class="toctree-l1"><a class="reference internal" href="basic_downloads.html">Downloads</a></li>
  78. <li class="toctree-l1"><a class="reference internal" href="basic_whitepaper.html">Whitepaper</a></li>
  79. <li class="toctree-l1"><a class="reference internal" href="basic_quickstart.html">Quickstart</a></li>
  80. <li class="toctree-l1"><a class="reference internal" href="basic_createrestorewallet.html">Create/Restore Wallet</a></li>
  81. <li class="toctree-l1"><a class="reference internal" href="basic_mining.html">Mining DERO</a><ul>
  82. <li class="toctree-l2"><a class="reference internal" href="basic_mining.html#mining-dero-with-windows">Mining DERO with Windows</a></li>
  83. <li class="toctree-l2"><a class="reference internal" href="basic_mining.html#mining-dero-with-linux">Mining DERO with Linux</a></li>
  84. </ul>
  85. </li>
  86. <li class="toctree-l1"><a class="reference internal" href="basic_runderofullnode.html">Run DERO Full Node</a></li>
  87. <li class="toctree-l1"><a class="reference internal" href="basic_trading.html">Trading</a></li>
  88. </ul>
  89. <p class="caption"><span class="caption-text">DERO Stargate RC2 Testnet</span></p>
  90. <ul>
  91. <li class="toctree-l1"><a class="reference internal" href="stargate_wallet.html">CLI Wallet User Guide (Stargate)</a><ul>
  92. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#downloading-wallet">Downloading Wallet</a></li>
  93. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#install-wallet">Install Wallet</a><ul>
  94. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#windows">Windows</a></li>
  95. </ul>
  96. </li>
  97. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#opening-wallet">Opening Wallet</a></li>
  98. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#create-new-wallet">Create New Wallet</a></li>
  99. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#recover-existing-wallet-from-seed">Recover existing wallet from seed</a></li>
  100. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#create-view-only-wallet">Create View only Wallet</a></li>
  101. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#cli-wallet-functions">CLI Wallet Functions</a><ul>
  102. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#display-account-address">Display Account Address</a></li>
  103. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#display-seed">Display Seed</a></li>
  104. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#display-keys-hex">Display Keys (Hex)</a></li>
  105. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#account-registration">Account Registration</a></li>
  106. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#display-wallet-pool">Display Wallet Pool</a></li>
  107. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#transfer-send-dero-to-another-wallet">Transfer (Send DERO) To Another Wallet</a></li>
  108. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#change-wallet-password">Change Wallet Password</a></li>
  109. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#transfer-all-balance-send-dero-to-another-wallet">Transfer all balance (send DERO) To Another Wallet</a></li>
  110. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#show-transaction-history">Show transaction history</a></li>
  111. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#rescan-transaction-history">Rescan transaction history</a></li>
  112. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#exit-menu-and-start-prompt">Exit menu and start prompt</a></li>
  113. <li class="toctree-l3"><a class="reference internal" href="stargate_wallet.html#exit-wallet">Exit Wallet</a></li>
  114. </ul>
  115. </li>
  116. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#command-line-help-functions">Command Line Help Functions</a></li>
  117. </ul>
  118. </li>
  119. <li class="toctree-l1"><a class="reference internal" href="stargate_wallet.html#gui-wallet-user-guide-stargate">GUI Wallet User Guide (Stargate)</a><ul>
  120. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id1">Downloading Wallet</a></li>
  121. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id2">Install Wallet</a></li>
  122. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id3">Create New Wallet</a></li>
  123. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id4">Recover existing wallet from seed</a></li>
  124. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id5">Create View only Wallet</a></li>
  125. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#gui-wallet-functions">GUI Wallet Functions</a></li>
  126. </ul>
  127. </li>
  128. <li class="toctree-l1"><a class="reference internal" href="stargate_wallet.html#broswer-wallet-user-guide-stargate">Broswer Wallet User Guide (Stargate)</a><ul>
  129. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id6">Create New Wallet</a></li>
  130. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id7">Recover existing wallet from seed</a></li>
  131. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id8">Create View only Wallet</a></li>
  132. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#id9">GUI Wallet Functions</a></li>
  133. </ul>
  134. </li>
  135. <li class="toctree-l1"><a class="reference internal" href="stargate_wallet.html#cold-wallet-stargate">Cold Wallet (Stargate)</a><ul>
  136. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#cli">CLI</a></li>
  137. <li class="toctree-l2"><a class="reference internal" href="stargate_wallet.html#gui">GUI</a></li>
  138. </ul>
  139. </li>
  140. <li class="toctree-l1"><a class="reference internal" href="stargate_dvm.html">DERO Virtual Machine</a><ul>
  141. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#dim-statement">DIM Statement</a></li>
  142. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#function-statement">Function statement</a></li>
  143. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#goto-statement">GOTO Statement</a></li>
  144. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#if">IF</a></li>
  145. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#let-statement">LET Statement</a></li>
  146. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#return-statement">Return Statement</a></li>
  147. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#support-functions">Support Functions</a></li>
  148. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#lotter-sc-guide">Lotter SC Guide</a></li>
  149. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#lottery-bas">Lottery.bas</a></li>
  150. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#token-sc-guide">Token SC Guide</a></li>
  151. <li class="toctree-l2"><a class="reference internal" href="stargate_dvm.html#token-bas">Token.bas</a></li>
  152. </ul>
  153. </li>
  154. </ul>
  155. <p class="caption"><span class="caption-text">Developer's Guide</span></p>
  156. <ul class="current">
  157. <li class="toctree-l1"><a class="reference internal" href="dev_astrobwt.html">AstroBWT</a><ul>
  158. <li class="toctree-l2"><a class="reference internal" href="dev_astrobwt.html#dero-astrobwt-cpu-mining-proof-of-work">DERO AstroBWT CPU Mining Proof-of-Work</a></li>
  159. <li class="toctree-l2"><a class="reference internal" href="dev_astrobwt.html#astrobwt-building">AstroBWT Building</a></li>
  160. <li class="toctree-l2"><a class="reference internal" href="dev_astrobwt.html#astrobwt-pseudo-code">AstroBWT Pseudo CODE</a></li>
  161. <li class="toctree-l2"><a class="reference internal" href="dev_astrobwt.html#explaining-astrobwt">Explaining AstroBWT</a></li>
  162. <li class="toctree-l2"><a class="reference internal" href="dev_astrobwt.html#astrobwt-hash-rates">AstroBWT Hash Rates</a></li>
  163. </ul>
  164. </li>
  165. <li class="toctree-l1"><a class="reference internal" href="dev_DHEBP.html">DHEBP (DERO Homomorphic Encryption Blockchain Protocol)</a><ul>
  166. <li class="toctree-l2"><a class="reference internal" href="dev_DHEBP.html#dhebp-alpha-code-to-demonstrate-fhe-blockchain-transactions">DHEBP alpha code to demonstrate FHE blockchain transactions.</a></li>
  167. <li class="toctree-l2"><a class="reference internal" href="dev_DHEBP.html#transaction-details">Transaction Details</a></li>
  168. <li class="toctree-l2"><a class="reference internal" href="dev_DHEBP.html#ring-size-tx-size-data">Ring Size, Tx Size data</a></li>
  169. <li class="toctree-l2"><a class="reference internal" href="dev_DHEBP.html#build">Build</a></li>
  170. <li class="toctree-l2"><a class="reference internal" href="dev_DHEBP.html#output-sample">Output Sample</a></li>
  171. </ul>
  172. </li>
  173. <li class="toctree-l1 current"><a class="current reference internal" href="#">Graviton</a><ul>
  174. <li class="toctree-l2"><a class="reference internal" href="#graviton-zfs-for-key-value-stores">Graviton: ZFS for Key-Value Stores</a></li>
  175. <li class="toctree-l2"><a class="reference internal" href="#standalone-alpha-release">Standalone Alpha Release</a></li>
  176. <li class="toctree-l2"><a class="reference internal" href="#features">Features</a></li>
  177. <li class="toctree-l2"><a class="reference internal" href="#benefits">Benefits</a></li>
  178. </ul>
  179. </li>
  180. <li class="toctree-l1"><a class="reference internal" href="dev_rpcapi.html">DERO Atlantis RPC API V2.0</a><ul>
  181. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#introduction">1. Introduction</a><ul>
  182. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#data-types">1.1 Data Types</a></li>
  183. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#code-examples">1.2 Code Examples</a></li>
  184. </ul>
  185. </li>
  186. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#quick-overview">2. Quick Overview</a></li>
  187. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#dero-daemon-rpc-interface">3. DERO Daemon RPC Interface</a></li>
  188. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#id1">3.1 Introduction</a></li>
  189. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#methods-via-post">3.2 Methods via POST</a><ul>
  190. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblockcount">3.2.1 getblockcount</a></li>
  191. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#get-info">3.2.2 get_info</a></li>
  192. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblocktemplate">3.2.3 getblocktemplate</a></li>
  193. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#submitblock">3.2.4 submitblock</a></li>
  194. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getlastblockheader">3.2.5 getlastblockheader</a></li>
  195. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblockheaderbyhash">3.2.6 getblockheaderbyhash</a></li>
  196. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblockheaderbytopoheight">3.2.7 getblockheaderbytopoheight</a></li>
  197. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblockheaderbyheight">3.2.8 getblockheaderbyheight</a></li>
  198. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getblock">3.2.9 getblock</a></li>
  199. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#gettxpool">3.2.10 gettxpool</a></li>
  200. </ul>
  201. </li>
  202. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#methods-via-get">3.3 Methods via GET</a><ul>
  203. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getheight">3.3.1 getheight</a></li>
  204. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#gettransactions">3.3.2 gettransactions</a></li>
  205. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#sendrawtransaction">3.3.3 sendrawtransaction</a></li>
  206. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#is-key-image-spent">3.3.4 is_key_image_spent</a></li>
  207. </ul>
  208. </li>
  209. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#dero-wallet-rpc-interface">4 DERO Wallet RPC Interface</a></li>
  210. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#id2">4.1 Introduction</a></li>
  211. <li class="toctree-l2"><a class="reference internal" href="dev_rpcapi.html#id3">4.2 Methods via POST</a><ul>
  212. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getaddress">4.2.1 getaddress</a></li>
  213. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#getbalance">4.2.2 getbalance</a></li>
  214. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#id4">4.2.3 getheight</a></li>
  215. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#transfer">4.2.4 transfer</a></li>
  216. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#transfer-split">4.2.5 transfer_split</a></li>
  217. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#get-bulk-payments">4.2.6 get_bulk_payments</a></li>
  218. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#query-key">4.2.7 query_key</a></li>
  219. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#make-integrated-address">4.2.8 make_integrated_address</a></li>
  220. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#split-integrated-address">4.2.9 split_integrated_address</a></li>
  221. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#get-transfer-by-txid">4.2.10 get_transfer_by_txid</a></li>
  222. <li class="toctree-l3"><a class="reference internal" href="dev_rpcapi.html#get-transfers">4.2.11 get_transfers</a></li>
  223. </ul>
  224. </li>
  225. </ul>
  226. </li>
  227. </ul>
  228. <p class="caption"><span class="caption-text">Useful Links</span></p>
  229. <ul>
  230. <li class="toctree-l1"><a class="reference internal" href="usefull_importantlinks.html">Links</a><ul>
  231. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-explorer">DERO Explorer</a></li>
  232. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-webwallet">DERO Webwallet</a></li>
  233. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-wiki">DERO Wiki</a></li>
  234. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-forum">DERO Forum</a></li>
  235. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-social-media">DERO Social Media</a></li>
  236. <li class="toctree-l2"><a class="reference internal" href="usefull_importantlinks.html#dero-community-channels">DERO Community Channels</a></li>
  237. </ul>
  238. </li>
  239. </ul>
  240. </div>
  241. </div>
  242. </nav>
  243. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  244. <nav class="wy-nav-top" aria-label="top navigation">
  245. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  246. <a href="../index.html">DERO Documentation</a>
  247. </nav>
  248. <div class="wy-nav-content">
  249. <div class="rst-content">
  250. <div role="navigation" aria-label="breadcrumbs navigation">
  251. <ul class="wy-breadcrumbs">
  252. <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
  253. <li>Graviton</li>
  254. <li class="wy-breadcrumbs-aside">
  255. <a href="../_sources/rtd_pages/dev_graviton.rst.txt" rel="nofollow"> View page source</a>
  256. </li>
  257. </ul>
  258. <hr/>
  259. </div>
  260. <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
  261. <div itemprop="articleBody">
  262. <div class="section" id="graviton">
  263. <span id="dev-graviton"></span><h1>Graviton<a class="headerlink" href="#graviton" title="Permalink to this headline">¶</a></h1>
  264. <div class="section" id="graviton-zfs-for-key-value-stores">
  265. <h2>Graviton: ZFS for Key-Value Stores<a class="headerlink" href="#graviton-zfs-for-key-value-stores" title="Permalink to this headline">¶</a></h2>
  266. </div>
  267. <div class="section" id="standalone-alpha-release">
  268. <h2>Standalone Alpha Release<a class="headerlink" href="#standalone-alpha-release" title="Permalink to this headline">¶</a></h2>
  269. <p>Graviton is an open source, simple, fast, versioned, authenticated and embeddable key-value store database written in Golang.</p>
  270. <p>In short, Graviton can be described as “ZFS for key-value stores,” in which every write is tracked, versioned and authenticated with cryptographic proofs. Additionally, it is possible to take snapshots of the database at any time and simple copy and rsync commands can be used for database backup, even during live updates without any possibilities of database corruption. The concept was derived from an immediate need for unique features that were currently unavailable in any other database.</p>
  271. </div>
  272. <div class="section" id="features">
  273. <h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
  274. <p>The features included in Graviton provide the missing functionality that prevented Stargate RC1 from reaching deployment on our mainnet. The following features are critical for the success of our next release, but will also benefit many use cases in other domains.</p>
  275. <ul class="simple">
  276. <li><p>Authenticated data store (all keys and values are backed by blake 256-bit checksums).</p></li>
  277. <li><p>Append-only data store.</p></li>
  278. <li><p>Support of 2⁶⁴ trees (theoretically) within a single data store. Trees can be named and thus used as buckets.</p></li>
  279. <li><p>Support of values version tracking. All committed changes are versioned with ability to visit them at any point in time.</p></li>
  280. <li><p>Snapshots (multi-tree commits in a single version causing multi bucket sync, each snapshot can be visited, appended and further modified, keys deleted, values modified, etc., new keys and values stored.)</p></li>
  281. <li><p>Ability to iterate over all key-value pairs in a tree.</p></li>
  282. <li><p>Ability to diff between two trees in linear time and report all changes of insertions, deletions and modifications.)</p></li>
  283. <li><p>Minimal and simplified API.</p></li>
  284. <li><p>Theoretically supports exabyte data stores, multi-terabyte tested internally.</p></li>
  285. <li><p>Decoupled storage layer, allowing use of object stores such as Ceph, AWS, etc.</p></li>
  286. <li><p>Ability to generate cryptographic proofs which can prove key existence or non-existence (cryptographic proofs are around 1 KB.)</p></li>
  287. <li><p>Extremely fast proof generation time of around 1000 proofs per second, per core.</p></li>
  288. <li><p>Support for disk based filesystem-based persistant stores.</p></li>
  289. <li><p>Support for memory-based non-persistant stores.</p></li>
  290. <li><p>100% code coverage</p></li>
  291. </ul>
  292. </div>
  293. <div class="section" id="benefits">
  294. <h2>Benefits<a class="headerlink" href="#benefits" title="Permalink to this headline">¶</a></h2>
  295. <p>Graviton is open source and can be used in place of BoltDB, LMDB, LevelDB and more. While the included features may not be required for every use case, they provide novel improvements that can not be found anywhere else, such as the ability to traverse any and every commit, and diff between two trees in linear time. The end result is a robust and feature-rich database that will never corrupt data between backups and commits. The database code is also very readable and friendly to new Golang developers.</p>
  296. <p>Below are some examples of how easy it is to use:</p>
  297. <p>Save/edit a key</p>
  298. <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="x">tree, _ := ss.GetTree(&quot;root&quot;)</span>
  299. <span class="x">// Insert a value</span>
  300. <span class="x">tree.Put([]byte(&quot;answer&quot;), []byte(&quot;44&quot;))</span>
  301. <span class="x">// Make the tree persistant by storing it in backend disk</span>
  302. <span class="x">graviton.Commit(tree)</span>
  303. </pre></div>
  304. </div>
  305. <p>Get a value from a tree</p>
  306. <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="x">tree, _ := ss.GetTree(&quot;root&quot;)</span>
  307. <span class="x">// Every key has a byte slice value</span>
  308. <span class="x">v,_ := tree.Get([]byte(&quot;answer&quot;))</span>
  309. <span class="x">fmt.Printf(&quot;The answer is: %s\n&quot;, v)</span>
  310. </pre></div>
  311. </div>
  312. <p>Iterating over a tree</p>
  313. <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="x">// Assume &quot;root&quot; tree exists and has keys</span>
  314. <span class="x">tree, _ := store.GetTree(&quot;root&quot;)</span>
  315. <span class="x">// See cursor functions below</span>
  316. <span class="x">c := tree.Cursor()</span>
  317. <span class="x">for k, v, err := c.First(); err == nil; k, v, err = c.Next() {</span>
  318. <span class="x"> fmt.Printf(&quot;key=%s, value=%s\n&quot;, k, v)</span>
  319. <span class="x">}</span>
  320. </pre></div>
  321. </div>
  322. <p>Functions available to the cursor (shown above)</p>
  323. <div class="highlight-php notranslate"><div class="highlight"><pre><span></span><span class="x">First() Move to the first key.</span>
  324. <span class="x">Last() Move to the last key.</span>
  325. <span class="x">Next() Move to the next key.</span>
  326. <span class="x">Prev() Move to the previous key.</span>
  327. </pre></div>
  328. </div>
  329. <p>Learn More
  330. To view the code, seek out more examples, or learn about the internals of Graviton, please visit the following link: <a class="reference external" href="https://github.com/deroproject/graviton">https://github.com/deroproject/graviton</a></p>
  331. </div>
  332. </div>
  333. </div>
  334. </div>
  335. <footer>
  336. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  337. <a href="dev_rpcapi.html" class="btn btn-neutral float-right" title="DERO Atlantis RPC API V2.0" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
  338. <a href="dev_DHEBP.html" class="btn btn-neutral float-left" title="DHEBP (DERO Homomorphic Encryption Blockchain Protocol)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
  339. </div>
  340. <hr/>
  341. <div role="contentinfo">
  342. <p>
  343. &#169; Copyright 2020, DERO Foundation.
  344. </p>
  345. </div>
  346. Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
  347. <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
  348. provided by <a href="https://readthedocs.org">Read the Docs</a>.
  349. </footer>
  350. </div>
  351. </div>
  352. </section>
  353. </div>
  354. <script type="text/javascript">
  355. jQuery(function () {
  356. SphinxRtdTheme.Navigation.enable(true);
  357. });
  358. </script>
  359. </body>
  360. </html>