canine-docs/assets/js/8a56e0ba.c86c876a.js

1 line
17 KiB
JavaScript
Raw Normal View History

"use strict";(self.webpackChunkcanine_docs=self.webpackChunkcanine_docs||[]).push([[8957],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var o=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t){if(null==e)return{};var r,o,i=function(e,t){if(null==e)return{};var r,o,i={},s=Object.keys(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)r=s[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):n(n({},t),e)),r},d=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var r=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),p=c(r),f=i,h=p["".concat(l,".").concat(f)]||p[f]||u[f]||s;return r?o.createElement(h,n(n({ref:t},d),{},{components:r})):o.createElement(h,n({ref:t},d))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=r.length,n=new Array(s);n[0]=p;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a.mdxType="string"==typeof e?e:i,n[1]=a;for(var c=2;c<s;c++)n[c]=r[c];return o.createElement.apply(null,n)}return o.createElement.apply(null,r)}p.displayName="MDXCreateElement"},7109:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var o=r(7462),i=(r(7294),r(3905));const s={sidebar_position:8},n="filetree Module",a={unversionedId:"protocol/modules/filetree",id:"protocol/modules/filetree",title:"filetree Module",description:"Overview",source:"@site/docs/protocol/modules/filetree.md",sourceDirName:"protocol/modules",slug:"/protocol/modules/filetree",permalink:"/docs/protocol/modules/filetree",draft:!1,editUrl:"https://github.com/JackalLabs/canine-docs/blob/master/docs/protocol/modules/filetree.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"tutorialSidebar",previous:{title:"dsig Module",permalink:"/docs/protocol/modules/dsig"},next:{title:"Jackal Proof-of-Persistence",permalink:"/docs/protocol/p-o-p"}},l={},c=[{value:"Overview",id:"overview",level:2},{value:"Folder Abstraction",id:"folder-abstraction",level:2},{value:"File Entry Structure",id:"file-entry-structure",level:2},{value:"Encrypted Viewing Access",id:"encrypted-viewing-access",level:2}],d={toc:c};function u(e){let{components:t,...s}=e;return(0,i.kt)("wrapper",(0,o.Z)({},d,s,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"filetree-module"},"filetree Module"),(0,i.kt)("h2",{id:"overview"},"Overview"),(0,i.kt)("p",null,"The File Tree module is responsible for keeping records of a user's files and organizing them in a way that is accessible. When a user uploads a file using the Storage module, the file is only accessible from the File ID (FID) which makes the process clunky and obtuse to remember every file uploaded to Jackal. Furthermore, every single upload would be required to be public, or the user would need to keep track of every symmetric key used to encrypt the files and manually map them to the FIDs. The solution to this is a tree structure storing each file