-
Notifications
You must be signed in to change notification settings - Fork 0
/
acknowledgements.tex
97 lines (88 loc) · 5.71 KB
/
acknowledgements.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
% TODO intro
The work presented in this thesis is drawn from two major collaborations.
One was with Princeton, the University of Arizona, and the University of North Carolina,
and the other was with Blockstack Public Benefit Corporation (PBC).
The first body of work was conducted in the PlanetLab research
group, later as part of OpenCloud, and finally as part of a NSF grant shared by
Princeton, UA, and UNC. The project that began in Fall 2010 as
protocol to turn a commodity content distribution network (CDN) into a write-coherent
network cache ultimately evolved into Syndicate, the first wide-area
software-defined storage system. I am indebted to my adviser Larry L. Peterson
for taking me under his wing and guiding me on the path that led to this
thesis, and I am grateful to have been mentored by
PlanetLab researchers Sapan Bhatia, Andy Bavier, Mike Wawrzoniak, Marc
Fiuczynski, Tony Mack, and Scott Baker---all of whom played a part in
helping me navigate graduate school in my earlier years at Princeton.
It takes a lot of engineering work and attention to
detail to make a project of Syndicate's scope operational.
During my time with PlanetLab and OpenCloud, I worked with many talented people
at Princeton and the University of Arizona who helped
see this task through to completion. In particular, I am grateful to Illyoung Choi for helping me get
Syndicate to work in production settings. He made Syndicate compatible with Hadoop,
he wrote drivers for public datasets and iRODS, he filmed video tutorials
for using Syndicate, and he created Docker images and dataset mounting tools
that make Syndicate easy to use. He was also instrumental in discovering,
reproducing, and gathering logs for countless bugs.
In addition, I am grateful to Zack Williams
for creating and running Syndicate's continuous integration and packaging
infrastructure, and I am grateful to Jack L. Pogue III for writing
and maintaining the Syndicate test suite and creating manual pages for all of
the Syndicate programs. Their efforts significantly improved the developer
experience for hacking on and using Syndicate.
I would also like to thank Muneeb Ali, Wathsala Vithanage,
and John Whelchel for working on Syndicate with me in the summer of 2013,
and I would like to thank Nirav Merchant and Bonnie Hurst
for giving us the chance to use Syndicate on real-world scientific workflows.
Wathsala Vithanage also deserves credit for helping create an end-to-end
encrypted email application on top of Syndicate.
The other body of work in this thesis was conducted with Blockstack,
a public benefit corporation started by Muneeb Ali `17 and Ryan Shea
`12. At Blockstack, I developed the first version of Gaia---a wide-area
software-defined storage system for Web applications. A key discovery that
made Gaia possible was the invention of a technique called \emph{virtualchains},
which allow Syndicate and Gaia to leverage an existing cryptocurrency blockchain to
implement public-key infrastructure. I have Muneeb and Ryan to thank for
helping me overcome my (deep) skepticism of
the usefulness of blockchains, and for allowing me to work on Gaia as a
collaborative work with Princeton. In addition, I would like to thank Michael
J. Freedman for advising the three of us on the design and implementation of
this system.
A version of Gaia today sees widespread use in Blockstack's application ecosystem as the
\emph{de facto} storage system. I am especially thankful to have worked with
Blockstack engineers Aaron Blankstein, Larry Salibra, Ken
Liao, Jack Zampolin, Chase Wackerfuss, Thomas Osmonson, and Sebastian Dunkel for
all the insights and inputs they had in making Gaia into an operational system,
and all the effort they put into making this happen. I'm also grateful
to all of the Blockstack developers
and community members who built and tested
real-world applications with Gaia and helped us
find bugs and improve the system.
The scope of this thesis ended up being wider than I had initially expected.
I would like to thank my thesis committee members Jennifer Rexford,
John H. Hartman, Brian W. Kernighan, and Kai Li for their invaluable feedback on
helping me shape my experiences on Syndicate and Gaia into a coherent thesis.
I would also like to thank my partner Meghan who helped me stay
motivated to keep working on this thesis when I was
struggling. Finally, I would like to thank my parents Mark and Monica for
instilling within me a lifelong passion for learning and a sense of
self-motivation to see it through.
Parts of this thesis were published earlier in the following papers:
\begin{itemize}
\item Jude C. Nelson and Larry L. Peterson. \emph{``Syndicate: Virtual Cloud
Storage through Provider Composition.''} In Proceedings of the 2014 ACM
International Workshop on Software-defined Ecosystems (BigSystem '14).
ACM, New York, NY, USA, 1-8.
\item Muneeb Ali, Jude Nelson, Ryan Shea, and Michael J. Freedman.
\emph{``Blockstack: A Global Naming and Storage System Secured by
Blockchains,''} 2016 USENIX Annual Technical Conference, Denver, CO, June 2016.
\item Jude Nelson, Muneeb Ali, Ryan Shea, and Michael J. Freedman.
\emph{``Extending Existing Blockchains with Virtualchain,''} Workshop on
Distributed Cryptocurrencies and Consensus Ledgers, Chicago, IL, July 2016.
\item Muneeb Ali, Jude Nelson, Ryan Shea, and Michael J. Freedman.
\emph{``Bootstrapping Trust in Distributed Systems with Blockchains,''}, USENIX
;login: Issue: Vol 41, No. 3, Pages 52-58, Fall 2016.
\end{itemize}
I was supported by a Princeton Graduate Fellowship in my first year at
Princeton. I was hired by Princeton University for the academic year 2014-2015
to work as a research technician on making Syndicate an operational service for
the OpenCloud project. The work on Syndicate was supported by NSF Award 1541318.