solana-docs 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (924) hide show
  1. package/.eslintignore +8 -0
  2. package/.eslintrc +21 -0
  3. package/.prettierignore +7 -0
  4. package/.travis/before_install.sh +9 -0
  5. package/.travis/script.sh +4 -0
  6. package/README.md +59 -0
  7. package/art/data-plane-fanout.bob +19 -0
  8. package/art/data-plane-neighborhood.bob +25 -0
  9. package/art/data-plane-seeding.bob +15 -0
  10. package/art/data-plane.bob +18 -0
  11. package/art/fork-generation.bob +13 -0
  12. package/art/forks-pruned.bob +9 -0
  13. package/art/forks-pruned2.bob +11 -0
  14. package/art/forks.bob +13 -0
  15. package/art/passive-staking-callflow.msc +30 -0
  16. package/art/retransmit_stage.bob +45 -0
  17. package/art/runtime.bob +10 -0
  18. package/art/sdk-tools.bob +20 -0
  19. package/art/spv-bank-hash.bob +19 -0
  20. package/art/spv-block-merkle.bob +19 -0
  21. package/art/tpu.bob +19 -0
  22. package/art/tvu.bob +37 -0
  23. package/art/validator-proposal.bob +60 -0
  24. package/art/validator.bob +30 -0
  25. package/babel.config.js +3 -0
  26. package/build-cli-usage.sh +42 -0
  27. package/build.sh +40 -0
  28. package/convert-ascii-to-svg.sh +21 -0
  29. package/crowdin.yml +16 -0
  30. package/docusaurus.config.js +161 -0
  31. package/offline-cmd-md-links.sh +11 -0
  32. package/package.json +50 -0
  33. package/publish-docs.sh +56 -0
  34. package/set-solana-release-tag.sh +20 -0
  35. package/sidebars.js +210 -0
  36. package/src/cli/.usage.md.header +59 -0
  37. package/src/cli/choose-a-cluster.md +43 -0
  38. package/src/cli/conventions.md +80 -0
  39. package/src/cli/delegate-stake.md +206 -0
  40. package/src/cli/deploy-a-program.md +302 -0
  41. package/src/cli/install-solana-cli-tools.md +164 -0
  42. package/src/cli/transfer-tokens.md +158 -0
  43. package/src/cli.md +22 -0
  44. package/src/cluster/bench-tps.md +129 -0
  45. package/src/cluster/fork-generation.md +64 -0
  46. package/src/cluster/leader-rotation.md +88 -0
  47. package/src/cluster/managing-forks.md +36 -0
  48. package/src/cluster/overview.md +39 -0
  49. package/src/cluster/performance-metrics.md +25 -0
  50. package/src/cluster/rpc-endpoints.md +50 -0
  51. package/src/cluster/stake-delegation-and-rewards.md +197 -0
  52. package/src/cluster/synchronization.md +28 -0
  53. package/src/cluster/turbine-block-propagation.md +101 -0
  54. package/src/cluster/vote-signing.md +59 -0
  55. package/src/clusters.md +173 -0
  56. package/src/css/custom.css +73 -0
  57. package/src/developing/backwards-compatibility.md +151 -0
  58. package/src/developing/clients/javascript-api.md +332 -0
  59. package/src/developing/clients/javascript-reference.md +750 -0
  60. package/src/developing/clients/jsonrpc-api.md +5173 -0
  61. package/src/developing/clients/rust-api.md +36 -0
  62. package/src/developing/on-chain-programs/debugging.md +110 -0
  63. package/src/developing/on-chain-programs/deploying.md +24 -0
  64. package/src/developing/on-chain-programs/developing-c.md +202 -0
  65. package/src/developing/on-chain-programs/developing-rust.md +406 -0
  66. package/src/developing/on-chain-programs/examples.md +61 -0
  67. package/src/developing/on-chain-programs/faq.md +81 -0
  68. package/src/developing/on-chain-programs/overview.md +218 -0
  69. package/src/developing/plugins/accountsdb_plugin.md +360 -0
  70. package/src/developing/programming-model/accounts.md +231 -0
  71. package/src/developing/programming-model/calling-between-programs.md +351 -0
  72. package/src/developing/programming-model/overview.md +17 -0
  73. package/src/developing/programming-model/runtime.md +131 -0
  74. package/src/developing/programming-model/transactions.md +210 -0
  75. package/src/developing/runtime-facilities/programs.md +168 -0
  76. package/src/developing/runtime-facilities/sysvars.md +142 -0
  77. package/src/developing/test-validator.md +153 -0
  78. package/src/economics_overview.md +20 -0
  79. package/src/history.md +60 -0
  80. package/src/icons/Archivers.inline.svg +11 -0
  81. package/src/icons/Bulb.inline.svg +13 -0
  82. package/src/icons/Chat.inline.svg +10 -0
  83. package/src/icons/Clipboard.inline.svg +13 -0
  84. package/src/icons/Cloudbreak.inline.svg +11 -0
  85. package/src/icons/Code.inline.svg +11 -0
  86. package/src/icons/Fire.inline.svg +10 -0
  87. package/src/icons/Gamepad.inline.svg +11 -0
  88. package/src/icons/Globe.inline.svg +1 -0
  89. package/src/icons/Gulfstream.inline.svg +11 -0
  90. package/src/icons/History.inline.svg +11 -0
  91. package/src/icons/Money.inline.svg +11 -0
  92. package/src/icons/Pipeline.inline.svg +15 -0
  93. package/src/icons/PoH.inline.svg +11 -0
  94. package/src/icons/Sealevel.inline.svg +11 -0
  95. package/src/icons/Tools.inline.svg +11 -0
  96. package/src/icons/Tower.inline.svg +11 -0
  97. package/src/icons/Turbine.inline.svg +12 -0
  98. package/src/icons/duotone-icons/Clothes/Brassiere.svg +10 -0
  99. package/src/icons/duotone-icons/Clothes/Briefcase.svg +11 -0
  100. package/src/icons/duotone-icons/Clothes/Cap.svg +11 -0
  101. package/src/icons/duotone-icons/Clothes/Crown.svg +11 -0
  102. package/src/icons/duotone-icons/Clothes/Dress.svg +11 -0
  103. package/src/icons/duotone-icons/Clothes/Hanger.svg +10 -0
  104. package/src/icons/duotone-icons/Clothes/Hat.svg +11 -0
  105. package/src/icons/duotone-icons/Clothes/Panties.svg +10 -0
  106. package/src/icons/duotone-icons/Clothes/Shirt.svg +11 -0
  107. package/src/icons/duotone-icons/Clothes/Shoes.svg +11 -0
  108. package/src/icons/duotone-icons/Clothes/Shorts.svg +10 -0
  109. package/src/icons/duotone-icons/Clothes/Sneakers.svg +11 -0
  110. package/src/icons/duotone-icons/Clothes/Socks.svg +11 -0
  111. package/src/icons/duotone-icons/Clothes/Sun-glasses.svg +11 -0
  112. package/src/icons/duotone-icons/Clothes/T-Shirt.svg +10 -0
  113. package/src/icons/duotone-icons/Clothes/Tie.svg +11 -0
  114. package/src/icons/duotone-icons/Code/Backspace.svg +11 -0
  115. package/src/icons/duotone-icons/Code/CMD.svg +10 -0
  116. package/src/icons/duotone-icons/Code/Code.inline.svg +11 -0
  117. package/src/icons/duotone-icons/Code/Commit.svg +11 -0
  118. package/src/icons/duotone-icons/Code/Compiling.inline.svg +11 -0
  119. package/src/icons/duotone-icons/Code/Control.svg +10 -0
  120. package/src/icons/duotone-icons/Code/Done-circle.svg +11 -0
  121. package/src/icons/duotone-icons/Code/Error-circle.svg +11 -0
  122. package/src/icons/duotone-icons/Code/Git#1.svg +12 -0
  123. package/src/icons/duotone-icons/Code/Git#2.svg +15 -0
  124. package/src/icons/duotone-icons/Code/Git#3.svg +13 -0
  125. package/src/icons/duotone-icons/Code/Git#4.svg +13 -0
  126. package/src/icons/duotone-icons/Code/Github.svg +11 -0
  127. package/src/icons/duotone-icons/Code/Info-circle.svg +12 -0
  128. package/src/icons/duotone-icons/Code/Left-circle.svg +11 -0
  129. package/src/icons/duotone-icons/Code/Loading.svg +12 -0
  130. package/src/icons/duotone-icons/Code/Lock-circle.svg +11 -0
  131. package/src/icons/duotone-icons/Code/Lock-overturning.svg +11 -0
  132. package/src/icons/duotone-icons/Code/Minus.svg +11 -0
  133. package/src/icons/duotone-icons/Code/Option.svg +11 -0
  134. package/src/icons/duotone-icons/Code/Plus.svg +11 -0
  135. package/src/icons/duotone-icons/Code/Puzzle.svg +10 -0
  136. package/src/icons/duotone-icons/Code/Question-circle.svg +11 -0
  137. package/src/icons/duotone-icons/Code/Right-circle.svg +11 -0
  138. package/src/icons/duotone-icons/Code/Settings#4.svg +11 -0
  139. package/src/icons/duotone-icons/Code/Shift.svg +10 -0
  140. package/src/icons/duotone-icons/Code/Spy.svg +11 -0
  141. package/src/icons/duotone-icons/Code/Stop.svg +10 -0
  142. package/src/icons/duotone-icons/Code/Terminal.svg +11 -0
  143. package/src/icons/duotone-icons/Code/Thunder-circle.svg +11 -0
  144. package/src/icons/duotone-icons/Code/Time-schedule.svg +11 -0
  145. package/src/icons/duotone-icons/Code/Warning-1-circle.svg +12 -0
  146. package/src/icons/duotone-icons/Code/Warning-2.svg +12 -0
  147. package/src/icons/duotone-icons/Communication/Active-call.svg +11 -0
  148. package/src/icons/duotone-icons/Communication/Add-user.svg +11 -0
  149. package/src/icons/duotone-icons/Communication/Address-card.svg +10 -0
  150. package/src/icons/duotone-icons/Communication/Adress-book#1.svg +11 -0
  151. package/src/icons/duotone-icons/Communication/Adress-book#2.svg +11 -0
  152. package/src/icons/duotone-icons/Communication/Archive.svg +10 -0
  153. package/src/icons/duotone-icons/Communication/Call#1.svg +10 -0
  154. package/src/icons/duotone-icons/Communication/Call.svg +10 -0
  155. package/src/icons/duotone-icons/Communication/Chat#1.svg +11 -0
  156. package/src/icons/duotone-icons/Communication/Chat#2.svg +11 -0
  157. package/src/icons/duotone-icons/Communication/Chat#4.svg +10 -0
  158. package/src/icons/duotone-icons/Communication/Chat#5.svg +11 -0
  159. package/src/icons/duotone-icons/Communication/Chat#6.svg +11 -0
  160. package/src/icons/duotone-icons/Communication/Chat-check.svg +11 -0
  161. package/src/icons/duotone-icons/Communication/Chat-error.svg +11 -0
  162. package/src/icons/duotone-icons/Communication/Chat-locked.svg +11 -0
  163. package/src/icons/duotone-icons/Communication/Chat-smile.svg +11 -0
  164. package/src/icons/duotone-icons/Communication/Clipboard-check.svg +12 -0
  165. package/src/icons/duotone-icons/Communication/Clipboard-list.svg +17 -0
  166. package/src/icons/duotone-icons/Communication/Contact#1.svg +11 -0
  167. package/src/icons/duotone-icons/Communication/Delete-user.svg +11 -0
  168. package/src/icons/duotone-icons/Communication/Dial-numbers.svg +18 -0
  169. package/src/icons/duotone-icons/Communication/Flag.svg +11 -0
  170. package/src/icons/duotone-icons/Communication/Forward.svg +10 -0
  171. package/src/icons/duotone-icons/Communication/Group-chat.svg +11 -0
  172. package/src/icons/duotone-icons/Communication/Group.svg +11 -0
  173. package/src/icons/duotone-icons/Communication/Incoming-box.svg +12 -0
  174. package/src/icons/duotone-icons/Communication/Incoming-call.svg +11 -0
  175. package/src/icons/duotone-icons/Communication/Incoming-mail.svg +11 -0
  176. package/src/icons/duotone-icons/Communication/Mail-@.svg +10 -0
  177. package/src/icons/duotone-icons/Communication/Mail-attachment.svg +11 -0
  178. package/src/icons/duotone-icons/Communication/Mail-box.svg +11 -0
  179. package/src/icons/duotone-icons/Communication/Mail-error.svg +11 -0
  180. package/src/icons/duotone-icons/Communication/Mail-heart.svg +11 -0
  181. package/src/icons/duotone-icons/Communication/Mail-locked.svg +11 -0
  182. package/src/icons/duotone-icons/Communication/Mail-notification.svg +11 -0
  183. package/src/icons/duotone-icons/Communication/Mail-opened.svg +11 -0
  184. package/src/icons/duotone-icons/Communication/Mail-unocked.svg +11 -0
  185. package/src/icons/duotone-icons/Communication/Mail.svg +10 -0
  186. package/src/icons/duotone-icons/Communication/Missed-call.svg +11 -0
  187. package/src/icons/duotone-icons/Communication/Outgoing-box.svg +12 -0
  188. package/src/icons/duotone-icons/Communication/Outgoing-call.svg +11 -0
  189. package/src/icons/duotone-icons/Communication/Outgoing-mail.svg +11 -0
  190. package/src/icons/duotone-icons/Communication/RSS.svg +12 -0
  191. package/src/icons/duotone-icons/Communication/Readed-mail.svg +11 -0
  192. package/src/icons/duotone-icons/Communication/Reply-all.svg +11 -0
  193. package/src/icons/duotone-icons/Communication/Reply.svg +10 -0
  194. package/src/icons/duotone-icons/Communication/Right.svg +10 -0
  195. package/src/icons/duotone-icons/Communication/Safe-chat.svg +11 -0
  196. package/src/icons/duotone-icons/Communication/Send.svg +10 -0
  197. package/src/icons/duotone-icons/Communication/Sending mail.svg +11 -0
  198. package/src/icons/duotone-icons/Communication/Sending.svg +11 -0
  199. package/src/icons/duotone-icons/Communication/Share.svg +11 -0
  200. package/src/icons/duotone-icons/Communication/Shield-thunder.svg +11 -0
  201. package/src/icons/duotone-icons/Communication/Shield-user.svg +12 -0
  202. package/src/icons/duotone-icons/Communication/Snoozed-mail.svg +11 -0
  203. package/src/icons/duotone-icons/Communication/Spam.svg +10 -0
  204. package/src/icons/duotone-icons/Communication/Thumbtack.svg +11 -0
  205. package/src/icons/duotone-icons/Communication/Urgent-mail.svg +11 -0
  206. package/src/icons/duotone-icons/Communication/Write.svg +11 -0
  207. package/src/icons/duotone-icons/Cooking/Baking-glove.svg +11 -0
  208. package/src/icons/duotone-icons/Cooking/Bowl.svg +11 -0
  209. package/src/icons/duotone-icons/Cooking/Chef.svg +11 -0
  210. package/src/icons/duotone-icons/Cooking/Cooking-book.svg +17 -0
  211. package/src/icons/duotone-icons/Cooking/Cooking-pot.svg +11 -0
  212. package/src/icons/duotone-icons/Cooking/Cutting board.svg +11 -0
  213. package/src/icons/duotone-icons/Cooking/Dinner.svg +14 -0
  214. package/src/icons/duotone-icons/Cooking/Dish.svg +11 -0
  215. package/src/icons/duotone-icons/Cooking/Dishes.svg +11 -0
  216. package/src/icons/duotone-icons/Cooking/Fork-spoon-knife.svg +15 -0
  217. package/src/icons/duotone-icons/Cooking/Fork-spoon.svg +13 -0
  218. package/src/icons/duotone-icons/Cooking/Fork.svg +11 -0
  219. package/src/icons/duotone-icons/Cooking/Frying-pan.svg +11 -0
  220. package/src/icons/duotone-icons/Cooking/Grater.svg +11 -0
  221. package/src/icons/duotone-icons/Cooking/Kitchen-scale.svg +11 -0
  222. package/src/icons/duotone-icons/Cooking/Knife#1.svg +11 -0
  223. package/src/icons/duotone-icons/Cooking/Knife#2.svg +11 -0
  224. package/src/icons/duotone-icons/Cooking/Knife&fork#1.svg +13 -0
  225. package/src/icons/duotone-icons/Cooking/Knife&fork#2.svg +13 -0
  226. package/src/icons/duotone-icons/Cooking/Ladle.svg +11 -0
  227. package/src/icons/duotone-icons/Cooking/Rolling-pin.svg +11 -0
  228. package/src/icons/duotone-icons/Cooking/Saucepan.svg +11 -0
  229. package/src/icons/duotone-icons/Cooking/Shovel.svg +11 -0
  230. package/src/icons/duotone-icons/Cooking/Sieve.svg +11 -0
  231. package/src/icons/duotone-icons/Cooking/Spoon.svg +12 -0
  232. package/src/icons/duotone-icons/Design/Adjust.svg +10 -0
  233. package/src/icons/duotone-icons/Design/Anchor-center-down.svg +14 -0
  234. package/src/icons/duotone-icons/Design/Anchor-center-up.svg +14 -0
  235. package/src/icons/duotone-icons/Design/Anchor-center.svg +11 -0
  236. package/src/icons/duotone-icons/Design/Anchor-left-down.svg +14 -0
  237. package/src/icons/duotone-icons/Design/Anchor-left-up.svg +14 -0
  238. package/src/icons/duotone-icons/Design/Anchor-left.svg +14 -0
  239. package/src/icons/duotone-icons/Design/Anchor-right-down.svg +14 -0
  240. package/src/icons/duotone-icons/Design/Anchor-right-up.svg +14 -0
  241. package/src/icons/duotone-icons/Design/Anchor-right.svg +14 -0
  242. package/src/icons/duotone-icons/Design/Arrows.svg +11 -0
  243. package/src/icons/duotone-icons/Design/Bezier-curve.svg +11 -0
  244. package/src/icons/duotone-icons/Design/Border.svg +10 -0
  245. package/src/icons/duotone-icons/Design/Brush.svg +11 -0
  246. package/src/icons/duotone-icons/Design/Bucket.svg +11 -0
  247. package/src/icons/duotone-icons/Design/Cap-1.svg +11 -0
  248. package/src/icons/duotone-icons/Design/Cap-2.svg +10 -0
  249. package/src/icons/duotone-icons/Design/Cap-3.svg +11 -0
  250. package/src/icons/duotone-icons/Design/Circle.svg +10 -0
  251. package/src/icons/duotone-icons/Design/Color-profile.svg +11 -0
  252. package/src/icons/duotone-icons/Design/Color.svg +10 -0
  253. package/src/icons/duotone-icons/Design/Component.svg +10 -0
  254. package/src/icons/duotone-icons/Design/Crop.svg +11 -0
  255. package/src/icons/duotone-icons/Design/Difference.svg +11 -0
  256. package/src/icons/duotone-icons/Design/Edit.svg +11 -0
  257. package/src/icons/duotone-icons/Design/Eraser.svg +10 -0
  258. package/src/icons/duotone-icons/Design/Flatten.svg +11 -0
  259. package/src/icons/duotone-icons/Design/Flip-horizontal.svg +12 -0
  260. package/src/icons/duotone-icons/Design/Flip-vertical.svg +12 -0
  261. package/src/icons/duotone-icons/Design/Horizontal.svg +11 -0
  262. package/src/icons/duotone-icons/Design/Image.svg +10 -0
  263. package/src/icons/duotone-icons/Design/Interselect.svg +11 -0
  264. package/src/icons/duotone-icons/Design/Join-1.svg +11 -0
  265. package/src/icons/duotone-icons/Design/Join-2.svg +11 -0
  266. package/src/icons/duotone-icons/Design/Join-3.svg +11 -0
  267. package/src/icons/duotone-icons/Design/Layers.svg +11 -0
  268. package/src/icons/duotone-icons/Design/Line.svg +12 -0
  269. package/src/icons/duotone-icons/Design/Magic.svg +11 -0
  270. package/src/icons/duotone-icons/Design/Mask.svg +11 -0
  271. package/src/icons/duotone-icons/Design/Patch.svg +12 -0
  272. package/src/icons/duotone-icons/Design/Pen&ruller.svg +11 -0
  273. package/src/icons/duotone-icons/Design/Pen-tool-vector.svg +11 -0
  274. package/src/icons/duotone-icons/Design/Pencil.svg +11 -0
  275. package/src/icons/duotone-icons/Design/Picker.svg +11 -0
  276. package/src/icons/duotone-icons/Design/Pixels.svg +15 -0
  277. package/src/icons/duotone-icons/Design/Polygon.svg +10 -0
  278. package/src/icons/duotone-icons/Design/Position.svg +10 -0
  279. package/src/icons/duotone-icons/Design/Rectangle.svg +10 -0
  280. package/src/icons/duotone-icons/Design/Saturation.svg +11 -0
  281. package/src/icons/duotone-icons/Design/Select.svg +11 -0
  282. package/src/icons/duotone-icons/Design/Sketch.svg +11 -0
  283. package/src/icons/duotone-icons/Design/Stamp.svg +11 -0
  284. package/src/icons/duotone-icons/Design/Substract.svg +11 -0
  285. package/src/icons/duotone-icons/Design/Target.svg +11 -0
  286. package/src/icons/duotone-icons/Design/Triangle.svg +10 -0
  287. package/src/icons/duotone-icons/Design/Union.svg +10 -0
  288. package/src/icons/duotone-icons/Design/Vertical.svg +11 -0
  289. package/src/icons/duotone-icons/Design/Zoom minus.svg +12 -0
  290. package/src/icons/duotone-icons/Design/Zoom plus.svg +12 -0
  291. package/src/icons/duotone-icons/Devices/Airpods.svg +13 -0
  292. package/src/icons/duotone-icons/Devices/Android.svg +11 -0
  293. package/src/icons/duotone-icons/Devices/Apple-Watch.svg +11 -0
  294. package/src/icons/duotone-icons/Devices/Battery-charging.svg +12 -0
  295. package/src/icons/duotone-icons/Devices/Battery-empty.svg +11 -0
  296. package/src/icons/duotone-icons/Devices/Battery-full.svg +11 -0
  297. package/src/icons/duotone-icons/Devices/Battery-half.svg +11 -0
  298. package/src/icons/duotone-icons/Devices/Bluetooth.svg +11 -0
  299. package/src/icons/duotone-icons/Devices/CPU#1.svg +17 -0
  300. package/src/icons/duotone-icons/Devices/CPU#2.svg +23 -0
  301. package/src/icons/duotone-icons/Devices/Camera.svg +12 -0
  302. package/src/icons/duotone-icons/Devices/Cardboard-vr.svg +11 -0
  303. package/src/icons/duotone-icons/Devices/Cassete.svg +12 -0
  304. package/src/icons/duotone-icons/Devices/Diagnostics.svg +12 -0
  305. package/src/icons/duotone-icons/Devices/Display#1.svg +11 -0
  306. package/src/icons/duotone-icons/Devices/Display#2.svg +12 -0
  307. package/src/icons/duotone-icons/Devices/Display#3.svg +12 -0
  308. package/src/icons/duotone-icons/Devices/Gameboy.svg +11 -0
  309. package/src/icons/duotone-icons/Devices/Gamepad#1.svg +11 -0
  310. package/src/icons/duotone-icons/Devices/Gamepad#2.svg +11 -0
  311. package/src/icons/duotone-icons/Devices/Generator.svg +13 -0
  312. package/src/icons/duotone-icons/Devices/Hard-drive.svg +11 -0
  313. package/src/icons/duotone-icons/Devices/Headphones.svg +11 -0
  314. package/src/icons/duotone-icons/Devices/Homepod.svg +11 -0
  315. package/src/icons/duotone-icons/Devices/Keyboard.svg +11 -0
  316. package/src/icons/duotone-icons/Devices/LTE#1.svg +11 -0
  317. package/src/icons/duotone-icons/Devices/LTE#2.svg +11 -0
  318. package/src/icons/duotone-icons/Devices/Laptop-macbook.svg +11 -0
  319. package/src/icons/duotone-icons/Devices/Laptop.svg +11 -0
  320. package/src/icons/duotone-icons/Devices/Mic.svg +11 -0
  321. package/src/icons/duotone-icons/Devices/Midi.svg +16 -0
  322. package/src/icons/duotone-icons/Devices/Mouse.svg +12 -0
  323. package/src/icons/duotone-icons/Devices/Phone.svg +12 -0
  324. package/src/icons/duotone-icons/Devices/Printer.svg +11 -0
  325. package/src/icons/duotone-icons/Devices/Radio.svg +14 -0
  326. package/src/icons/duotone-icons/Devices/Router#1.svg +11 -0
  327. package/src/icons/duotone-icons/Devices/Router#2.svg +11 -0
  328. package/src/icons/duotone-icons/Devices/SD-card.svg +10 -0
  329. package/src/icons/duotone-icons/Devices/Server.svg +12 -0
  330. package/src/icons/duotone-icons/Devices/Speaker.svg +11 -0
  331. package/src/icons/duotone-icons/Devices/TV#1.svg +12 -0
  332. package/src/icons/duotone-icons/Devices/TV#2.svg +11 -0
  333. package/src/icons/duotone-icons/Devices/Tablet.svg +11 -0
  334. package/src/icons/duotone-icons/Devices/USB.svg +12 -0
  335. package/src/icons/duotone-icons/Devices/Usb-storage.svg +11 -0
  336. package/src/icons/duotone-icons/Devices/Video-camera.svg +11 -0
  337. package/src/icons/duotone-icons/Devices/Watch#1.svg +13 -0
  338. package/src/icons/duotone-icons/Devices/Watch#2.svg +13 -0
  339. package/src/icons/duotone-icons/Devices/Wi-fi.svg +11 -0
  340. package/src/icons/duotone-icons/Devices/iMac.svg +12 -0
  341. package/src/icons/duotone-icons/Devices/iPhone-X.svg +11 -0
  342. package/src/icons/duotone-icons/Devices/iPhone-back.svg +10 -0
  343. package/src/icons/duotone-icons/Devices/iPhone-x-back.svg +10 -0
  344. package/src/icons/duotone-icons/Electric/Air-conditioning.svg +11 -0
  345. package/src/icons/duotone-icons/Electric/Blender.svg +10 -0
  346. package/src/icons/duotone-icons/Electric/Fan.svg +12 -0
  347. package/src/icons/duotone-icons/Electric/Fridge.svg +10 -0
  348. package/src/icons/duotone-icons/Electric/Gas-stove.svg +11 -0
  349. package/src/icons/duotone-icons/Electric/Hair-dryer.svg +11 -0
  350. package/src/icons/duotone-icons/Electric/Highvoltage.svg +10 -0
  351. package/src/icons/duotone-icons/Electric/Iron.svg +11 -0
  352. package/src/icons/duotone-icons/Electric/Kettle.svg +11 -0
  353. package/src/icons/duotone-icons/Electric/Mixer.svg +11 -0
  354. package/src/icons/duotone-icons/Electric/Outlet.svg +11 -0
  355. package/src/icons/duotone-icons/Electric/Range-hood.svg +11 -0
  356. package/src/icons/duotone-icons/Electric/Shutdown.svg +11 -0
  357. package/src/icons/duotone-icons/Electric/Socket-eu.svg +10 -0
  358. package/src/icons/duotone-icons/Electric/Socket-us.svg +10 -0
  359. package/src/icons/duotone-icons/Electric/Washer.svg +11 -0
  360. package/src/icons/duotone-icons/Files/Cloud-download.svg +11 -0
  361. package/src/icons/duotone-icons/Files/Cloud-upload.svg +11 -0
  362. package/src/icons/duotone-icons/Files/Compilation.svg +14 -0
  363. package/src/icons/duotone-icons/Files/Compiled-file.svg +14 -0
  364. package/src/icons/duotone-icons/Files/Deleted-file.svg +11 -0
  365. package/src/icons/duotone-icons/Files/Deleted-folder.svg +11 -0
  366. package/src/icons/duotone-icons/Files/Download.inline.svg +12 -0
  367. package/src/icons/duotone-icons/Files/Downloaded file.svg +11 -0
  368. package/src/icons/duotone-icons/Files/Downloads-folder.svg +11 -0
  369. package/src/icons/duotone-icons/Files/Export.svg +12 -0
  370. package/src/icons/duotone-icons/Files/File-cloud.svg +11 -0
  371. package/src/icons/duotone-icons/Files/File-done.svg +11 -0
  372. package/src/icons/duotone-icons/Files/File-minus.svg +11 -0
  373. package/src/icons/duotone-icons/Files/File-plus.svg +11 -0
  374. package/src/icons/duotone-icons/Files/File.svg +12 -0
  375. package/src/icons/duotone-icons/Files/Folder-check.svg +11 -0
  376. package/src/icons/duotone-icons/Files/Folder-cloud.svg +11 -0
  377. package/src/icons/duotone-icons/Files/Folder-error.svg +11 -0
  378. package/src/icons/duotone-icons/Files/Folder-heart.svg +11 -0
  379. package/src/icons/duotone-icons/Files/Folder-minus.svg +11 -0
  380. package/src/icons/duotone-icons/Files/Folder-plus.svg +11 -0
  381. package/src/icons/duotone-icons/Files/Folder-solid.svg +10 -0
  382. package/src/icons/duotone-icons/Files/Folder-star.svg +11 -0
  383. package/src/icons/duotone-icons/Files/Folder-thunder.svg +11 -0
  384. package/src/icons/duotone-icons/Files/Folder.svg +10 -0
  385. package/src/icons/duotone-icons/Files/Group-folders.svg +11 -0
  386. package/src/icons/duotone-icons/Files/Import.svg +12 -0
  387. package/src/icons/duotone-icons/Files/Locked-folder.svg +11 -0
  388. package/src/icons/duotone-icons/Files/Media-folder.svg +11 -0
  389. package/src/icons/duotone-icons/Files/Media.svg +11 -0
  390. package/src/icons/duotone-icons/Files/Music.svg +11 -0
  391. package/src/icons/duotone-icons/Files/Pictures#1.svg +13 -0
  392. package/src/icons/duotone-icons/Files/Pictures#2.svg +15 -0
  393. package/src/icons/duotone-icons/Files/Protected-file.svg +11 -0
  394. package/src/icons/duotone-icons/Files/Selected-file.svg +11 -0
  395. package/src/icons/duotone-icons/Files/Share.svg +13 -0
  396. package/src/icons/duotone-icons/Files/Upload-folder.svg +11 -0
  397. package/src/icons/duotone-icons/Files/Upload.svg +12 -0
  398. package/src/icons/duotone-icons/Files/Uploaded-file.svg +11 -0
  399. package/src/icons/duotone-icons/Files/User-folder.svg +12 -0
  400. package/src/icons/duotone-icons/Food/Beer.svg +14 -0
  401. package/src/icons/duotone-icons/Food/Bottle#1.svg +11 -0
  402. package/src/icons/duotone-icons/Food/Bottle#2.svg +11 -0
  403. package/src/icons/duotone-icons/Food/Bread.svg +11 -0
  404. package/src/icons/duotone-icons/Food/Bucket.svg +11 -0
  405. package/src/icons/duotone-icons/Food/Burger.svg +12 -0
  406. package/src/icons/duotone-icons/Food/Cake.svg +12 -0
  407. package/src/icons/duotone-icons/Food/Carrot.svg +13 -0
  408. package/src/icons/duotone-icons/Food/Cheese.svg +11 -0
  409. package/src/icons/duotone-icons/Food/Chicken.svg +13 -0
  410. package/src/icons/duotone-icons/Food/Coffee#1.svg +14 -0
  411. package/src/icons/duotone-icons/Food/Coffee#2.svg +12 -0
  412. package/src/icons/duotone-icons/Food/Cookie.svg +13 -0
  413. package/src/icons/duotone-icons/Food/Dinner.svg +11 -0
  414. package/src/icons/duotone-icons/Food/Fish.svg +11 -0
  415. package/src/icons/duotone-icons/Food/French Bread.svg +10 -0
  416. package/src/icons/duotone-icons/Food/Glass-martini.svg +11 -0
  417. package/src/icons/duotone-icons/Food/Ice-cream#1.svg +11 -0
  418. package/src/icons/duotone-icons/Food/Ice-cream#2.svg +11 -0
  419. package/src/icons/duotone-icons/Food/Miso-soup.svg +11 -0
  420. package/src/icons/duotone-icons/Food/Orange.svg +11 -0
  421. package/src/icons/duotone-icons/Food/Pizza.svg +13 -0
  422. package/src/icons/duotone-icons/Food/Sushi.svg +11 -0
  423. package/src/icons/duotone-icons/Food/Two-bottles.svg +11 -0
  424. package/src/icons/duotone-icons/Food/Wine.svg +11 -0
  425. package/src/icons/duotone-icons/General/Attachment#1.svg +11 -0
  426. package/src/icons/duotone-icons/General/Attachment#2.svg +13 -0
  427. package/src/icons/duotone-icons/General/Binocular.svg +10 -0
  428. package/src/icons/duotone-icons/General/Bookmark.svg +10 -0
  429. package/src/icons/duotone-icons/General/Clip.svg +10 -0
  430. package/src/icons/duotone-icons/General/Clipboard.svg +13 -0
  431. package/src/icons/duotone-icons/General/Cursor.svg +10 -0
  432. package/src/icons/duotone-icons/General/Dislike.svg +11 -0
  433. package/src/icons/duotone-icons/General/Duplicate.svg +11 -0
  434. package/src/icons/duotone-icons/General/Edit.svg +10 -0
  435. package/src/icons/duotone-icons/General/Expand-arrows.svg +11 -0
  436. package/src/icons/duotone-icons/General/Fire.svg +10 -0
  437. package/src/icons/duotone-icons/General/Folder.svg +10 -0
  438. package/src/icons/duotone-icons/General/Half-heart.svg +11 -0
  439. package/src/icons/duotone-icons/General/Half-star.svg +11 -0
  440. package/src/icons/duotone-icons/General/Heart.svg +10 -0
  441. package/src/icons/duotone-icons/General/Hidden.svg +12 -0
  442. package/src/icons/duotone-icons/General/Like.svg +11 -0
  443. package/src/icons/duotone-icons/General/Lock.svg +16 -0
  444. package/src/icons/duotone-icons/General/Notification#2.svg +11 -0
  445. package/src/icons/duotone-icons/General/Notifications#1.svg +10 -0
  446. package/src/icons/duotone-icons/General/Other#1.svg +12 -0
  447. package/src/icons/duotone-icons/General/Other#2.svg +12 -0
  448. package/src/icons/duotone-icons/General/Sad.svg +11 -0
  449. package/src/icons/duotone-icons/General/Save.svg +11 -0
  450. package/src/icons/duotone-icons/General/Scale.svg +11 -0
  451. package/src/icons/duotone-icons/General/Scissors.svg +11 -0
  452. package/src/icons/duotone-icons/General/Search.svg +11 -0
  453. package/src/icons/duotone-icons/General/Settings#3.svg +11 -0
  454. package/src/icons/duotone-icons/General/Settings-1.inline.svg +11 -0
  455. package/src/icons/duotone-icons/General/Settings-2.svg +10 -0
  456. package/src/icons/duotone-icons/General/Shield-check.svg +11 -0
  457. package/src/icons/duotone-icons/General/Shield-disabled.svg +11 -0
  458. package/src/icons/duotone-icons/General/Shield-protected.svg +11 -0
  459. package/src/icons/duotone-icons/General/Size.svg +11 -0
  460. package/src/icons/duotone-icons/General/Smile.svg +11 -0
  461. package/src/icons/duotone-icons/General/Star.svg +10 -0
  462. package/src/icons/duotone-icons/General/Thunder-move.svg +11 -0
  463. package/src/icons/duotone-icons/General/Thunder.svg +10 -0
  464. package/src/icons/duotone-icons/General/Trash.svg +11 -0
  465. package/src/icons/duotone-icons/General/Unlock.svg +16 -0
  466. package/src/icons/duotone-icons/General/Update.svg +10 -0
  467. package/src/icons/duotone-icons/General/User.svg +11 -0
  468. package/src/icons/duotone-icons/General/Visible.svg +11 -0
  469. package/src/icons/duotone-icons/Home/Air-ballon.svg +11 -0
  470. package/src/icons/duotone-icons/Home/Alarm-clock.svg +12 -0
  471. package/src/icons/duotone-icons/Home/Armchair.svg +11 -0
  472. package/src/icons/duotone-icons/Home/Bag-chair.svg +11 -0
  473. package/src/icons/duotone-icons/Home/Bath.svg +11 -0
  474. package/src/icons/duotone-icons/Home/Bed.svg +12 -0
  475. package/src/icons/duotone-icons/Home/Book-open.svg +11 -0
  476. package/src/icons/duotone-icons/Home/Book.svg +16 -0
  477. package/src/icons/duotone-icons/Home/Box.svg +11 -0
  478. package/src/icons/duotone-icons/Home/Broom.svg +11 -0
  479. package/src/icons/duotone-icons/Home/Building.svg +12 -0
  480. package/src/icons/duotone-icons/Home/Bulb#1.svg +13 -0
  481. package/src/icons/duotone-icons/Home/Bulb#2.svg +13 -0
  482. package/src/icons/duotone-icons/Home/Chair#1.svg +11 -0
  483. package/src/icons/duotone-icons/Home/Chair#2.svg +11 -0
  484. package/src/icons/duotone-icons/Home/Clock.svg +11 -0
  485. package/src/icons/duotone-icons/Home/Commode#1.svg +11 -0
  486. package/src/icons/duotone-icons/Home/Commode#2.svg +11 -0
  487. package/src/icons/duotone-icons/Home/Couch.svg +11 -0
  488. package/src/icons/duotone-icons/Home/Cupboard.svg +11 -0
  489. package/src/icons/duotone-icons/Home/Curtains.svg +11 -0
  490. package/src/icons/duotone-icons/Home/Deer.svg +11 -0
  491. package/src/icons/duotone-icons/Home/Door-open.svg +11 -0
  492. package/src/icons/duotone-icons/Home/Earth.svg +11 -0
  493. package/src/icons/duotone-icons/Home/Fireplace.svg +11 -0
  494. package/src/icons/duotone-icons/Home/Flashlight.svg +11 -0
  495. package/src/icons/duotone-icons/Home/Flower#1.svg +13 -0
  496. package/src/icons/duotone-icons/Home/Flower#2.svg +14 -0
  497. package/src/icons/duotone-icons/Home/Flower#3.svg +12 -0
  498. package/src/icons/duotone-icons/Home/Globe.svg +11 -0
  499. package/src/icons/duotone-icons/Home/Home-heart.svg +11 -0
  500. package/src/icons/duotone-icons/Home/Home.svg +10 -0
  501. package/src/icons/duotone-icons/Home/Key.svg +11 -0
  502. package/src/icons/duotone-icons/Home/Ladder.svg +11 -0
  503. package/src/icons/duotone-icons/Home/Lamp#1.svg +13 -0
  504. package/src/icons/duotone-icons/Home/Lamp#2.svg +12 -0
  505. package/src/icons/duotone-icons/Home/Library.svg +11 -0
  506. package/src/icons/duotone-icons/Home/Mailbox.svg +11 -0
  507. package/src/icons/duotone-icons/Home/Mirror.svg +11 -0
  508. package/src/icons/duotone-icons/Home/Picture.svg +13 -0
  509. package/src/icons/duotone-icons/Home/Ruller.svg +10 -0
  510. package/src/icons/duotone-icons/Home/Stairs.svg +10 -0
  511. package/src/icons/duotone-icons/Home/Timer.svg +13 -0
  512. package/src/icons/duotone-icons/Home/Toilet.svg +11 -0
  513. package/src/icons/duotone-icons/Home/Towel.svg +10 -0
  514. package/src/icons/duotone-icons/Home/Trash.svg +11 -0
  515. package/src/icons/duotone-icons/Home/Water-mixer.svg +12 -0
  516. package/src/icons/duotone-icons/Home/Weight#1.svg +11 -0
  517. package/src/icons/duotone-icons/Home/Weight#2.svg +11 -0
  518. package/src/icons/duotone-icons/Home/Wood#1.svg +11 -0
  519. package/src/icons/duotone-icons/Home/Wood#2.svg +11 -0
  520. package/src/icons/duotone-icons/Home/Wood-horse.svg +10 -0
  521. package/src/icons/duotone-icons/Layout/Layout-3d.svg +11 -0
  522. package/src/icons/duotone-icons/Layout/Layout-4-blocks.svg +11 -0
  523. package/src/icons/duotone-icons/Layout/Layout-arrange.inline.svg +11 -0
  524. package/src/icons/duotone-icons/Layout/Layout-grid.svg +11 -0
  525. package/src/icons/duotone-icons/Layout/Layout-horizontal.svg +11 -0
  526. package/src/icons/duotone-icons/Layout/Layout-left-panel-1.svg +11 -0
  527. package/src/icons/duotone-icons/Layout/Layout-left-panel-2.svg +11 -0
  528. package/src/icons/duotone-icons/Layout/Layout-right-panel-1.svg +11 -0
  529. package/src/icons/duotone-icons/Layout/Layout-right-panel-2.svg +11 -0
  530. package/src/icons/duotone-icons/Layout/Layout-top-panel-1.svg +11 -0
  531. package/src/icons/duotone-icons/Layout/Layout-top-panel-2.svg +11 -0
  532. package/src/icons/duotone-icons/Layout/Layout-top-panel-3.svg +11 -0
  533. package/src/icons/duotone-icons/Layout/Layout-top-panel-4.svg +11 -0
  534. package/src/icons/duotone-icons/Layout/Layout-top-panel-5.svg +11 -0
  535. package/src/icons/duotone-icons/Layout/Layout-top-panel-6.svg +11 -0
  536. package/src/icons/duotone-icons/Layout/Layout-vertical.svg +11 -0
  537. package/src/icons/duotone-icons/Map/Compass.svg +10 -0
  538. package/src/icons/duotone-icons/Map/Direction#1.svg +10 -0
  539. package/src/icons/duotone-icons/Map/Direction#2.svg +10 -0
  540. package/src/icons/duotone-icons/Map/Location-arrow.svg +10 -0
  541. package/src/icons/duotone-icons/Map/Marker#1.svg +10 -0
  542. package/src/icons/duotone-icons/Map/Marker#2.svg +10 -0
  543. package/src/icons/duotone-icons/Map/Position.svg +12 -0
  544. package/src/icons/duotone-icons/Media/Add-music.svg +11 -0
  545. package/src/icons/duotone-icons/Media/Airplay-video.svg +11 -0
  546. package/src/icons/duotone-icons/Media/Airplay.svg +11 -0
  547. package/src/icons/duotone-icons/Media/Back.svg +11 -0
  548. package/src/icons/duotone-icons/Media/Backward.svg +11 -0
  549. package/src/icons/duotone-icons/Media/CD.svg +11 -0
  550. package/src/icons/duotone-icons/Media/DVD.svg +11 -0
  551. package/src/icons/duotone-icons/Media/Eject.svg +11 -0
  552. package/src/icons/duotone-icons/Media/Equalizer.svg +13 -0
  553. package/src/icons/duotone-icons/Media/Forward.svg +11 -0
  554. package/src/icons/duotone-icons/Media/Media-library#1.svg +13 -0
  555. package/src/icons/duotone-icons/Media/Media-library#2.svg +11 -0
  556. package/src/icons/duotone-icons/Media/Media-library#3.svg +17 -0
  557. package/src/icons/duotone-icons/Media/Movie-Lane #2.svg +11 -0
  558. package/src/icons/duotone-icons/Media/Movie-lane#1.svg +11 -0
  559. package/src/icons/duotone-icons/Media/Music-cloud.svg +11 -0
  560. package/src/icons/duotone-icons/Media/Music-note.svg +10 -0
  561. package/src/icons/duotone-icons/Media/Music.svg +10 -0
  562. package/src/icons/duotone-icons/Media/Mute.svg +11 -0
  563. package/src/icons/duotone-icons/Media/Next.svg +11 -0
  564. package/src/icons/duotone-icons/Media/Pause.svg +10 -0
  565. package/src/icons/duotone-icons/Media/Play.svg +10 -0
  566. package/src/icons/duotone-icons/Media/Playlist#1.svg +11 -0
  567. package/src/icons/duotone-icons/Media/Playlist#2.svg +11 -0
  568. package/src/icons/duotone-icons/Media/Rec.svg +10 -0
  569. package/src/icons/duotone-icons/Media/Repeat-one.svg +11 -0
  570. package/src/icons/duotone-icons/Media/Repeat.svg +11 -0
  571. package/src/icons/duotone-icons/Media/Shuffle.svg +11 -0
  572. package/src/icons/duotone-icons/Media/Volume-down.svg +11 -0
  573. package/src/icons/duotone-icons/Media/Volume-full.svg +11 -0
  574. package/src/icons/duotone-icons/Media/Volume-half.svg +11 -0
  575. package/src/icons/duotone-icons/Media/Volume-up.svg +11 -0
  576. package/src/icons/duotone-icons/Media/Vynil.svg +11 -0
  577. package/src/icons/duotone-icons/Media/Youtube.svg +11 -0
  578. package/src/icons/duotone-icons/Navigation/Angle-double-down.svg +11 -0
  579. package/src/icons/duotone-icons/Navigation/Angle-double-left.svg +11 -0
  580. package/src/icons/duotone-icons/Navigation/Angle-double-right.svg +11 -0
  581. package/src/icons/duotone-icons/Navigation/Angle-double-up.svg +11 -0
  582. package/src/icons/duotone-icons/Navigation/Angle-down.svg +10 -0
  583. package/src/icons/duotone-icons/Navigation/Angle-left.svg +10 -0
  584. package/src/icons/duotone-icons/Navigation/Angle-right.svg +10 -0
  585. package/src/icons/duotone-icons/Navigation/Angle-up.svg +10 -0
  586. package/src/icons/duotone-icons/Navigation/Arrow-down.svg +11 -0
  587. package/src/icons/duotone-icons/Navigation/Arrow-from-bottom.svg +12 -0
  588. package/src/icons/duotone-icons/Navigation/Arrow-from-left.svg +12 -0
  589. package/src/icons/duotone-icons/Navigation/Arrow-from-right.svg +12 -0
  590. package/src/icons/duotone-icons/Navigation/Arrow-from-top.svg +12 -0
  591. package/src/icons/duotone-icons/Navigation/Arrow-left.svg +11 -0
  592. package/src/icons/duotone-icons/Navigation/Arrow-right.svg +11 -0
  593. package/src/icons/duotone-icons/Navigation/Arrow-to-bottom.svg +12 -0
  594. package/src/icons/duotone-icons/Navigation/Arrow-to-left.svg +12 -0
  595. package/src/icons/duotone-icons/Navigation/Arrow-to-right.svg +12 -0
  596. package/src/icons/duotone-icons/Navigation/Arrow-to-up.svg +12 -0
  597. package/src/icons/duotone-icons/Navigation/Arrow-up.svg +11 -0
  598. package/src/icons/duotone-icons/Navigation/Arrows-h.svg +12 -0
  599. package/src/icons/duotone-icons/Navigation/Arrows-v.svg +12 -0
  600. package/src/icons/duotone-icons/Navigation/Check.svg +10 -0
  601. package/src/icons/duotone-icons/Navigation/Close.svg +12 -0
  602. package/src/icons/duotone-icons/Navigation/Double-check.svg +11 -0
  603. package/src/icons/duotone-icons/Navigation/Down-2.svg +11 -0
  604. package/src/icons/duotone-icons/Navigation/Down-left.svg +11 -0
  605. package/src/icons/duotone-icons/Navigation/Down-right.svg +11 -0
  606. package/src/icons/duotone-icons/Navigation/Exchange.svg +13 -0
  607. package/src/icons/duotone-icons/Navigation/Left 3.svg +11 -0
  608. package/src/icons/duotone-icons/Navigation/Left-2.svg +11 -0
  609. package/src/icons/duotone-icons/Navigation/Minus.svg +9 -0
  610. package/src/icons/duotone-icons/Navigation/Plus.svg +10 -0
  611. package/src/icons/duotone-icons/Navigation/Right 3.svg +11 -0
  612. package/src/icons/duotone-icons/Navigation/Right-2.svg +11 -0
  613. package/src/icons/duotone-icons/Navigation/Route.svg +12 -0
  614. package/src/icons/duotone-icons/Navigation/Sign-in.svg +12 -0
  615. package/src/icons/duotone-icons/Navigation/Sign-out.svg +12 -0
  616. package/src/icons/duotone-icons/Navigation/Up-2.svg +11 -0
  617. package/src/icons/duotone-icons/Navigation/Up-down.svg +13 -0
  618. package/src/icons/duotone-icons/Navigation/Up-left.svg +11 -0
  619. package/src/icons/duotone-icons/Navigation/Up-right.svg +11 -0
  620. package/src/icons/duotone-icons/Navigation/Waiting.svg +10 -0
  621. package/src/icons/duotone-icons/Shopping/ATM.svg +11 -0
  622. package/src/icons/duotone-icons/Shopping/Bag#1.svg +11 -0
  623. package/src/icons/duotone-icons/Shopping/Bag#2.svg +11 -0
  624. package/src/icons/duotone-icons/Shopping/Barcode-read.svg +11 -0
  625. package/src/icons/duotone-icons/Shopping/Barcode-scan.svg +12 -0
  626. package/src/icons/duotone-icons/Shopping/Barcode.svg +11 -0
  627. package/src/icons/duotone-icons/Shopping/Bitcoin.svg +12 -0
  628. package/src/icons/duotone-icons/Shopping/Box#1.svg +11 -0
  629. package/src/icons/duotone-icons/Shopping/Box#3.svg +11 -0
  630. package/src/icons/duotone-icons/Shopping/Box2.inline.svg +11 -0
  631. package/src/icons/duotone-icons/Shopping/Calculator.svg +11 -0
  632. package/src/icons/duotone-icons/Shopping/Cart#1.svg +11 -0
  633. package/src/icons/duotone-icons/Shopping/Cart#2.svg +11 -0
  634. package/src/icons/duotone-icons/Shopping/Cart#3.svg +11 -0
  635. package/src/icons/duotone-icons/Shopping/Chart-bar#1.svg +13 -0
  636. package/src/icons/duotone-icons/Shopping/Chart-bar#2.svg +13 -0
  637. package/src/icons/duotone-icons/Shopping/Chart-bar#3.svg +13 -0
  638. package/src/icons/duotone-icons/Shopping/Chart-line#1.svg +11 -0
  639. package/src/icons/duotone-icons/Shopping/Chart-line#2.svg +11 -0
  640. package/src/icons/duotone-icons/Shopping/Chart-pie.svg +11 -0
  641. package/src/icons/duotone-icons/Shopping/Credit-card.svg +12 -0
  642. package/src/icons/duotone-icons/Shopping/Dollar.svg +12 -0
  643. package/src/icons/duotone-icons/Shopping/Euro.svg +11 -0
  644. package/src/icons/duotone-icons/Shopping/Gift.svg +11 -0
  645. package/src/icons/duotone-icons/Shopping/Loader.svg +12 -0
  646. package/src/icons/duotone-icons/Shopping/MC.svg +11 -0
  647. package/src/icons/duotone-icons/Shopping/Money.svg +11 -0
  648. package/src/icons/duotone-icons/Shopping/Pound.svg +11 -0
  649. package/src/icons/duotone-icons/Shopping/Price #1.svg +10 -0
  650. package/src/icons/duotone-icons/Shopping/Price #2.svg +14 -0
  651. package/src/icons/duotone-icons/Shopping/Rouble.svg +11 -0
  652. package/src/icons/duotone-icons/Shopping/Safe.svg +11 -0
  653. package/src/icons/duotone-icons/Shopping/Sale#1.svg +11 -0
  654. package/src/icons/duotone-icons/Shopping/Sale#2.svg +13 -0
  655. package/src/icons/duotone-icons/Shopping/Settings.svg +11 -0
  656. package/src/icons/duotone-icons/Shopping/Sort#1.svg +11 -0
  657. package/src/icons/duotone-icons/Shopping/Sort#2.svg +10 -0
  658. package/src/icons/duotone-icons/Shopping/Sort#3.svg +10 -0
  659. package/src/icons/duotone-icons/Shopping/Ticket.svg +10 -0
  660. package/src/icons/duotone-icons/Shopping/Wallet#2.svg +11 -0
  661. package/src/icons/duotone-icons/Shopping/Wallet#3.svg +12 -0
  662. package/src/icons/duotone-icons/Shopping/Wallet.svg +12 -0
  663. package/src/icons/duotone-icons/Text/Align-auto.svg +11 -0
  664. package/src/icons/duotone-icons/Text/Align-center.svg +11 -0
  665. package/src/icons/duotone-icons/Text/Align-justify.svg +11 -0
  666. package/src/icons/duotone-icons/Text/Align-left.svg +12 -0
  667. package/src/icons/duotone-icons/Text/Align-right.svg +11 -0
  668. package/src/icons/duotone-icons/Text/Article.svg +11 -0
  669. package/src/icons/duotone-icons/Text/Bold.svg +10 -0
  670. package/src/icons/duotone-icons/Text/Bullet-list.svg +11 -0
  671. package/src/icons/duotone-icons/Text/Code.svg +10 -0
  672. package/src/icons/duotone-icons/Text/Edit-text.svg +11 -0
  673. package/src/icons/duotone-icons/Text/Filter.svg +10 -0
  674. package/src/icons/duotone-icons/Text/Font.svg +11 -0
  675. package/src/icons/duotone-icons/Text/H1.svg +11 -0
  676. package/src/icons/duotone-icons/Text/H2.svg +11 -0
  677. package/src/icons/duotone-icons/Text/Itallic.svg +10 -0
  678. package/src/icons/duotone-icons/Text/Menu.svg +11 -0
  679. package/src/icons/duotone-icons/Text/Paragraph.svg +10 -0
  680. package/src/icons/duotone-icons/Text/Quote#1.svg +11 -0
  681. package/src/icons/duotone-icons/Text/Quote#2.svg +11 -0
  682. package/src/icons/duotone-icons/Text/Redo.svg +10 -0
  683. package/src/icons/duotone-icons/Text/Strikethrough.svg +11 -0
  684. package/src/icons/duotone-icons/Text/Text-height.svg +11 -0
  685. package/src/icons/duotone-icons/Text/Text-width.svg +11 -0
  686. package/src/icons/duotone-icons/Text/Text.svg +10 -0
  687. package/src/icons/duotone-icons/Text/Underline.svg +11 -0
  688. package/src/icons/duotone-icons/Text/Undo.svg +10 -0
  689. package/src/icons/duotone-icons/Tools/Angle Grinder.svg +12 -0
  690. package/src/icons/duotone-icons/Tools/Axe.svg +11 -0
  691. package/src/icons/duotone-icons/Tools/Brush.svg +11 -0
  692. package/src/icons/duotone-icons/Tools/Compass.svg +11 -0
  693. package/src/icons/duotone-icons/Tools/Hummer#2.svg +12 -0
  694. package/src/icons/duotone-icons/Tools/Hummer.svg +11 -0
  695. package/src/icons/duotone-icons/Tools/Pantone.svg +12 -0
  696. package/src/icons/duotone-icons/Tools/Road-Cone.svg +11 -0
  697. package/src/icons/duotone-icons/Tools/Roller.svg +12 -0
  698. package/src/icons/duotone-icons/Tools/Roulette.svg +11 -0
  699. package/src/icons/duotone-icons/Tools/Screwdriver.svg +11 -0
  700. package/src/icons/duotone-icons/Tools/Shovel.svg +11 -0
  701. package/src/icons/duotone-icons/Tools/Spatula.svg +11 -0
  702. package/src/icons/duotone-icons/Tools/Swiss-knife.svg +11 -0
  703. package/src/icons/duotone-icons/Tools/Tools.svg +11 -0
  704. package/src/icons/duotone-icons/Weather/Celcium.svg +11 -0
  705. package/src/icons/duotone-icons/Weather/Cloud#1.svg +10 -0
  706. package/src/icons/duotone-icons/Weather/Cloud#2.svg +11 -0
  707. package/src/icons/duotone-icons/Weather/Cloud-fog.svg +11 -0
  708. package/src/icons/duotone-icons/Weather/Cloud-sun.svg +11 -0
  709. package/src/icons/duotone-icons/Weather/Cloud-wind.svg +12 -0
  710. package/src/icons/duotone-icons/Weather/Cloudy-night.svg +11 -0
  711. package/src/icons/duotone-icons/Weather/Cloudy.svg +11 -0
  712. package/src/icons/duotone-icons/Weather/Day-rain.svg +11 -0
  713. package/src/icons/duotone-icons/Weather/Fahrenheit.svg +11 -0
  714. package/src/icons/duotone-icons/Weather/Fog.svg +15 -0
  715. package/src/icons/duotone-icons/Weather/Moon.svg +10 -0
  716. package/src/icons/duotone-icons/Weather/Night-fog.svg +11 -0
  717. package/src/icons/duotone-icons/Weather/Night-rain.svg +11 -0
  718. package/src/icons/duotone-icons/Weather/Rain#1.svg +11 -0
  719. package/src/icons/duotone-icons/Weather/Rain#2.svg +11 -0
  720. package/src/icons/duotone-icons/Weather/Rain#5.svg +11 -0
  721. package/src/icons/duotone-icons/Weather/Rainbow.svg +12 -0
  722. package/src/icons/duotone-icons/Weather/Snow#1.svg +11 -0
  723. package/src/icons/duotone-icons/Weather/Snow#2.svg +11 -0
  724. package/src/icons/duotone-icons/Weather/Snow#3.svg +11 -0
  725. package/src/icons/duotone-icons/Weather/Snow.svg +11 -0
  726. package/src/icons/duotone-icons/Weather/Storm.svg +11 -0
  727. package/src/icons/duotone-icons/Weather/Sun-fog.svg +11 -0
  728. package/src/icons/duotone-icons/Weather/Sun.svg +11 -0
  729. package/src/icons/duotone-icons/Weather/Suset#1.svg +11 -0
  730. package/src/icons/duotone-icons/Weather/Suset#2.svg +11 -0
  731. package/src/icons/duotone-icons/Weather/Temperature-empty.svg +10 -0
  732. package/src/icons/duotone-icons/Weather/Temperature-full.svg +10 -0
  733. package/src/icons/duotone-icons/Weather/Temperature-half.svg +10 -0
  734. package/src/icons/duotone-icons/Weather/Thunder-night.svg +11 -0
  735. package/src/icons/duotone-icons/Weather/Thunder.svg +11 -0
  736. package/src/icons/duotone-icons/Weather/Umbrella.svg +11 -0
  737. package/src/icons/duotone-icons/Weather/Wind.svg +11 -0
  738. package/src/icons/social/facebook.svg +10 -0
  739. package/src/icons/social/instagram.svg +10 -0
  740. package/src/icons/social/pinterest.svg +3 -0
  741. package/src/icons/social/twitter.svg +10 -0
  742. package/src/implemented-proposals/abi-management.md +161 -0
  743. package/src/implemented-proposals/bank-timestamp-correction.md +77 -0
  744. package/src/implemented-proposals/commitment.md +92 -0
  745. package/src/implemented-proposals/durable-tx-nonces.md +131 -0
  746. package/src/implemented-proposals/ed_overview/ed_economic_sustainability.md +9 -0
  747. package/src/implemented-proposals/ed_overview/ed_mvp.md +24 -0
  748. package/src/implemented-proposals/ed_overview/ed_overview.md +19 -0
  749. package/src/implemented-proposals/ed_overview/ed_references.md +7 -0
  750. package/src/implemented-proposals/ed_overview/ed_storage_rent_economics.md +17 -0
  751. package/src/implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_overview.md +9 -0
  752. package/src/implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md +64 -0
  753. package/src/implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_transaction_fees.md +20 -0
  754. package/src/implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_validation_stake_delegation.md +28 -0
  755. package/src/implemented-proposals/implemented-proposals.md +9 -0
  756. package/src/implemented-proposals/installer.md +216 -0
  757. package/src/implemented-proposals/instruction_introspection.md +28 -0
  758. package/src/implemented-proposals/leader-leader-transition.md +55 -0
  759. package/src/implemented-proposals/leader-validator-transition.md +52 -0
  760. package/src/implemented-proposals/persistent-account-storage.md +83 -0
  761. package/src/implemented-proposals/readonly-accounts.md +25 -0
  762. package/src/implemented-proposals/reliable-vote-transmission.md +60 -0
  763. package/src/implemented-proposals/rent.md +69 -0
  764. package/src/implemented-proposals/repair-service.md +108 -0
  765. package/src/implemented-proposals/rpc-transaction-history.md +107 -0
  766. package/src/implemented-proposals/snapshot-verification.md +56 -0
  767. package/src/implemented-proposals/staking-rewards.md +33 -0
  768. package/src/implemented-proposals/testing-programs.md +53 -0
  769. package/src/implemented-proposals/tower-bft.md +138 -0
  770. package/src/implemented-proposals/transaction-fees.md +32 -0
  771. package/src/implemented-proposals/validator-timestamp-oracle.md +107 -0
  772. package/src/inflation/adjusted_staking_yield.md +118 -0
  773. package/src/inflation/inflation_schedule.md +40 -0
  774. package/src/inflation/terminology.md +54 -0
  775. package/src/integrations/exchange.md +753 -0
  776. package/src/introduction.md +33 -0
  777. package/src/offline-signing/durable-nonce.md +247 -0
  778. package/src/offline-signing.md +174 -0
  779. package/src/pages/index.js +160 -0
  780. package/src/pages/styles.module.css +41 -0
  781. package/src/proposals/accepted-design-proposals.md +11 -0
  782. package/src/proposals/accounts-db-replication.md +185 -0
  783. package/src/proposals/bankless-leader.md +57 -0
  784. package/src/proposals/block-confirmation.md +85 -0
  785. package/src/proposals/cluster-test-framework.md +102 -0
  786. package/src/proposals/comprehensive-compute-fees.md +164 -0
  787. package/src/proposals/embedding-move.md +37 -0
  788. package/src/proposals/interchain-transaction-verification.md +105 -0
  789. package/src/proposals/ledger-replication-to-implement.md +417 -0
  790. package/src/proposals/log_data.md +146 -0
  791. package/src/proposals/optimistic-confirmation-and-slashing.md +89 -0
  792. package/src/proposals/optimistic-transaction-propagation-signal.md +109 -0
  793. package/src/proposals/optimistic_confirmation.md +408 -0
  794. package/src/proposals/program-instruction-macro.md +226 -0
  795. package/src/proposals/return-data.md +144 -0
  796. package/src/proposals/rip-curl.md +56 -0
  797. package/src/proposals/rust-clients.md +54 -0
  798. package/src/proposals/simple-payment-and-state-verification.md +258 -0
  799. package/src/proposals/slashing.md +60 -0
  800. package/src/proposals/snapshot-verification.md +11 -0
  801. package/src/proposals/tick-verification.md +70 -0
  802. package/src/proposals/transactions-v2.md +334 -0
  803. package/src/proposals/validator-proposal.md +54 -0
  804. package/src/proposals/vote-signing-to-implement.md +116 -0
  805. package/src/running-validator/restart-cluster.md +117 -0
  806. package/src/running-validator/validator-failover.md +146 -0
  807. package/src/running-validator/validator-info.md +64 -0
  808. package/src/running-validator/validator-monitor.md +47 -0
  809. package/src/running-validator/validator-reqs.md +115 -0
  810. package/src/running-validator/validator-stake.md +132 -0
  811. package/src/running-validator/validator-start.md +492 -0
  812. package/src/running-validator/validator-troubleshoot.md +17 -0
  813. package/src/running-validator/vote-accounts.md +219 -0
  814. package/src/running-validator.md +7 -0
  815. package/src/staking/stake-accounts.md +141 -0
  816. package/src/staking/stake-programming.md +27 -0
  817. package/src/staking.md +117 -0
  818. package/src/storage_rent_economics.md +17 -0
  819. package/src/terminology.md +346 -0
  820. package/src/theme/Footer/index.js +126 -0
  821. package/src/theme/Footer/styles.module.css +15 -0
  822. package/src/transaction_fees.md +21 -0
  823. package/src/validator/anatomy.md +13 -0
  824. package/src/validator/blockstore.md +91 -0
  825. package/src/validator/gossip.md +90 -0
  826. package/src/validator/runtime.md +69 -0
  827. package/src/validator/tpu.md +5 -0
  828. package/src/validator/tvu.md +9 -0
  829. package/src/wallet-guide/apps.md +74 -0
  830. package/src/wallet-guide/cli.md +67 -0
  831. package/src/wallet-guide/file-system-wallet.md +65 -0
  832. package/src/wallet-guide/hardware-wallets/ledger.md +219 -0
  833. package/src/wallet-guide/hardware-wallets.md +53 -0
  834. package/src/wallet-guide/ledger-live.md +77 -0
  835. package/src/wallet-guide/paper-wallet.md +203 -0
  836. package/src/wallet-guide/solflare.md +201 -0
  837. package/src/wallet-guide/support.md +16 -0
  838. package/src/wallet-guide/web-wallets.md +52 -0
  839. package/src/wallet-guide.md +63 -0
  840. package/static/.nojekyll +0 -0
  841. package/static/img/favicon.ico +0 -0
  842. package/static/katex/README.md +91 -0
  843. package/static/katex/contrib/auto-render.js +350 -0
  844. package/static/katex/contrib/auto-render.min.js +1 -0
  845. package/static/katex/contrib/auto-render.mjs +226 -0
  846. package/static/katex/contrib/copy-tex.css +13 -0
  847. package/static/katex/contrib/copy-tex.js +213 -0
  848. package/static/katex/contrib/copy-tex.min.css +1 -0
  849. package/static/katex/contrib/copy-tex.min.js +1 -0
  850. package/static/katex/contrib/copy-tex.mjs +85 -0
  851. package/static/katex/contrib/mathtex-script-type.js +137 -0
  852. package/static/katex/contrib/mathtex-script-type.min.js +1 -0
  853. package/static/katex/contrib/mathtex-script-type.mjs +24 -0
  854. package/static/katex/contrib/mhchem.js +3241 -0
  855. package/static/katex/contrib/mhchem.min.js +1 -0
  856. package/static/katex/contrib/mhchem.mjs +3109 -0
  857. package/static/katex/contrib/render-a11y-string.js +870 -0
  858. package/static/katex/contrib/render-a11y-string.min.js +1 -0
  859. package/static/katex/contrib/render-a11y-string.mjs +753 -0
  860. package/static/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  861. package/static/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  862. package/static/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  863. package/static/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  864. package/static/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  865. package/static/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  866. package/static/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  867. package/static/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  868. package/static/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  869. package/static/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  870. package/static/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  871. package/static/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  872. package/static/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  873. package/static/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  874. package/static/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  875. package/static/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  876. package/static/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  877. package/static/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  878. package/static/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  879. package/static/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  880. package/static/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  881. package/static/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  882. package/static/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  883. package/static/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  884. package/static/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  885. package/static/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  886. package/static/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  887. package/static/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  888. package/static/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  889. package/static/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  890. package/static/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  891. package/static/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  892. package/static/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  893. package/static/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  894. package/static/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  895. package/static/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  896. package/static/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  897. package/static/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  898. package/static/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  899. package/static/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  900. package/static/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  901. package/static/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  902. package/static/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  903. package/static/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  904. package/static/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  905. package/static/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  906. package/static/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  907. package/static/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  908. package/static/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  909. package/static/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  910. package/static/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  911. package/static/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  912. package/static/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  913. package/static/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  914. package/static/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  915. package/static/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  916. package/static/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  917. package/static/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  918. package/static/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  919. package/static/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  920. package/static/katex/katex.css +1034 -0
  921. package/static/katex/katex.js +17308 -0
  922. package/static/katex/katex.min.css +1 -0
  923. package/static/katex/katex.min.js +1 -0
  924. package/static/katex/katex.mjs +16911 -0
