This repository has been archived by the owner on Feb 13, 2023. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit db7e8eb
Showing
28 changed files
with
9,652 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
gfs.pdf | ||
gfs.aux | ||
gfs.log | ||
texput.log | ||
ipfs.aux | ||
ipfs.log | ||
ipfs.pgf-plot.gnuplot | ||
ipfs.pgf-plot.table |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
|
||
SHORT=ipfs-cap2pfs | ||
LONG=ipfs-p2p-file-system | ||
|
||
all: $(LONG).pdf | ||
|
||
$(LONG).pdf: $(SHORT).tex sig-alternate.cls $(SHORT).bib | ||
pdflatex $(SHORT).tex | ||
bibtex $(SHORT) | ||
pdflatex $(SHORT).tex | ||
pdflatex $(SHORT).tex | ||
mv $(SHORT).pdf $(LONG).pdf | ||
|
||
clean: | ||
rm *.bbl *.aux *.dvi *.blg *.log *.gnuplot *.table | ||
|
||
watch: | ||
-make | ||
@echo "[watching *.tex for recompilation]" | ||
# for portability, use watchmedo -- pip install watchmedo | ||
@watchmedo shell-command --patterns="*.tex;" --recursive \ | ||
--command='make' . | ||
|
||
publish: $(LONG).pdf | ||
scp $(LONG).pdf benet.ai:/var/static/t/$(LONG).pdf |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
\relax | ||
\citation{AFS} | ||
\citation{Oceanstore} | ||
\citation{CFS} | ||
\citation{BitTorrentUsers} | ||
\citation{wang13} | ||
\citation{Camlistore} | ||
\citation{Dat} | ||
\citation{mashtizadeh13} | ||
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{\thepage }} | ||
\@writefile{toc}{\contentsline {section}{\numberline {2}Background}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Distributed Hash Tables}{\thepage }} | ||
\citation{maymounkov02} | ||
\citation{wang13} | ||
\citation{freedman04} | ||
\citation{freedman04} | ||
\citation{baumgart07} | ||
\citation{cohen03} | ||
\citation{levin08} | ||
\citation{mazieres98} | ||
\citation{mazieres00} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Kademlia DHT}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Coral DSHT}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.3}S/Kademlia DHT}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Block Exchanges - BitTorrent}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Version Control Systems - Git}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Self-Certified Filesystems - SFS}{\thepage }} | ||
\citation{baumgart07} | ||
\citation{WebRTC} | ||
\citation{LEDBAT} | ||
\citation{LEDBAT} | ||
\citation{SCTP} | ||
\citation{ICE} | ||
\@writefile{toc}{\contentsline {section}{\numberline {3}IPFS Design}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Identities}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Note on Cryptographic Functions}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Network}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Note on Peer Addressing}{\thepage }} | ||
\citation{freedman04} | ||
\citation{wang13} | ||
\citation{levin08} | ||
\citation{levin08} | ||
\citation{levin08} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Routing}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Block Exchange - BitSwap Protocol}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}BitSwap Credit}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}BitSwap Strategy}{\thepage }} | ||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Probability of Sending as $r$ increases}}{\thepage }} | ||
\newlabel{fig:psending-graph}{{1}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}BitSwap Ledger}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.4}BitSwap Specification}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Peer.open(NodeId, Ledger)}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Peer.send\_want\_list(WantList)}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Peer.send\_block(Block)}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Peer.close(Bool)}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Notes}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Object Merkle DAG}{\thepage }} | ||
\citation{dean11} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.1}Paths}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.2}Local Objects}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.3}Object Pinning}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.4}Publishing Objects}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.5}Object-level Cryptography}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Files}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.1}File Object: \texttt {blob}}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.2}File Object: \texttt {list}}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.3}File Object: \texttt {tree}}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.4}File Object: \texttt {commit}}{\thepage }} | ||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Sample Object Graph}}{\thepage }} | ||
\newlabel{fig:sample-object-graph}{{2}{\thepage }} | ||
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Sample Objects}}{\thepage }} | ||
\newlabel{fig:sample-objects}{{3}{\thepage }} | ||
\citation{RabinFingerprints} | ||
\citation{LBFS} | ||
\citation{rsync} | ||
\citation{Plan9} | ||
\citation{Fossil} | ||
\citation{Venti} | ||
\citation{LBFS} | ||
\citation{mazieres98} | ||
\citation{mazieres00} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.5}Version control}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.6}Filesystem Paths}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.7}Splitting Files into Lists and Blob}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.8}Path Lookup Performance}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}IPNS: Naming and Mutable State}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.1}Self-Certified Names}{\thepage }} | ||
\citation{Proquint} | ||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.2}Human Friendly Names}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Peer Links}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{DNS TXT IPNS Records}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Proquint Pronounceable Identifiers}{\thepage }} | ||
\@writefile{toc}{\contentsline {paragraph}{Name Shortening Services}{\thepage }} | ||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Using IPFS}{\thepage }} | ||
\citation{FUSE} | ||
\bibstyle{abbrv} | ||
\bibdata{ipfs-cap2pfs} | ||
\bibcite{baumgart07}{1} | ||
\bibcite{BitTorrentUsers}{2} | ||
\bibcite{cohen03}{3} | ||
\bibcite{dean11}{4} | ||
\bibcite{freedman04}{5} | ||
\bibcite{AFS}{6} | ||
\bibcite{Oceanstore}{7} | ||
\bibcite{levin08}{8} | ||
\bibcite{mashtizadeh13}{9} | ||
\bibcite{maymounkov02}{10} | ||
\bibcite{mazieres00}{11} | ||
\bibcite{mazieres98}{12} | ||
\bibcite{ICE}{13} | ||
\bibcite{LEDBAT}{14} | ||
\bibcite{SCTP}{15} | ||
\bibcite{wang13}{16} | ||
\@writefile{toc}{\contentsline {section}{\numberline {4}The Future}{\thepage }} | ||
\@writefile{toc}{\contentsline {section}{\numberline {5}Acknowledgments}{\thepage }} | ||
\@writefile{toc}{\contentsline {section}{\numberline {6}References TODO}{\thepage }} | ||
\@writefile{toc}{\contentsline {section}{\numberline {7}References}{\thepage }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
\begin{thebibliography}{10} | ||
|
||
\bibitem{baumgart07} | ||
I.~Baumgart and S.~Mies. | ||
\newblock S/kademlia: A practicable approach towards secure key-based routing. | ||
\newblock In {\em Parallel and Distributed Systems, 2007 International | ||
Conference on}, volume~2, pages 1--8. IEEE, 2007. | ||
|
||
\bibitem{BitTorrentUsers} | ||
I.~BitTorrent. | ||
\newblock Bittorrent and µtorrent software surpass 150 million user milestone, | ||
Jan. 2012. | ||
|
||
\bibitem{cohen03} | ||
B.~Cohen. | ||
\newblock Incentives build robustness in bittorrent. | ||
\newblock In {\em Workshop on Economics of Peer-to-Peer systems}, volume~6, | ||
pages 68--72, 2003. | ||
|
||
\bibitem{dean11} | ||
J.~Dean and S.~Ghemawat. | ||
\newblock leveldb--a fast and lightweight key/value database library by google, | ||
2011. | ||
|
||
\bibitem{freedman04} | ||
M.~J. Freedman, E.~Freudenthal, and D.~Mazieres. | ||
\newblock Democratizing content publication with coral. | ||
\newblock In {\em NSDI}, volume~4, pages 18--18, 2004. | ||
|
||
\bibitem{AFS} | ||
J.~H. Howard, M.~L. Kazar, S.~G. Menees, D.~A. Nichols, M.~Satyanarayanan, | ||
R.~N. Sidebotham, and M.~J. West. | ||
\newblock Scale and performance in a distributed file system. | ||
\newblock {\em ACM Transactions on Computer Systems (TOCS)}, 6(1):51--81, 1988. | ||
|
||
\bibitem{Oceanstore} | ||
J.~Kubiatowicz, D.~Bindel, Y.~Chen, S.~Czerwinski, P.~Eaton, D.~Geels, | ||
R.~Gummadi, S.~Rhea, H.~Weatherspoon, W.~Weimer, et~al. | ||
\newblock Oceanstore: An architecture for global-scale persistent storage. | ||
\newblock {\em ACM Sigplan Notices}, 35(11):190--201, 2000. | ||
|
||
\bibitem{levin08} | ||
D.~Levin, K.~LaCurts, N.~Spring, and B.~Bhattacharjee. | ||
\newblock Bittorrent is an auction: analyzing and improving bittorrent's | ||
incentives. | ||
\newblock In {\em ACM SIGCOMM Computer Communication Review}, volume~38, pages | ||
243--254. ACM, 2008. | ||
|
||
\bibitem{mashtizadeh13} | ||
A.~J. Mashtizadeh, A.~Bittau, Y.~F. Huang, and D.~Mazieres. | ||
\newblock Replication, history, and grafting in the ori file system. | ||
\newblock In {\em Proceedings of the Twenty-Fourth ACM Symposium on Operating | ||
Systems Principles}, pages 151--166. ACM, 2013. | ||
|
||
\bibitem{maymounkov02} | ||
P.~Maymounkov and D.~Mazieres. | ||
\newblock Kademlia: A peer-to-peer information system based on the xor metric. | ||
\newblock In {\em Peer-to-Peer Systems}, pages 53--65. Springer, 2002. | ||
|
||
\bibitem{mazieres00} | ||
D.~Mazieres and F.~Kaashoek. | ||
\newblock Self-certifying file system. | ||
\newblock 2000. | ||
|
||
\bibitem{mazieres98} | ||
D.~Mazieres and M.~F. Kaashoek. | ||
\newblock Escaping the evils of centralized control with self-certifying | ||
pathnames. | ||
\newblock In {\em Proceedings of the 8th ACM SIGOPS European workshop on | ||
Support for composing distributed applications}, pages 118--125. ACM, 1998. | ||
|
||
\bibitem{ICE} | ||
J.~Rosenberg and A.~Keranen. | ||
\newblock Interactive connectivity establishment (ice): A protocol for network | ||
address translator (nat) traversal for offer/answer protocols. | ||
\newblock 2013. | ||
|
||
\bibitem{LEDBAT} | ||
S.~Shalunov, G.~Hazel, J.~Iyengar, and M.~Kuehlewind. | ||
\newblock Low extra delay background transport (ledbat). | ||
\newblock {\em draft-ietf-ledbat-congestion-04. txt}, 2010. | ||
|
||
\bibitem{SCTP} | ||
R.~R. Stewart and Q.~Xie. | ||
\newblock {\em Stream control transmission protocol (SCTP): a reference guide}. | ||
\newblock Addison-Wesley Longman Publishing Co., Inc., 2001. | ||
|
||
\bibitem{wang13} | ||
L.~Wang and J.~Kangasharju. | ||
\newblock Measuring large-scale distributed systems: case of bittorrent | ||
mainline dht. | ||
\newblock In {\em Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth | ||
International Conference on}, pages 1--10. IEEE, 2013. | ||
|
||
\end{thebibliography} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
@article{AFS, | ||
title={Scale and performance in a distributed file system}, | ||
author={Howard, John H and Kazar, Michael L and Menees, Sherri G and Nichols, David A and Satyanarayanan, Mahadev and Sidebotham, Robert N and West, Michael J}, | ||
journal={ACM Transactions on Computer Systems (TOCS)}, | ||
volume={6}, | ||
number={1}, | ||
pages={51--81}, | ||
year={1988}, | ||
publisher={ACM} | ||
} | ||
|
||
@article{Oceanstore, | ||
title={Oceanstore: An architecture for global-scale persistent storage}, | ||
author={Kubiatowicz, John and Bindel, David and Chen, Yan and Czerwinski, Steven and Eaton, Patrick and Geels, Dennis and Gummadi, Ramakrishan and Rhea, Sean and Weatherspoon, Hakim and Weimer, Westley and others}, | ||
journal={ACM Sigplan Notices}, | ||
volume={35}, | ||
number={11}, | ||
pages={190--201}, | ||
year={2000}, | ||
publisher={ACM} | ||
} | ||
|
||
@online{BitTorrentUsers, | ||
author={BitTorrent, Inc.}, | ||
title={BitTorrent and µTorrent Software Surpass 150 Million User Milestone}, | ||
month=jan, | ||
year=2012, | ||
url={http://www.bittorrent.com/intl/es/company/about/ces_2012_150m_users}, | ||
} | ||
|
||
@inproceedings{mashtizadeh13, | ||
title={Replication, history, and grafting in the Ori file system}, | ||
author={Mashtizadeh, Ali Jos{\'e} and Bittau, Andrea and Huang, Yifeng Frank and Mazieres, David}, | ||
booktitle={Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles}, | ||
pages={151--166}, | ||
year={2013}, | ||
organization={ACM} | ||
} | ||
|
||
@incollection{maymounkov02, | ||
title={Kademlia: A peer-to-peer information system based on the xor metric}, | ||
author={Maymounkov, Petar and Mazieres, David}, | ||
booktitle={Peer-to-Peer Systems}, | ||
pages={53--65}, | ||
year={2002}, | ||
publisher={Springer} | ||
} | ||
|
||
@inproceedings{wang13, | ||
title={Measuring large-scale distributed systems: case of BitTorrent Mainline DHT}, | ||
author={Wang, Liang and Kangasharju, Jussi}, | ||
booktitle={Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference on}, | ||
pages={1--10}, | ||
year={2013}, | ||
organization={IEEE} | ||
} | ||
|
||
@inproceedings{freedman04, | ||
title={Democratizing Content Publication with Coral.}, | ||
author={Freedman, Michael J and Freudenthal, Eric and Mazieres, David}, | ||
booktitle={NSDI}, | ||
volume={4}, | ||
pages={18--18}, | ||
year={2004} | ||
} | ||
|
||
@misc{dean11, | ||
title={leveldb--A fast and lightweight key/value database library by Google}, | ||
author={Dean, Jeffrey and Ghemawat, Sanjay}, | ||
year={2011} | ||
} | ||
|
||
@inproceedings{baumgart07, | ||
title={S/kademlia: A practicable approach towards secure key-based routing}, | ||
author={Baumgart, Ingmar and Mies, Sebastian}, | ||
booktitle={Parallel and Distributed Systems, 2007 International Conference on}, | ||
volume={2}, | ||
pages={1--8}, | ||
year={2007}, | ||
organization={IEEE} | ||
} | ||
|
||
@inproceedings{cohen03, | ||
title={Incentives build robustness in BitTorrent}, | ||
author={Cohen, Bram}, | ||
booktitle={Workshop on Economics of Peer-to-Peer systems}, | ||
volume={6}, | ||
pages={68--72}, | ||
year={2003} | ||
} | ||
|
||
@inproceedings{levin08, | ||
title={Bittorrent is an auction: analyzing and improving bittorrent's incentives}, | ||
author={Levin, Dave and LaCurts, Katrina and Spring, Neil and Bhattacharjee, Bobby}, | ||
booktitle={ACM SIGCOMM Computer Communication Review}, | ||
volume={38}, | ||
number={4}, | ||
pages={243--254}, | ||
year={2008}, | ||
organization={ACM} | ||
} | ||
|
||
@article{mazieres00, | ||
title={Self-certifying file system}, | ||
author={Mazieres, David and Kaashoek, Frans}, | ||
year={2000}, | ||
publisher={Citeseer} | ||
} | ||
|
||
@inproceedings{mazieres98, | ||
title={Escaping the evils of centralized control with self-certifying pathnames}, | ||
author={Mazieres, David and Kaashoek, M Frans}, | ||
booktitle={Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications}, | ||
pages={118--125}, | ||
year={1998}, | ||
organization={ACM} | ||
} | ||
|
||
@article{UTP, | ||
title={LEDBAT+ BitTorrent}, | ||
author={Rossi, Dario} | ||
} | ||
|
||
@article{LEDBAT, | ||
title={Low extra delay background transport (LEDBAT)}, | ||
author={Shalunov, Stanislav and Hazel, Greg and Iyengar, Janardhan and Kuehlewind, Mirja}, | ||
journal={draft-ietf-ledbat-congestion-04. txt}, | ||
year={2010} | ||
} | ||
|
||
@book{SCTP, | ||
title={Stream control transmission protocol (SCTP): a reference guide}, | ||
author={Stewart, Randall R and Xie, Qiaobing}, | ||
year={2001}, | ||
publisher={Addison-Wesley Longman Publishing Co., Inc.} | ||
} | ||
|
||
@article{ICE, | ||
title={Interactive connectivity establishment (ice): A protocol for network address translator (nat) traversal for offer/answer protocols}, | ||
author={Rosenberg, Jonathan and Keranen, Ari}, | ||
year={2013} | ||
} | ||
|
Oops, something went wrong.