@@ -0,0 +1,346 @@
1
+ ---
2
+ title: Terminology
3
+ ---
4
+
5
+ The following terms are used throughout the documentation.
6
+
7
+ ## account
8
+
9
+ A record in the Solana ledger that either holds data or is an executable program.
10
+
11
+ Like an account at a traditional bank, a Solana account may hold funds called [lamports](#lamport). Like a file in Linux, it is addressable by a key, often referred to as a [public key](#public-key-pubkey) or pubkey.
12
+
13
+ The key may be one of:
14
+
15
+ * an ed25519 public key
16
+ * a program-derived account address (32byte value forced off the ed25519 curve)
17
+ * a hash of an ed25519 public key with a 32 character string
18
+
19
+ ## account owner
20
+
21
+ The address of the program that owns the account. Only the owning program is capable of modifying the account.
22
+
23
+ ## app
24
+
25
+ A front-end application that interacts with a Solana cluster.
26
+
27
+ ## bank state
28
+
29
+ The result of interpreting all programs on the ledger at a given [tick height](#tick-height). It includes at least the set of all [accounts](#account) holding nonzero [native tokens](#native-token).
30
+
31
+ ## block
32
+
33
+ A contiguous set of [entries](#entry) on the ledger covered by a [vote](#ledger-vote). A [leader](#leader) produces at most one block per [slot](#slot).
34
+
35
+ ## blockhash
36
+
37
+ A unique value ([hash](#hash)) that identifies a record (block). Solana computes a blockhash from the last [entry id](#entry-id) of the block.
38
+
39
+ ## block height
40
+
41
+ The number of [blocks](#block) beneath the current block. The first block after the [genesis block](#genesis-block) has height one.
42
+
43
+ ## bootstrap validator
44
+
45
+ The [validator](#validator) that produces the genesis (first) [block](#block) of a block chain.
46
+
47
+ ## BPF loader
48
+
49
+ The Solana program that owns and loads [BPF](developing/on-chain-programs/overview#berkeley-packet-filter-bpf) smart contract programs, allowing the program to interface with the runtime.
50
+
51
+ ## client
52
+
53
+ A computer program that accesses the Solana server network [cluster](#cluster).
54
+
55
+ ## cluster
56
+
57
+ A set of [validators](#validator) maintaining a single [ledger](#ledger).
58
+
59
+ ## confirmation time
60
+
61
+ The wallclock duration between a [leader](#leader) creating a [tick entry](#tick) and creating a [confirmed block](#confirmed-block).
62
+
63
+ ## confirmed block
64
+
65
+ A [block](#block) that has received a [supermajority](#supermajority) of [ledger votes](#ledger-vote).
66
+
67
+ ## control plane
68
+
69
+ A gossip network connecting all [nodes](#node) of a [cluster](#cluster).
70
+
71
+ ## cooldown period
72
+
73
+ Some number of [epochs](#epoch) after [stake](#stake) has been deactivated while it progressively becomes available for withdrawal. During this period, the stake is considered to be "deactivating". More info about: [warmup and cooldown](implemented-proposals/staking-rewards.md#stake-warmup-cooldown-withdrawal)
74
+
75
+ ## credit
76
+
77
+ See [vote credit](#vote-credit).
78
+
79
+ ## cross-program invocation (CPI)
80
+
81
+ A call from one smart contract program to another. For more information, see [calling between programs](developing/programming-model/calling-between-programs.md).
82
+
83
+ ## data plane
84
+
85
+ A multicast network used to efficiently validate [entries](#entry) and gain consensus.
86
+
87
+ ## drone
88
+
89
+ An off-chain service that acts as a custodian for a user's private key. It typically serves to validate and sign transactions.
90
+
91
+ ## entry
92
+
93
+ An entry on the [ledger](#ledger) either a [tick](#tick) or a [transactions entry](#transactions-entry).
94
+
95
+ ## entry id
96
+
97
+ A preimage resistant [hash](#hash) over the final contents of an entry, which acts as the [entry's](#entry) globally unique identifier. The hash serves as evidence of:
98
+
99
+ - The entry being generated after a duration of time
100
+ - The specified [transactions](#transaction) are those included in the entry
101
+ - The entry's position with respect to other entries in [ledger](#ledger)
102
+
103
+ See [proof of history](#proof-of-history-poh).
104
+
105
+ ## epoch
106
+
107
+ The time, i.e. number of [slots](#slot), for which a [leader schedule](#leader-schedule) is valid.
108
+
109
+ ## fee account
110
+
111
+ The fee account in the transaction is the account that pays for the cost of including the transaction in the ledger. This is the first account in the transaction. This account must be declared as Read-Write (writable) in the transaction since paying for the transaction reduces the account balance.
112
+
113
+ ## finality
114
+
115
+ When nodes representing 2/3rd of the [stake](#stake) have a common [root](#root).
116
+
117
+ ## fork
118
+
119
+ A [ledger](#ledger) derived from common entries but then diverged.
120
+
121
+ ## genesis block
122
+
123
+ The first [block](#block) in the chain.
124
+
125
+ ## genesis config
126
+
127
+ The configuration file that prepares the [ledger](#ledger) for the [genesis block](#genesis-block).
128
+
129
+ ## hash
130
+
131
+ A digital fingerprint of a sequence of bytes.
132
+
133
+ ## inflation
134
+
135
+ An increase in token supply over time used to fund rewards for validation and to fund continued development of Solana.
136
+
137
+ ## inner instruction
138
+
139
+ See [cross-program invocation](#cross-program-invocation-cpi).
140
+
141
+ ## instruction
142
+
143
+ The smallest contiguous unit of execution logic in a [program](#program). An instruction specifies which program it is calling, which accounts it wants to read or modify, and additional data that serves as auxiliary input to the program. A [client](#client) can include one or multiple instructions in a [transaction](#transaction). An instruction may contain one or more [cross-program invocations](#cross-program-invocation-cpi).
144
+
145
+ ## keypair
146
+
147
+ A [public key](#public-key-pubkey) and corresponding [private key](#private-key) for accessing an account.
148
+
149
+ ## lamport
150
+
151
+ A fractional [native token](#native-token) with the value of 0.000000001 [sol](#sol).
152
+
153
+ ## leader
154
+
155
+ The role of a [validator](#validator) when it is appending [entries](#entry) to the [ledger](#ledger).
156
+
157
+ ## leader schedule
158
+
159
+ A sequence of [validator](#validator) [public keys](#public-key-pubkey) mapped to [slots](#slot). The cluster uses the leader schedule to determine which validator is the [leader](#leader) at any moment in time.
160
+
161
+ ## ledger
162
+
163
+ A list of [entries](#entry) containing [transactions](#transaction) signed by [clients](#client).
164
+ Conceptually, this can be traced back to the [genesis block](#genesis-block), but an actual [validator](#validator)'s ledger may have only newer [blocks](#block) to reduce storage, as older ones are not needed for validation of future blocks by design.
165
+
166
+ ## ledger vote
167
+
168
+ A [hash](#hash) of the [validator's state](#bank-state) at a given [tick height](#tick-height). It comprises a [validator's](#validator) affirmation that a [block](#block) it has received has been verified, as well as a promise not to vote for a conflicting [block](#block) \(i.e. [fork](#fork)\) for a specific amount of time, the [lockout](#lockout) period.
169
+
170
+ ## light client
171
+
172
+ A type of [client](#client) that can verify it's pointing to a valid [cluster](#cluster). It performs more ledger verification than a [thin client](#thin-client) and less than a [validator](#validator).
173
+
174
+ ## loader
175
+
176
+ A [program](#program) with the ability to interpret the binary encoding of other on-chain programs.
177
+
178
+ ## lockout
179
+
180
+ The duration of time for which a [validator](#validator) is unable to [vote](#ledger-vote) on another [fork](#fork).
181
+
182
+ ## native token
183
+
184
+ The [token](#token) used to track work done by [nodes](#node) in a cluster.
185
+
186
+ ## node
187
+
188
+ A computer participating in a [cluster](#cluster).
189
+
190
+ ## node count
191
+
192
+ The number of [validators](#validator) participating in a [cluster](#cluster).
193
+
194
+ ## PoH
195
+
196
+ See [Proof of History](#proof-of-history-poh).
197
+
198
+ ## point
199
+
200
+ A weighted [credit](#credit) in a rewards regime. In the [validator](#validator) [rewards regime](cluster/stake-delegation-and-rewards.md), the number of points owed to a [stake](#stake) during redemption is the product of the [vote credits](#vote-credit) earned and the number of lamports staked.
201
+
202
+ ## private key
203
+
204
+ The private key of a [keypair](#keypair).
205
+
206
+ ## program
207
+
208
+ The code that interprets [instructions](#instruction).
209
+
210
+ ## program derived account (PDA)
211
+
212
+ An account whose owner is a program and thus is not controlled by a private key like other accounts.
213
+
214
+ ## program id
215
+
216
+ The public key of the [account](#account) containing a [program](#program).
217
+
218
+ ## proof of history (PoH)
219
+
220
+ A stack of proofs, each which proves that some data existed before the proof was created and that a precise duration of time passed before the previous proof. Like a [VDF](#verifiable-delay-function-vdf), a Proof of History can be verified in less time than it took to produce.
221
+
222
+ ## public key (pubkey)
223
+
224
+ The public key of a [keypair](#keypair).
225
+
226
+ ## root
227
+
228
+ A [block](#block) or [slot](#slot) that has reached maximum [lockout](#lockout) on a [validator](#validator). The root is the highest block that is an ancestor of all active forks on a validator. All ancestor blocks of a root are also transitively a root. Blocks that are not an ancestor and not a descendant of the root are excluded from consideration for consensus and can be discarded.
229
+
230
+ ## runtime
231
+
232
+ The component of a [validator](#validator) responsible for [program](#program) execution.
233
+
234
+ ## Sealevel
235
+
236
+ Solana's parallel smart contracts run-time.
237
+
238
+ ## shred
239
+
240
+ A fraction of a [block](#block); the smallest unit sent between [validators](#validator).
241
+
242
+ ## signature
243
+
244
+ A 64-byte ed25519 signature of R (32-bytes) and S (32-bytes). With the requirement that R is a packed Edwards point not of small order and S is a scalar in the range of 0 <= S < L.
245
+ This requirement ensures no signature malleability. Each transaction must have at least one signature for [fee account](terminology#fee-account).
246
+ Thus, the first signature in transaction can be treated as [transacton id](#transaction-id)
247
+
248
+ ## skipped slot
249
+
250
+ A past [slot](#slot) that did not produce a [block](#block), because the leader was offline or the [fork](#fork) containing the slot was abandoned for a better alternative by cluster consensus. A skipped slot will not appear as an ancestor for blocks at subsequent slots, nor increment the [block height](terminology#block-height), nor expire the oldest `recent_blockhash`.
251
+
252
+ Whether a slot has been skipped can only be determined when it becomes older than the latest [rooted](#root) (thus not-skipped) slot.
253
+
254
+ ## slot
255
+
256
+ The period of time for which each [leader](#leader) ingests transactions and produces a [block](#block).
257
+
258
+ Collectively, slots create a logical clock. Slots are ordered sequentially and non-overlapping, comprising roughly equal real-world time as per [PoH](#proof-of-history-poh).
259
+
260
+ ## smart contract
261
+
262
+ A program on a blockchain that can read and modify accounts over which it has control.
263
+
264
+ ## sol
265
+
266
+ The [native token](#native-token) of a Solana [cluster](#cluster).
267
+
268
+ ## Solana Program Library (SPL)
269
+
270
+ A library of programs on Solana such as spl-token that facilitates tasks such as creating and using tokens
271
+
272
+ ## stake
273
+
274
+ Tokens forfeit to the [cluster](#cluster) if malicious [validator](#validator) behavior can be proven.
275
+
276
+ ## supermajority
277
+
278
+ 2/3 of a [cluster](#cluster).
279
+
280
+ ## sysvar
281
+
282
+ A system [account](#account). [Sysvars](developing/runtime-facilities/sysvars.md) provide cluster state information such as current tick height, rewards [points](#point) values, etc. Programs can access Sysvars via a Sysvar account (pubkey) or by querying via a syscall.
283
+
284
+ ## thin client
285
+
286
+ A type of [client](#client) that trusts it is communicating with a valid [cluster](#cluster).
287
+
288
+ ## tick
289
+
290
+ A ledger [entry](#entry) that estimates wallclock duration.
291
+
292
+ ## tick height
293
+
294
+ The Nth [tick](#tick) in the [ledger](#ledger).
295
+
296
+ ## token
297
+
298
+ A digitally transferable asset.
299
+
300
+ ## tps
301
+
302
+ [Transactions](#transaction) per second.
303
+
304
+ ## transaction
305
+
306
+ One or more [instructions](#instruction) signed by a [client](#client) using one or more [keypairs](#keypair) and executed atomically with only two possible outcomes: success or failure.
307
+
308
+ ## transaction id
309
+
310
+ The first [signature](#signature) in a [transaction](#transaction), which can be used to uniquely identify the transaction across the complete [ledger](#ledger).
311
+
312
+ ## transaction confirmations
313
+
314
+ The number of [confirmed blocks](#confirmed-block) since the transaction was accepted onto the [ledger](#ledger). A transaction is finalized when its block becomes a [root](#root).
315
+
316
+ ## transactions entry
317
+
318
+ A set of [transactions](#transaction) that may be executed in parallel.
319
+
320
+ ## validator
321
+
322
+ A full participant in a Solana network [cluster](#cluster) that produces new [blocks](#block). A validator validates the transactions added to the [ledger](#ledger)
323
+
324
+ ## VDF
325
+
326
+ See [verifiable delay function](#verifiable-delay-function-vdf).
327
+
328
+ ## verifiable delay function (VDF)
329
+
330
+ A function that takes a fixed amount of time to execute that produces a proof that it ran, which can then be verified in less time than it took to produce.
331
+
332
+ ## vote
333
+
334
+ See [ledger vote](#ledger-vote).
335
+
336
+ ## vote credit
337
+
338
+ A reward tally for [validators](#validator). A vote credit is awarded to a validator in its vote account when the validator reaches a [root](#root).
339
+
340
+ ## wallet
341
+
342
+ A collection of [keypairs](#keypair) that allows users to manage their funds.
343
+
344
+ ## warmup period
345
+
346
+ Some number of [epochs](#epoch) after [stake](#stake) has been delegated while it progressively becomes effective. During this period, the stake is considered to be "activating". More info about: [warmup and cooldown](cluster/stake-delegation-and-rewards.md#stake-warmup-cooldown-withdrawal)
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import React from "react";
9
+ import clsx from "clsx";
10
+
11
+ import Link from "@docusaurus/Link";
12
+ import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
13
+ import useBaseUrl from "@docusaurus/useBaseUrl";
14
+ import styles from "./styles.module.css";
15
+
16
+ function FooterLink({ to, href, label, prependBaseUrlToHref, ...props }) {
17
+ const toUrl = useBaseUrl(to);
18
+ const normalizedHref = useBaseUrl(href, { forcePrependBaseUrl: true });
19
+
20
+ return (
21
+ <Link
22
+ className="footer__link-item"
23
+ {...(href
24
+ ? {
25
+ target: "_blank",
26
+ rel: "noopener noreferrer",
27
+ href: prependBaseUrlToHref ? normalizedHref : href,
28
+ }
29
+ : {
30
+ to: toUrl,
31
+ })}
32
+ {...props}
33
+ >
34
+ {label}
35
+ </Link>
36
+ );
37
+ }
38
+
39
+ const FooterLogo = ({ url, alt }) => (
40
+ <img className="footer__logo" alt={alt} src={url} />
41
+ );
42
+
43
+ function Footer() {
44
+ const context = useDocusaurusContext();
45
+ const { siteConfig = {} } = context;
46
+ const { themeConfig = {} } = siteConfig;
47
+ const { footer } = themeConfig;
48
+
49
+ const { copyright, links = [], logo = {} } = footer || {};
50
+ const logoUrl = useBaseUrl(logo.src);
51
+
52
+ if (!footer) {
53
+ return null;
54
+ }
55
+
56
+ return (
57
+ <footer
58
+ className={clsx("footer", {
59
+ "footer--dark": footer.style === "dark",
60
+ })}
61
+ >
62
+ <div className="container">
63
+ {links && links.length > 0 && (
64
+ <div className="row footer__links">
65
+ {links.map((linkItem, i) => (
66
+ <div key={i} className="col footer__col">
67
+ {linkItem.title != null ? (
68
+ <h4 className="footer__title">{linkItem.title}</h4>
69
+ ) : null}
70
+ {linkItem.items != null &&
71
+ Array.isArray(linkItem.items) &&
72
+ linkItem.items.length > 0 ? (
73
+ <ul className="footer__items">
74
+ {linkItem.items.map((item, key) =>
75
+ item.html ? (
76
+ <li
77
+ key={key}
78
+ className="footer__item"
79
+ dangerouslySetInnerHTML={{
80
+ __html: item.html,
81
+ }}
82
+ />
83
+ ) : (
84
+ <li key={item.href || item.to} className="footer__item">
85
+ <FooterLink {...item} />
86
+ </li>
87
+ )
88
+ )}
89
+ </ul>
90
+ ) : null}
91
+ </div>
92
+ ))}
93
+ </div>
94
+ )}
95
+ {(logo || copyright) && (
96
+ <div className="text--center">
97
+ {logo && logo.src && (
98
+ <div className="margin-bottom--sm">
99
+ {logo.href ? (
100
+ <a
101
+ href={logo.href}
102
+ target="_blank"
103
+ rel="noopener noreferrer"
104
+ className={styles.footerLogoLink}
105
+ >
106
+ <FooterLogo alt={logo.alt} url={logoUrl} />
107
+ </a>
108
+ ) : (
109
+ <FooterLogo alt={logo.alt} url={logoUrl} />
110
+ )}
111
+ </div>
112
+ )}
113
+
114
+ <div
115
+ dangerouslySetInnerHTML={{
116
+ __html: copyright,
117
+ }}
118
+ />
119
+ </div>
120
+ )}
121
+ </div>
122
+ </footer>
123
+ );
124
+ }
125
+
126
+ export default Footer;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .footerLogoLink {
9
+ opacity: 0.5;
10
+ transition: opacity 0.15s ease-in-out;
11
+ }
12
+
13
+ .footerLogoLink:hover {
14
+ opacity: 1;
15
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: Transaction Fees
3
+ ---
4
+
5
+ **Subject to change.**
6
+
7
+ Each transaction sent through the network, to be processed by the current leader validation-client and confirmed as a global state transaction, contains a transaction fee. Transaction fees offer many benefits in the Solana economic design, for example they:
8
+
9
+ - provide unit compensation to the validator network for the CPU/GPU resources necessary to process the state transaction,
10
+ - reduce network spam by introducing real cost to transactions,
11
+ - and provide potential long-term economic stability of the network through a protocol-captured minimum fee amount per transaction, as described below.
12
+
13
+ Network consensus votes are sent as normal system transfers, which means that validators pay transaction fees to participate in consensus.
14
+
15
+ Many current blockchain economies \(e.g. Bitcoin, Ethereum\), rely on protocol-based rewards to support the economy in the short term, with the assumption that the revenue generated through transaction fees will support the economy in the long term, when the protocol derived rewards expire. In an attempt to create a sustainable economy through protocol-based rewards and transaction fees, a fixed portion (initially 50%) of each transaction fee is destroyed, with the remaining fee going to the current leader processing the transaction. A scheduled global inflation rate provides a source for rewards distributed to validation-clients, through the process described above.
16
+
17
+ Transaction fees are set by the network cluster based on recent historical throughput, see [Congestion Driven Fees](implemented-proposals/transaction-fees.md#congestion-driven-fees). This minimum portion of each transaction fee can be dynamically adjusted depending on historical _signatures-per-slot_. In this way, the protocol can use the minimum fee to target a desired hardware utilization. By monitoring a protocol specified _signatures-per-slot_ with respect to a desired, target usage amount, the minimum fee can be raised/lowered which should, in turn, lower/raise the actual _signature-per-slot_ per block until it reaches the target amount. This adjustment process can be thought of as similar to the difficulty adjustment algorithm in the Bitcoin protocol, however in this case it is adjusting the minimum transaction fee to guide the transaction processing hardware usage to a desired level.
18
+
19
+ As mentioned, a fixed-proportion of each transaction fee is to be destroyed. The intent of this design is to retain leader incentive to include as many transactions as possible within the leader-slot time, while providing an inflation limiting mechanism that protects against "tax evasion" attacks \(i.e. side-channel fee payments\).
20
+
21
+ Additionally, the burnt fees can be a consideration in fork selection. In the case of a PoH fork with a malicious, censoring leader, we would expect the total fees destroyed to be less than a comparable honest fork, due to the fees lost from censoring. If the censoring leader is to compensate for these lost protocol fees, they would have to replace the burnt fees on their fork themselves, thus potentially reducing the incentive to censor in the first place.
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Anatomy of a Validator
3
+ ---
4
+
5
+ ![Validator block diagrams](/img/validator.svg)
6
+
7
+ ## Pipelining
8
+
9
+ The validators make extensive use of an optimization common in CPU design, called _pipelining_. Pipelining is the right tool for the job when there's a stream of input data that needs to be processed by a sequence of steps, and there's different hardware responsible for each. The quintessential example is using a washer and dryer to wash/dry/fold several loads of laundry. Washing must occur before drying and drying before folding, but each of the three operations is performed by a separate unit. To maximize efficiency, one creates a pipeline of _stages_. We'll call the washer one stage, the dryer another, and the folding process a third. To run the pipeline, one adds a second load of laundry to the washer just after the first load is added to the dryer. Likewise, the third load is added to the washer after the second is in the dryer and the first is being folded. In this way, one can make progress on three loads of laundry simultaneously. Given infinite loads, the pipeline will consistently complete a load at the rate of the slowest stage in the pipeline.
10
+
11
+ ## Pipelining in the Validator
12
+
13
+ The validator contains two pipelined processes, one used in leader mode called the TPU and one used in validator mode called the TVU. In both cases, the hardware being pipelined is the same, the network input, the GPU cards, the CPU cores, writes to disk, and the network output. What it does with that hardware is different. The TPU exists to create ledger entries whereas the TVU exists to validate them.
@@ -0,0 +1,91 @@
1
+ ---
2
+ title: Blockstore
3
+ ---
4
+
5
+ After a block reaches finality, all blocks from that one on down to the genesis block form a linear chain with the familiar name blockchain. Until that point, however, the validator must maintain all potentially valid chains, called _forks_. The process by which forks naturally form as a result of leader rotation is described in [fork generation](../cluster/fork-generation.md). The _blockstore_ data structure described here is how a validator copes with those forks until blocks are finalized.
6
+
7
+ The blockstore allows a validator to record every shred it observes on the network, in any order, as long as the shred is signed by the expected leader for a given slot.
8
+
9
+ Shreds are moved to a fork-able key space the tuple of `leader slot` + `shred index` \(within the slot\). This permits the skip-list structure of the Solana protocol to be stored in its entirety, without a-priori choosing which fork to follow, which Entries to persist or when to persist them.
10
+
11
+ Repair requests for recent shreds are served out of RAM or recent files and out of deeper storage for less recent shreds, as implemented by the store backing Blockstore.
12
+
13
+ ## Functionalities of Blockstore
14
+
15
+ 1. Persistence: the Blockstore lives in the front of the nodes verification
16
+
17
+ pipeline, right behind network receive and signature verification. If the
18
+
19
+ shred received is consistent with the leader schedule \(i.e. was signed by the
20
+
21
+ leader for the indicated slot\), it is immediately stored.
22
+
23
+ 2. Repair: repair is the same as window repair above, but able to serve any
24
+
25
+ shred that's been received. Blockstore stores shreds with signatures,
26
+
27
+ preserving the chain of origination.
28
+
29
+ 3. Forks: Blockstore supports random access of shreds, so can support a
30
+
31
+ validator's need to rollback and replay from a Bank checkpoint.
32
+
33
+ 4. Restart: with proper pruning/culling, the Blockstore can be replayed by
34
+
35
+ ordered enumeration of entries from slot 0. The logic of the replay stage
36
+
37
+ \(i.e. dealing with forks\) will have to be used for the most recent entries in
38
+
39
+ the Blockstore.
40
+
41
+ ## Blockstore Design
42
+
43
+ 1. Entries in the Blockstore are stored as key-value pairs, where the key is the concatenated slot index and shred index for an entry, and the value is the entry data. Note shred indexes are zero-based for each slot \(i.e. they're slot-relative\).
44
+ 2. The Blockstore maintains metadata for each slot, in the `SlotMeta` struct containing:
45
+
46
+ - `slot_index` - The index of this slot
47
+ - `num_blocks` - The number of blocks in the slot \(used for chaining to a previous slot\)
48
+ - `consumed` - The highest shred index `n`, such that for all `m < n`, there exists a shred in this slot with shred index equal to `n` \(i.e. the highest consecutive shred index\).
49
+ - `received` - The highest received shred index for the slot
50
+ - `next_slots` - A list of future slots this slot could chain to. Used when rebuilding
51
+
52
+ the ledger to find possible fork points.
53
+
54
+ - `last_index` - The index of the shred that is flagged as the last shred for this slot. This flag on a shred will be set by the leader for a slot when they are transmitting the last shred for a slot.
55
+ - `is_connected` - True iff every block from 0...slot forms a full sequence without any holes. We can derive is_connected for each slot with the following rules. Let slot\(n\) be the slot with index `n`, and slot\(n\).is_full\(\) is true if the slot with index `n` has all the ticks expected for that slot. Let is_connected\(n\) be the statement that "the slot\(n\).is_connected is true". Then:
56
+
57
+ is_connected\(0\) is_connected\(n+1\) iff \(is_connected\(n\) and slot\(n\).is_full\(\)
58
+
59
+ 3. Chaining - When a shred for a new slot `x` arrives, we check the number of blocks \(`num_blocks`\) for that new slot \(this information is encoded in the shred\). We then know that this new slot chains to slot `x - num_blocks`.
60
+ 4. Subscriptions - The Blockstore records a set of slots that have been "subscribed" to. This means entries that chain to these slots will be sent on the Blockstore channel for consumption by the ReplayStage. See the `Blockstore APIs` for details.
61
+ 5. Update notifications - The Blockstore notifies listeners when slot\(n\).is_connected is flipped from false to true for any `n`.
62
+
63
+ ## Blockstore APIs
64
+
65
+ The Blockstore offers a subscription based API that ReplayStage uses to ask for entries it's interested in. The entries will be sent on a channel exposed by the Blockstore. These subscription API's are as follows: 1. `fn get_slots_since(slot_indexes: &[u64]) -> Vec<SlotMeta>`: Returns new slots connecting to any element of the list `slot_indexes`.
66
+
67
+ 1. `fn get_slot_entries(slot_index: u64, entry_start_index: usize, max_entries: Option<u64>) -> Vec<Entry>`: Returns the entry vector for the slot starting with `entry_start_index`, capping the result at `max` if `max_entries == Some(max)`, otherwise, no upper limit on the length of the return vector is imposed.
68
+
69
+ Note: Cumulatively, this means that the replay stage will now have to know when a slot is finished, and subscribe to the next slot it's interested in to get the next set of entries. Previously, the burden of chaining slots fell on the Blockstore.
70
+
71
+ ## Interfacing with Bank
72
+
73
+ The bank exposes to replay stage:
74
+
75
+ 1. `prev_hash`: which PoH chain it's working on as indicated by the hash of the last
76
+
77
+ entry it processed
78
+
79
+ 2. `tick_height`: the ticks in the PoH chain currently being verified by this
80
+
81
+ bank
82
+
83
+ 3. `votes`: a stack of records that contain: 1. `prev_hashes`: what anything after this vote must chain to in PoH 2. `tick_height`: the tick height at which this vote was cast 3. `lockout period`: how long a chain must be observed to be in the ledger to
84
+
85
+ be able to be chained below this vote
86
+
87
+ Replay stage uses Blockstore APIs to find the longest chain of entries it can hang off a previous vote. If that chain of entries does not hang off the latest vote, the replay stage rolls back the bank to that vote and replays the chain from there.
88
+
89
+ ## Pruning Blockstore
90
+
91
+ Once Blockstore entries are old enough, representing all the possible forks becomes less useful, perhaps even problematic for replay upon restart. Once a validator's votes have reached max lockout, however, any Blockstore contents that are not on the PoH chain for that vote for can be pruned, expunged.