WEBVTT
Kind: captions
Language: en

00:00:15.800 --> 00:00:21.140 align:start position:0%
 
so<00:00:16.800><c> uh</c><00:00:17.119><c> I'm</c><00:00:18.119><c> Ryan</c><00:00:18.510><c> and</c><00:00:19.490><c> I</c><00:00:20.490><c> understand</c><00:00:21.029><c> this</c><00:00:21.090><c> is</c>

00:00:21.140 --> 00:00:21.150 align:start position:0%
so uh I'm Ryan and I understand this is
 

00:00:21.150 --> 00:00:23.929 align:start position:0%
so uh I'm Ryan and I understand this is
being<00:00:21.480><c> live-streamed</c><00:00:22.199><c> so</c><00:00:23.100><c> if</c><00:00:23.400><c> any</c><00:00:23.789><c> of</c><00:00:23.850><c> you</c>

00:00:23.929 --> 00:00:23.939 align:start position:0%
being live-streamed so if any of you
 

00:00:23.939 --> 00:00:25.519 align:start position:0%
being live-streamed so if any of you
watching<00:00:24.300><c> at</c><00:00:24.359><c> home</c><00:00:24.420><c> have</c><00:00:24.869><c> any</c><00:00:25.050><c> questions</c><00:00:25.439><c> or</c>

00:00:25.519 --> 00:00:25.529 align:start position:0%
watching at home have any questions or
 

00:00:25.529 --> 00:00:28.160 align:start position:0%
watching at home have any questions or
comments<00:00:25.980><c> feel</c><00:00:26.640><c> free</c><00:00:26.699><c> to</c><00:00:26.970><c> tweet</c><00:00:27.090><c> at</c><00:00:27.359><c> right</c><00:00:27.750><c> pdx</c>

00:00:28.160 --> 00:00:28.170 align:start position:0%
comments feel free to tweet at right pdx
 

00:00:28.170 --> 00:00:32.830 align:start position:0%
comments feel free to tweet at right pdx
and<00:00:28.550><c> i</c><00:00:29.550><c> will</c><00:00:29.699><c> get</c><00:00:29.939><c> to</c><00:00:30.060><c> those</c><00:00:30.179><c> as</c><00:00:30.330><c> soon</c><00:00:30.480><c> as</c><00:00:30.570><c> i</c><00:00:30.660><c> can</c>

00:00:32.830 --> 00:00:32.840 align:start position:0%
 
 

00:00:32.840 --> 00:00:35.900 align:start position:0%
 
so<00:00:33.840><c> we've</c><00:00:34.770><c> decided</c><00:00:34.920><c> to</c><00:00:35.190><c> be</c><00:00:35.340><c> the</c><00:00:35.370><c> ethereal</c>

00:00:35.900 --> 00:00:35.910 align:start position:0%
so we've decided to be the ethereal
 

00:00:35.910 --> 00:00:37.790 align:start position:0%
so we've decided to be the ethereal
namespace<00:00:36.300><c> maybe</c><00:00:36.930><c> someday</c><00:00:37.200><c> we'll</c><00:00:37.500><c> be</c><00:00:37.559><c> the</c>

00:00:37.790 --> 00:00:37.800 align:start position:0%
namespace maybe someday we'll be the
 

00:00:37.800 --> 00:00:41.290 align:start position:0%
namespace maybe someday we'll be the
etherium<00:00:38.390><c> namespace</c><00:00:39.390><c> that</c><00:00:40.170><c> would</c><00:00:40.260><c> be</c><00:00:40.350><c> great</c>

00:00:41.290 --> 00:00:41.300 align:start position:0%
etherium namespace that would be great
 

00:00:41.300 --> 00:00:46.069 align:start position:0%
etherium namespace that would be great
i'm<00:00:42.300><c> a</c><00:00:42.570><c> dev</c><00:00:42.960><c> with</c><00:00:43.170><c> nexus</c><00:00:43.649><c> and</c><00:00:44.239><c> in</c><00:00:45.239><c> the</c><00:00:45.930><c> process</c>

00:00:46.069 --> 00:00:46.079 align:start position:0%
i'm a dev with nexus and in the process
 

00:00:46.079 --> 00:00:51.160 align:start position:0%
i'm a dev with nexus and in the process
of<00:00:46.530><c> working</c><00:00:47.309><c> on</c><00:00:47.579><c> the</c><00:00:48.120><c> maker</c><00:00:49.340><c> stable</c><00:00:50.340><c> coin</c><00:00:50.520><c> and</c>

00:00:51.160 --> 00:00:51.170 align:start position:0%
of working on the maker stable coin and
 

00:00:51.170 --> 00:00:54.200 align:start position:0%
of working on the maker stable coin and
crypto<00:00:52.170><c> currency</c><00:00:52.710><c> leverage</c><00:00:52.980><c> platform</c><00:00:53.399><c> we</c>

00:00:54.200 --> 00:00:54.210 align:start position:0%
crypto currency leverage platform we
 

00:00:54.210 --> 00:00:56.569 align:start position:0%
crypto currency leverage platform we
decided<00:00:54.600><c> that</c><00:00:54.629><c> we</c><00:00:54.809><c> needed</c><00:00:54.960><c> to</c><00:00:55.079><c> make</c><00:00:55.410><c> a</c><00:00:55.649><c> smart</c>

00:00:56.569 --> 00:00:56.579 align:start position:0%
decided that we needed to make a smart
 

00:00:56.579 --> 00:00:58.760 align:start position:0%
decided that we needed to make a smart
contract<00:00:56.969><c> package</c><00:00:57.239><c> manager</c><00:00:57.629><c> we</c><00:00:58.109><c> made</c><00:00:58.469><c> that</c><00:00:58.620><c> we</c>

00:00:58.760 --> 00:00:58.770 align:start position:0%
contract package manager we made that we
 

00:00:58.770 --> 00:01:02.270 align:start position:0%
contract package manager we made that we
called<00:00:58.949><c> a</c><00:00:59.010><c> dapple</c><00:00:59.399><c> one</c><00:01:00.300><c> of</c><00:01:00.420><c> the</c><00:01:00.510><c> design</c><00:01:01.280><c> goals</c>

00:01:02.270 --> 00:01:02.280 align:start position:0%
called a dapple one of the design goals
 

00:01:02.280 --> 00:01:05.539 align:start position:0%
called a dapple one of the design goals
of<00:01:02.609><c> dapple</c><00:01:03.359><c> was</c><00:01:03.510><c> to</c><00:01:03.840><c> provide</c><00:01:04.470><c> a</c><00:01:04.769><c> node</c><00:01:05.400><c> package</c>

00:01:05.539 --> 00:01:05.549 align:start position:0%
of dapple was to provide a node package
 

00:01:05.549 --> 00:01:09.700 align:start position:0%
of dapple was to provide a node package
manager<00:01:05.760><c> like</c><00:01:06.299><c> experience</c><00:01:07.520><c> so</c><00:01:08.520><c> people</c><00:01:08.880><c> could</c>

00:01:09.700 --> 00:01:09.710 align:start position:0%
manager like experience so people could
 

00:01:09.710 --> 00:01:14.240 align:start position:0%
manager like experience so people could
install<00:01:10.710><c> and</c><00:01:10.979><c> publish</c><00:01:11.720><c> packages</c><00:01:12.979><c> by</c><00:01:13.979><c> their</c>

00:01:14.240 --> 00:01:14.250 align:start position:0%
install and publish packages by their
 

00:01:14.250 --> 00:01:21.530 align:start position:0%
install and publish packages by their
names<00:01:14.850><c> under</c><00:01:15.360><c> username</c><00:01:16.220><c> namespaces</c><00:01:19.580><c> so</c><00:01:20.580><c> to</c>

00:01:21.530 --> 00:01:21.540 align:start position:0%
names under username namespaces so to
 

00:01:21.540 --> 00:01:23.510 align:start position:0%
names under username namespaces so to
accomplish<00:01:22.470><c> that</c><00:01:22.590><c> goal</c><00:01:22.650><c> we</c><00:01:22.920><c> came</c><00:01:23.100><c> up</c><00:01:23.130><c> with</c><00:01:23.430><c> the</c>

00:01:23.510 --> 00:01:23.520 align:start position:0%
accomplish that goal we came up with the
 

00:01:23.520 --> 00:01:25.429 align:start position:0%
accomplish that goal we came up with the
system<00:01:23.759><c> of</c><00:01:23.909><c> smart</c><00:01:24.240><c> contracts</c><00:01:24.659><c> that</c><00:01:25.200><c> we</c><00:01:25.290><c> call</c>

00:01:25.429 --> 00:01:25.439 align:start position:0%
system of smart contracts that we call
 

00:01:25.439 --> 00:01:27.560 align:start position:0%
system of smart contracts that we call
the<00:01:25.560><c> ethereal</c><00:01:25.950><c> namespace</c><00:01:26.340><c> essentially</c><00:01:27.299><c> it's</c>

00:01:27.560 --> 00:01:27.570 align:start position:0%
the ethereal namespace essentially it's
 

00:01:27.570 --> 00:01:30.490 align:start position:0%
the ethereal namespace essentially it's
a<00:01:27.900><c> hierarchical</c><00:01:28.619><c> permission</c><00:01:29.100><c> abal</c><00:01:29.340><c> name</c><00:01:30.150><c> reg</c>

00:01:30.490 --> 00:01:30.500 align:start position:0%
a hierarchical permission abal name reg
 

00:01:30.500 --> 00:01:36.350 align:start position:0%
a hierarchical permission abal name reg
so<00:01:31.850><c> this</c><00:01:32.850><c> is</c><00:01:33.150><c> the</c><00:01:33.810><c> name</c><00:01:34.140><c> reg</c><00:01:34.460><c> interface</c><00:01:35.460><c> as</c><00:01:35.909><c> it</c>

00:01:36.350 --> 00:01:36.360 align:start position:0%
so this is the name reg interface as it
 

00:01:36.360 --> 00:01:38.539 align:start position:0%
so this is the name reg interface as it
stands<00:01:36.600><c> and</c><00:01:36.930><c> it</c><00:01:37.860><c> allows</c><00:01:38.070><c> you</c><00:01:38.250><c> to</c><00:01:38.369><c> map</c>

00:01:38.539 --> 00:01:38.549 align:start position:0%
stands and it allows you to map
 

00:01:38.549 --> 00:01:41.120 align:start position:0%
stands and it allows you to map
addresses<00:01:39.240><c> to</c><00:01:39.689><c> names</c><00:01:39.900><c> and</c><00:01:40.350><c> names</c><00:01:40.650><c> addresses</c>

00:01:41.120 --> 00:01:41.130 align:start position:0%
addresses to names and names addresses
 

00:01:41.130 --> 00:01:44.270 align:start position:0%
addresses to names and names addresses
and<00:01:41.509><c> it's</c><00:01:42.509><c> great</c><00:01:42.689><c> for</c><00:01:43.350><c> a</c><00:01:43.409><c> lot</c><00:01:43.439><c> of</c><00:01:43.560><c> purposes</c><00:01:44.009><c> I</c>

00:01:44.270 --> 00:01:44.280 align:start position:0%
and it's great for a lot of purposes I
 

00:01:44.280 --> 00:01:47.719 align:start position:0%
and it's great for a lot of purposes I
use<00:01:44.460><c> it</c><00:01:44.579><c> myself</c><00:01:44.610><c> and</c><00:01:46.369><c> usually</c><00:01:47.369><c> I</c><00:01:47.399><c> end</c><00:01:47.460><c> up</c><00:01:47.579><c> with</c>

00:01:47.719 --> 00:01:47.729 align:start position:0%
use it myself and usually I end up with
 

00:01:47.729 --> 00:01:49.550 align:start position:0%
use it myself and usually I end up with
something<00:01:47.880><c> like</c><00:01:47.970><c> this</c><00:01:48.290><c> where</c><00:01:49.290><c> I'm</c><00:01:49.350><c> just</c>

00:01:49.550 --> 00:01:49.560 align:start position:0%
something like this where I'm just
 

00:01:49.560 --> 00:01:54.859 align:start position:0%
something like this where I'm just
mapping<00:01:50.159><c> strings</c><00:01:51.149><c> to</c><00:01:51.479><c> addresses</c><00:01:53.119><c> but</c><00:01:54.119><c> if</c><00:01:54.390><c> you</c>

00:01:54.859 --> 00:01:54.869 align:start position:0%
mapping strings to addresses but if you
 

00:01:54.869 --> 00:01:56.859 align:start position:0%
mapping strings to addresses but if you
have<00:01:54.990><c> data</c><00:01:55.200><c> that</c><00:01:55.530><c> looks</c><00:01:55.799><c> kind</c><00:01:56.310><c> of</c><00:01:56.369><c> like</c><00:01:56.430><c> this</c>

00:01:56.859 --> 00:01:56.869 align:start position:0%
have data that looks kind of like this
 

00:01:56.869 --> 00:01:59.450 align:start position:0%
have data that looks kind of like this
that's<00:01:57.869><c> somewhat</c><00:01:58.170><c> hierarchical</c><00:01:58.979><c> it's</c><00:01:59.340><c> not</c>

00:01:59.450 --> 00:01:59.460 align:start position:0%
that's somewhat hierarchical it's not
 

00:01:59.460 --> 00:02:02.950 align:start position:0%
that's somewhat hierarchical it's not
such<00:01:59.640><c> a</c><00:01:59.670><c> great</c><00:01:59.850><c> fit</c><00:02:00.750><c> now</c><00:02:01.229><c> you</c><00:02:01.710><c> can</c><00:02:01.950><c> naively</c>

00:02:02.950 --> 00:02:02.960 align:start position:0%
such a great fit now you can naively
 

00:02:02.960 --> 00:02:05.510 align:start position:0%
such a great fit now you can naively
store<00:02:03.960><c> data</c><00:02:04.469><c> like</c><00:02:04.680><c> this</c><00:02:04.710><c> in</c><00:02:05.100><c> the</c><00:02:05.189><c> name</c><00:02:05.310><c> reg</c>

00:02:05.510 --> 00:02:05.520 align:start position:0%
store data like this in the name reg
 

00:02:05.520 --> 00:02:08.419 align:start position:0%
store data like this in the name reg
contract<00:02:06.119><c> you</c><00:02:06.240><c> can</c><00:02:06.270><c> do</c><00:02:06.540><c> this</c><00:02:07.200><c> and</c><00:02:07.560><c> just</c><00:02:07.590><c> have</c>

00:02:08.419 --> 00:02:08.429 align:start position:0%
contract you can do this and just have
 

00:02:08.429 --> 00:02:11.500 align:start position:0%
contract you can do this and just have
path<00:02:09.090><c> strings</c><00:02:09.509><c> mapped</c><00:02:10.140><c> addresses</c>

00:02:11.500 --> 00:02:11.510 align:start position:0%
path strings mapped addresses
 

00:02:11.510 --> 00:02:13.929 align:start position:0%
path strings mapped addresses
but<00:02:12.439><c> there</c><00:02:12.769><c> there's</c><00:02:13.250><c> a</c><00:02:13.340><c> drawback</c><00:02:13.610><c> to</c><00:02:13.670><c> that</c>

00:02:13.929 --> 00:02:13.939 align:start position:0%
but there there's a drawback to that
 

00:02:13.939 --> 00:02:15.850 align:start position:0%
but there there's a drawback to that
which<00:02:14.209><c> is</c><00:02:14.390><c> first</c><00:02:15.379><c> of</c><00:02:15.530><c> all</c><00:02:15.590><c> there's</c><00:02:15.799><c> a</c>

00:02:15.850 --> 00:02:15.860 align:start position:0%
which is first of all there's a
 

00:02:15.860 --> 00:02:17.949 align:start position:0%
which is first of all there's a
conceptual<00:02:16.489><c> gap</c><00:02:16.700><c> between</c><00:02:16.970><c> users</c><00:02:17.510><c> mental</c>

00:02:17.949 --> 00:02:17.959 align:start position:0%
conceptual gap between users mental
 

00:02:17.959 --> 00:02:19.000 align:start position:0%
conceptual gap between users mental
model<00:02:18.230><c> of</c><00:02:18.290><c> how</c><00:02:18.379><c> things</c><00:02:18.650><c> should</c><00:02:18.799><c> be</c><00:02:18.860><c> working</c>

00:02:19.000 --> 00:02:19.010 align:start position:0%
model of how things should be working
 

00:02:19.010 --> 00:02:21.220 align:start position:0%
model of how things should be working
and<00:02:19.370><c> how</c><00:02:20.239><c> it's</c><00:02:20.360><c> actually</c><00:02:20.450><c> implement</c><00:02:20.989><c> it</c><00:02:21.110><c> and</c>

00:02:21.220 --> 00:02:21.230 align:start position:0%
and how it's actually implement it and
 

00:02:21.230 --> 00:02:22.929 align:start position:0%
and how it's actually implement it and
usually<00:02:21.500><c> with</c><00:02:21.650><c> good</c><00:02:21.799><c> design</c><00:02:22.069><c> you</c><00:02:22.489><c> want</c><00:02:22.640><c> to</c>

00:02:22.929 --> 00:02:22.939 align:start position:0%
usually with good design you want to
 

00:02:22.939 --> 00:02:25.960 align:start position:0%
usually with good design you want to
minimize<00:02:23.360><c> the</c><00:02:23.599><c> gap</c><00:02:23.780><c> between</c><00:02:24.730><c> what</c><00:02:25.730><c> the</c><00:02:25.819><c> user</c>

00:02:25.960 --> 00:02:25.970 align:start position:0%
minimize the gap between what the user
 

00:02:25.970 --> 00:02:27.880 align:start position:0%
minimize the gap between what the user
hal<00:02:26.360><c> user</c><00:02:26.540><c> thinks</c><00:02:26.780><c> the</c><00:02:27.079><c> thing</c><00:02:27.260><c> works</c><00:02:27.500><c> and</c><00:02:27.769><c> how</c>

00:02:27.880 --> 00:02:27.890 align:start position:0%
hal user thinks the thing works and how
 

00:02:27.890 --> 00:02:30.819 align:start position:0%
hal user thinks the thing works and how
it<00:02:27.920><c> actually</c><00:02:28.159><c> works</c><00:02:28.400><c> because</c><00:02:29.590><c> the</c><00:02:30.590><c> greater</c>

00:02:30.819 --> 00:02:30.829 align:start position:0%
it actually works because the greater
 

00:02:30.829 --> 00:02:32.680 align:start position:0%
it actually works because the greater
the<00:02:30.980><c> gap</c><00:02:31.159><c> the</c><00:02:31.819><c> greater</c><00:02:32.030><c> the</c><00:02:32.150><c> abstraction</c>

00:02:32.680 --> 00:02:32.690 align:start position:0%
the gap the greater the abstraction
 

00:02:32.690 --> 00:02:36.039 align:start position:0%
the gap the greater the abstraction
tends<00:02:32.930><c> to</c><00:02:33.079><c> leak</c><00:02:33.970><c> so</c><00:02:34.970><c> that's</c><00:02:35.390><c> one</c><00:02:35.690><c> problem</c><00:02:35.870><c> with</c>

00:02:36.039 --> 00:02:36.049 align:start position:0%
tends to leak so that's one problem with
 

00:02:36.049 --> 00:02:37.569 align:start position:0%
tends to leak so that's one problem with
it<00:02:36.200><c> another</c><00:02:36.409><c> problem</c><00:02:36.650><c> with</c><00:02:36.739><c> this</c><00:02:36.860><c> approach</c><00:02:37.129><c> is</c>

00:02:37.569 --> 00:02:37.579 align:start position:0%
it another problem with this approach is
 

00:02:37.579 --> 00:02:39.220 align:start position:0%
it another problem with this approach is
that<00:02:37.819><c> it</c><00:02:38.000><c> kind</c><00:02:38.420><c> of</c><00:02:38.450><c> becomes</c><00:02:38.690><c> messy</c><00:02:39.170><c> and</c>

00:02:39.220 --> 00:02:39.230 align:start position:0%
that it kind of becomes messy and
 

00:02:39.230 --> 00:02:41.289 align:start position:0%
that it kind of becomes messy and
difficult<00:02:39.379><c> to</c><00:02:39.769><c> try</c><00:02:40.010><c> to</c><00:02:40.519><c> set</c><00:02:40.700><c> permissions</c><00:02:40.909><c> on</c>

00:02:41.289 --> 00:02:41.299 align:start position:0%
difficult to try to set permissions on
 

00:02:41.299 --> 00:02:43.000 align:start position:0%
difficult to try to set permissions on
sub<00:02:41.480><c> paths</c><00:02:41.689><c> right</c><00:02:42.530><c> because</c><00:02:42.769><c> now</c><00:02:42.859><c> you</c><00:02:42.920><c> have</c>

00:02:43.000 --> 00:02:43.010 align:start position:0%
sub paths right because now you have
 

00:02:43.010 --> 00:02:44.680 align:start position:0%
sub paths right because now you have
this<00:02:43.220><c> this</c><00:02:43.430><c> big</c><00:02:43.640><c> name</c><00:02:43.909><c> reg</c><00:02:44.120><c> and</c><00:02:44.329><c> you</c><00:02:44.390><c> have</c><00:02:44.480><c> to</c>

00:02:44.680 --> 00:02:44.690 align:start position:0%
this this big name reg and you have to
 

00:02:44.690 --> 00:02:47.080 align:start position:0%
this this big name reg and you have to
parse<00:02:45.260><c> each</c><00:02:45.470><c> sub</c><00:02:45.709><c> path</c><00:02:45.859><c> and</c><00:02:46.099><c> do</c><00:02:46.849><c> all</c><00:02:46.970><c> this</c>

00:02:47.080 --> 00:02:47.090 align:start position:0%
parse each sub path and do all this
 

00:02:47.090 --> 00:02:50.649 align:start position:0%
parse each sub path and do all this
stuff<00:02:47.769><c> to</c><00:02:48.879><c> deal</c><00:02:49.879><c> with</c><00:02:49.909><c> permissions</c><00:02:50.420><c> on</c><00:02:50.510><c> sub</c>

00:02:50.649 --> 00:02:50.659 align:start position:0%
stuff to deal with permissions on sub
 

00:02:50.659 --> 00:02:55.089 align:start position:0%
stuff to deal with permissions on sub
paths<00:02:51.760><c> so</c><00:02:53.440><c> something</c><00:02:54.440><c> like</c><00:02:54.470><c> this</c><00:02:54.680><c> is</c><00:02:54.889><c> a</c><00:02:54.920><c> much</c>

00:02:55.089 --> 00:02:55.099 align:start position:0%
paths so something like this is a much
 

00:02:55.099 --> 00:02:57.490 align:start position:0%
paths so something like this is a much
better<00:02:55.129><c> fit</c><00:02:55.579><c> for</c><00:02:55.760><c> hierarchical</c><00:02:56.420><c> data</c><00:02:56.750><c> I</c><00:02:56.989><c> don't</c>

00:02:57.490 --> 00:02:57.500 align:start position:0%
better fit for hierarchical data I don't
 

00:02:57.500 --> 00:02:58.930 align:start position:0%
better fit for hierarchical data I don't
think<00:02:57.530><c> I</c><00:02:57.650><c> have</c><00:02:57.739><c> to</c><00:02:57.829><c> argue</c><00:02:58.220><c> that</c><00:02:58.549><c> one</c><00:02:58.639><c> too</c><00:02:58.790><c> hard</c>

00:02:58.930 --> 00:02:58.940 align:start position:0%
think I have to argue that one too hard
 

00:02:58.940 --> 00:03:01.539 align:start position:0%
think I have to argue that one too hard
to<00:02:59.090><c> this</c><00:02:59.180><c> crowd</c><00:02:59.389><c> so</c><00:03:00.159><c> this</c><00:03:01.159><c> is</c><00:03:01.310><c> what</c><00:03:01.459><c> we</c>

00:03:01.539 --> 00:03:01.549 align:start position:0%
to this crowd so this is what we
 

00:03:01.549 --> 00:03:06.550 align:start position:0%
to this crowd so this is what we
basically<00:03:02.180><c> tried</c><00:03:02.599><c> to</c><00:03:02.840><c> to</c><00:03:03.769><c> make</c><00:03:05.260><c> now</c><00:03:06.260><c> my</c>

00:03:06.550 --> 00:03:06.560 align:start position:0%
basically tried to to make now my
 

00:03:06.560 --> 00:03:07.809 align:start position:0%
basically tried to to make now my
initial<00:03:06.739><c> approach</c><00:03:07.040><c> to</c><00:03:07.280><c> it</c><00:03:07.400><c> was</c><00:03:07.519><c> to</c><00:03:07.670><c> just</c>

00:03:07.809 --> 00:03:07.819 align:start position:0%
initial approach to it was to just
 

00:03:07.819 --> 00:03:10.500 align:start position:0%
initial approach to it was to just
chained<00:03:08.299><c> together</c><00:03:08.540><c> named</c><00:03:08.959><c> reg</c><00:03:09.170><c> contracts</c><00:03:09.680><c> and</c>

00:03:10.500 --> 00:03:10.510 align:start position:0%
chained together named reg contracts and
 

00:03:10.510 --> 00:03:13.210 align:start position:0%
chained together named reg contracts and
it<00:03:11.510><c> technically</c><00:03:12.139><c> works</c><00:03:12.379><c> but</c><00:03:12.680><c> again</c><00:03:13.010><c> there</c><00:03:13.159><c> are</c>

00:03:13.210 --> 00:03:13.220 align:start position:0%
it technically works but again there are
 

00:03:13.220 --> 00:03:15.129 align:start position:0%
it technically works but again there are
a<00:03:13.250><c> couple</c><00:03:13.310><c> of</c><00:03:13.519><c> drawbacks</c><00:03:13.750><c> number</c><00:03:14.750><c> one</c><00:03:14.900><c> is</c>

00:03:15.129 --> 00:03:15.139 align:start position:0%
a couple of drawbacks number one is
 

00:03:15.139 --> 00:03:17.740 align:start position:0%
a couple of drawbacks number one is
there's<00:03:15.769><c> a</c><00:03:15.910><c> nonlocality</c><00:03:16.910><c> of</c><00:03:17.239><c> information</c>

00:03:17.740 --> 00:03:17.750 align:start position:0%
there's a nonlocality of information
 

00:03:17.750 --> 00:03:21.220 align:start position:0%
there's a nonlocality of information
here<00:03:17.889><c> if</c><00:03:18.889><c> I</c><00:03:19.609><c> am</c><00:03:20.030><c> just</c><00:03:20.480><c> interacting</c><00:03:20.870><c> this</c><00:03:21.049><c> name</c>

00:03:21.220 --> 00:03:21.230 align:start position:0%
here if I am just interacting this name
 

00:03:21.230 --> 00:03:23.349 align:start position:0%
here if I am just interacting this name
right<00:03:21.410><c> contract</c><00:03:21.859><c> here</c><00:03:22.129><c> I'm</c><00:03:22.459><c> getting</c>

00:03:23.349 --> 00:03:23.359 align:start position:0%
right contract here I'm getting
 

00:03:23.359 --> 00:03:25.809 align:start position:0%
right contract here I'm getting
addresses<00:03:23.810><c> but</c><00:03:24.319><c> there's</c><00:03:24.500><c> no</c><00:03:24.819><c> information</c>

00:03:25.809 --> 00:03:25.819 align:start position:0%
addresses but there's no information
 

00:03:25.819 --> 00:03:29.289 align:start position:0%
addresses but there's no information
within<00:03:26.269><c> this</c><00:03:26.599><c> name</c><00:03:27.260><c> reg</c><00:03:27.829><c> system</c><00:03:28.459><c> to</c><00:03:28.940><c> indicate</c>

00:03:29.289 --> 00:03:29.299 align:start position:0%
within this name reg system to indicate
 

00:03:29.299 --> 00:03:32.439 align:start position:0%
within this name reg system to indicate
which<00:03:30.019><c> addresses</c><00:03:30.470><c> are</c><00:03:30.889><c> pointers</c><00:03:31.849><c> to</c><00:03:32.120><c> name</c><00:03:32.239><c> reg</c>

00:03:32.439 --> 00:03:32.449 align:start position:0%
which addresses are pointers to name reg
 

00:03:32.449 --> 00:03:34.509 align:start position:0%
which addresses are pointers to name reg
contracts<00:03:32.989><c> which</c><00:03:33.199><c> addresses</c><00:03:33.590><c> are</c><00:03:33.889><c> basically</c>

00:03:34.509 --> 00:03:34.519 align:start position:0%
contracts which addresses are basically
 

00:03:34.519 --> 00:03:36.849 align:start position:0%
contracts which addresses are basically
pointers<00:03:34.849><c> to</c><00:03:34.970><c> sub</c><00:03:35.120><c> trees</c><00:03:35.389><c> and</c><00:03:35.859><c> which</c>

00:03:36.849 --> 00:03:36.859 align:start position:0%
pointers to sub trees and which
 

00:03:36.859 --> 00:03:38.740 align:start position:0%
pointers to sub trees and which
addresses<00:03:37.250><c> are</c><00:03:37.370><c> dis</c><00:03:37.519><c> addresses</c><00:03:37.970><c> so</c><00:03:38.540><c> that</c>

00:03:38.740 --> 00:03:38.750 align:start position:0%
addresses are dis addresses so that
 

00:03:38.750 --> 00:03:40.420 align:start position:0%
addresses are dis addresses so that
information<00:03:39.169><c> has</c><00:03:39.349><c> to</c><00:03:39.650><c> either</c><00:03:39.889><c> live</c><00:03:40.190><c> within</c>

00:03:40.420 --> 00:03:40.430 align:start position:0%
information has to either live within
 

00:03:40.430 --> 00:03:43.869 align:start position:0%
information has to either live within
the<00:03:41.120><c> application</c><00:03:41.239><c> that</c><00:03:41.900><c> is</c><00:03:42.760><c> interacting</c><00:03:43.760><c> with</c>

00:03:43.869 --> 00:03:43.879 align:start position:0%
the application that is interacting with
 

00:03:43.879 --> 00:03:46.770 align:start position:0%
the application that is interacting with
the<00:03:44.000><c> name</c><00:03:44.150><c> reg</c><00:03:44.359><c> or</c><00:03:45.069><c> you</c><00:03:46.069><c> have</c><00:03:46.220><c> to</c><00:03:46.370><c> do</c><00:03:46.519><c> some</c>

00:03:46.770 --> 00:03:46.780 align:start position:0%
the name reg or you have to do some
 

00:03:46.780 --> 00:03:50.229 align:start position:0%
the name reg or you have to do some
sneaky<00:03:47.780><c> things</c><00:03:47.989><c> to</c><00:03:48.319><c> try</c><00:03:48.530><c> and</c><00:03:48.709><c> divine</c><00:03:49.220><c> if</c><00:03:49.669><c> this</c>

00:03:50.229 --> 00:03:50.239 align:start position:0%
sneaky things to try and divine if this
 

00:03:50.239 --> 00:03:54.670 align:start position:0%
sneaky things to try and divine if this
address<00:03:50.660><c> is</c><00:03:51.940><c> pointing</c><00:03:52.940><c> to</c><00:03:53.090><c> a</c><00:03:53.120><c> name</c><00:03:53.299><c> wreck</c><00:03:53.680><c> the</c>

00:03:54.670 --> 00:03:54.680 align:start position:0%
address is pointing to a name wreck the
 

00:03:54.680 --> 00:03:56.589 align:start position:0%
address is pointing to a name wreck the
other<00:03:54.709><c> problem</c><00:03:55.280><c> of</c><00:03:55.370><c> course</c><00:03:55.489><c> is</c><00:03:55.609><c> that</c><00:03:55.760><c> there's</c>

00:03:56.589 --> 00:03:56.599 align:start position:0%
other problem of course is that there's
 

00:03:56.599 --> 00:04:00.280 align:start position:0%
other problem of course is that there's
no<00:03:56.949><c> standardized</c><00:03:57.949><c> way</c><00:03:58.190><c> of</c><00:03:59.230><c> setting</c><00:04:00.230><c> up</c>

00:04:00.280 --> 00:04:00.290 align:start position:0%
no standardized way of setting up
 

00:04:00.290 --> 00:04:02.860 align:start position:0%
no standardized way of setting up
permissions<00:04:00.620><c> on</c><00:04:01.239><c> these</c><00:04:02.239><c> these</c><00:04:02.510><c> name</c><00:04:02.690><c> break</c>

00:04:02.860 --> 00:04:02.870 align:start position:0%
permissions on these these name break
 

00:04:02.870 --> 00:04:04.420 align:start position:0%
permissions on these these name break
contracts<00:04:03.290><c> so</c><00:04:03.470><c> you</c><00:04:03.530><c> end</c><00:04:03.739><c> up</c><00:04:03.829><c> potentially</c><00:04:04.310><c> with</c>

00:04:04.420 --> 00:04:04.430 align:start position:0%
contracts so you end up potentially with
 

00:04:04.430 --> 00:04:06.789 align:start position:0%
contracts so you end up potentially with
a<00:04:04.459><c> lot</c><00:04:04.639><c> of</c><00:04:04.669><c> one-offs</c><00:04:05.060><c> maybe</c><00:04:05.930><c> some</c><00:04:06.290><c> things</c><00:04:06.620><c> that</c>

00:04:06.789 --> 00:04:06.799 align:start position:0%
a lot of one-offs maybe some things that
 

00:04:06.799 --> 00:04:08.229 align:start position:0%
a lot of one-offs maybe some things that
don't<00:04:06.949><c> quite</c><00:04:07.099><c> separate</c><00:04:07.639><c> concerns</c><00:04:07.970><c> well</c>

00:04:08.229 --> 00:04:08.239 align:start position:0%
don't quite separate concerns well
 

00:04:08.239 --> 00:04:12.449 align:start position:0%
don't quite separate concerns well
enough<00:04:08.470><c> so</c><00:04:09.470><c> to</c><00:04:10.040><c> resolve</c><00:04:10.549><c> the</c><00:04:10.639><c> first</c><00:04:10.819><c> problem</c>

00:04:12.449 --> 00:04:12.459 align:start position:0%
enough so to resolve the first problem
 

00:04:12.459 --> 00:04:15.879 align:start position:0%
enough so to resolve the first problem
all<00:04:13.459><c> of</c><00:04:13.669><c> our</c><00:04:13.760><c> getters</c><00:04:13.970><c> and</c><00:04:14.060><c> setters</c><00:04:14.150><c> on</c><00:04:14.599><c> re</c><00:04:15.590><c> NS</c>

00:04:15.879 --> 00:04:15.889 align:start position:0%
all of our getters and setters on re NS
 

00:04:15.889 --> 00:04:19.479 align:start position:0%
all of our getters and setters on re NS
app<00:04:16.729><c> interface</c><00:04:17.199><c> return</c><00:04:18.199><c> and</c><00:04:18.500><c> accept</c><00:04:19.280><c> a</c>

00:04:19.479 --> 00:04:19.489 align:start position:0%
app interface return and accept a
 

00:04:19.489 --> 00:04:21.250 align:start position:0%
app interface return and accept a
boolean<00:04:19.969><c> called</c><00:04:20.299><c> is</c><00:04:20.419><c> linked</c><00:04:20.659><c> and</c><00:04:20.930><c> that</c>

00:04:21.250 --> 00:04:21.260 align:start position:0%
boolean called is linked and that
 

00:04:21.260 --> 00:04:23.290 align:start position:0%
boolean called is linked and that
explicitly<00:04:21.739><c> defines</c><00:04:22.130><c> whether</c><00:04:22.610><c> the</c><00:04:23.090><c> data</c>

00:04:23.290 --> 00:04:23.300 align:start position:0%
explicitly defines whether the data
 

00:04:23.300 --> 00:04:24.450 align:start position:0%
explicitly defines whether the data
stored

00:04:24.450 --> 00:04:24.460 align:start position:0%
stored
 

00:04:24.460 --> 00:04:26.340 align:start position:0%
stored
at<00:04:24.580><c> a</c><00:04:24.669><c> particular</c><00:04:25.060><c> path</c><00:04:25.240><c> should</c><00:04:26.229><c> be</c>

00:04:26.340 --> 00:04:26.350 align:start position:0%
at a particular path should be
 

00:04:26.350 --> 00:04:28.140 align:start position:0%
at a particular path should be
considered<00:04:26.740><c> a</c><00:04:26.830><c> pointer</c><00:04:27.190><c> to</c><00:04:27.370><c> another</c><00:04:27.520><c> node</c><00:04:27.910><c> in</c>

00:04:28.140 --> 00:04:28.150 align:start position:0%
considered a pointer to another node in
 

00:04:28.150 --> 00:04:33.480 align:start position:0%
considered a pointer to another node in
the<00:04:28.210><c> tree</c><00:04:28.509><c> and</c><00:04:30.930><c> the</c><00:04:31.930><c> second</c><00:04:32.199><c> problem</c><00:04:32.350><c> of</c><00:04:32.650><c> not</c>

00:04:33.480 --> 00:04:33.490 align:start position:0%
the tree and the second problem of not
 

00:04:33.490 --> 00:04:36.900 align:start position:0%
the tree and the second problem of not
having<00:04:33.880><c> a</c><00:04:34.800><c> standardized</c><00:04:35.910><c> permission</c>

00:04:36.900 --> 00:04:36.910 align:start position:0%
having a standardized permission
 

00:04:36.910 --> 00:04:39.480 align:start position:0%
having a standardized permission
interface<00:04:37.349><c> we</c><00:04:38.349><c> just</c><00:04:38.500><c> solved</c><00:04:38.710><c> by</c><00:04:38.830><c> making</c><00:04:39.400><c> a</c>

00:04:39.480 --> 00:04:39.490 align:start position:0%
interface we just solved by making a
 

00:04:39.490 --> 00:04:40.740 align:start position:0%
interface we just solved by making a
standardized<00:04:39.910><c> permission</c><00:04:40.240><c> interface</c><00:04:40.569><c> we</c>

00:04:40.740 --> 00:04:40.750 align:start position:0%
standardized permission interface we
 

00:04:40.750 --> 00:04:43.050 align:start position:0%
standardized permission interface we
call<00:04:40.900><c> a</c><00:04:40.930><c> controller</c><00:04:41.319><c> contract</c><00:04:41.740><c> and</c><00:04:42.009><c> you</c><00:04:42.940><c> can</c>

00:04:43.050 --> 00:04:43.060 align:start position:0%
call a controller contract and you can
 

00:04:43.060 --> 00:04:48.930 align:start position:0%
call a controller contract and you can
set<00:04:43.210><c> those</c><00:04:43.389><c> on</c><00:04:43.780><c> any</c><00:04:44.169><c> node</c><00:04:44.560><c> in</c><00:04:44.770><c> the</c><00:04:44.800><c> tree</c><00:04:47.940><c> so</c>

00:04:48.930 --> 00:04:48.940 align:start position:0%
set those on any node in the tree so
 

00:04:48.940 --> 00:04:52.680 align:start position:0%
set those on any node in the tree so
this<00:04:49.840><c> is</c><00:04:50.250><c> roughly</c><00:04:51.250><c> what</c><00:04:51.610><c> our</c><00:04:51.849><c> code</c><00:04:52.300><c> looks</c><00:04:52.539><c> like</c>

00:04:52.680 --> 00:04:52.690 align:start position:0%
this is roughly what our code looks like
 

00:04:52.690 --> 00:04:54.480 align:start position:0%
this is roughly what our code looks like
right<00:04:52.870><c> now</c><00:04:53.020><c> this</c><00:04:53.259><c> is</c><00:04:53.410><c> just</c><00:04:53.440><c> a</c><00:04:53.620><c> UML</c><00:04:53.949><c> diagram</c><00:04:54.340><c> and</c>

00:04:54.480 --> 00:04:54.490 align:start position:0%
right now this is just a UML diagram and
 

00:04:54.490 --> 00:04:55.650 align:start position:0%
right now this is just a UML diagram and
you<00:04:54.580><c> can</c><00:04:54.699><c> see</c><00:04:54.819><c> there</c><00:04:54.970><c> are</c><00:04:55.030><c> two</c><00:04:55.060><c> distinct</c>

00:04:55.650 --> 00:04:55.660 align:start position:0%
you can see there are two distinct
 

00:04:55.660 --> 00:04:57.839 align:start position:0%
you can see there are two distinct
structures<00:04:56.050><c> the</c><00:04:57.039><c> one</c><00:04:57.190><c> on</c><00:04:57.310><c> the</c><00:04:57.400><c> left</c><00:04:57.580><c> is</c>

00:04:57.839 --> 00:04:57.849 align:start position:0%
structures the one on the left is
 

00:04:57.849 --> 00:05:00.150 align:start position:0%
structures the one on the left is
governed<00:04:58.509><c> by</c><00:04:58.570><c> the</c><00:04:58.690><c> NS</c><00:04:59.199><c> app</c><00:04:59.380><c> interface</c><00:04:59.650><c> on</c><00:04:59.979><c> top</c>

00:05:00.150 --> 00:05:00.160 align:start position:0%
governed by the NS app interface on top
 

00:05:00.160 --> 00:05:04.620 align:start position:0%
governed by the NS app interface on top
and<00:05:02.580><c> that</c><00:05:03.580><c> is</c><00:05:03.910><c> what</c><00:05:04.060><c> you'll</c><00:05:04.180><c> be</c><00:05:04.210><c> interacting</c>

00:05:04.620 --> 00:05:04.630 align:start position:0%
and that is what you'll be interacting
 

00:05:04.630 --> 00:05:08.129 align:start position:0%
and that is what you'll be interacting
with<00:05:04.750><c> most</c><00:05:04.960><c> of</c><00:05:05.050><c> the</c><00:05:05.169><c> time</c><00:05:05.349><c> it</c><00:05:05.590><c> lets</c><00:05:06.460><c> you</c><00:05:07.139><c> get</c>

00:05:08.129 --> 00:05:08.139 align:start position:0%
with most of the time it lets you get
 

00:05:08.139 --> 00:05:11.969 align:start position:0%
with most of the time it lets you get
and<00:05:08.410><c> set</c><00:05:08.710><c> values</c><00:05:09.520><c> in</c><00:05:09.820><c> the</c><00:05:10.240><c> NS</c><00:05:10.479><c> tree</c><00:05:10.979><c> using</c>

00:05:11.969 --> 00:05:11.979 align:start position:0%
and set values in the NS tree using
 

00:05:11.979 --> 00:05:16.020 align:start position:0%
and set values in the NS tree using
paths<00:05:12.310><c> and</c><00:05:13.949><c> the</c><00:05:14.949><c> second</c><00:05:15.310><c> structure</c><00:05:15.639><c> you</c><00:05:15.880><c> only</c>

00:05:16.020 --> 00:05:16.030 align:start position:0%
paths and the second structure you only
 

00:05:16.030 --> 00:05:19.040 align:start position:0%
paths and the second structure you only
use<00:05:16.300><c> if</c><00:05:16.539><c> you're</c><00:05:16.690><c> setting</c><00:05:17.050><c> permissions</c><00:05:17.440><c> on</c><00:05:17.949><c> a</c>

00:05:19.040 --> 00:05:19.050 align:start position:0%
use if you're setting permissions on a
 

00:05:19.050 --> 00:05:23.820 align:start position:0%
use if you're setting permissions on a
node<00:05:21.330><c> I'll</c><00:05:22.330><c> dig</c><00:05:22.569><c> into</c><00:05:22.690><c> these</c><00:05:22.900><c> in</c><00:05:23.590><c> more</c><00:05:23.800><c> detail</c>

00:05:23.820 --> 00:05:23.830 align:start position:0%
node I'll dig into these in more detail
 

00:05:23.830 --> 00:05:27.270 align:start position:0%
node I'll dig into these in more detail
over<00:05:24.190><c> the</c><00:05:24.280><c> next</c><00:05:24.430><c> few</c><00:05:24.550><c> slides</c><00:05:25.919><c> so</c><00:05:26.919><c> this</c><00:05:27.130><c> is</c><00:05:27.159><c> the</c>

00:05:27.270 --> 00:05:27.280 align:start position:0%
over the next few slides so this is the
 

00:05:27.280 --> 00:05:32.810 align:start position:0%
over the next few slides so this is the
interface<00:05:27.550><c> for</c><00:05:28.509><c> the</c><00:05:29.440><c> ens</c><00:05:29.949><c> app</c><00:05:30.159><c> contract</c><00:05:30.849><c> and</c>

00:05:32.810 --> 00:05:32.820 align:start position:0%
interface for the ens app contract and
 

00:05:32.820 --> 00:05:35.399 align:start position:0%
interface for the ens app contract and
you<00:05:33.820><c> see</c><00:05:34.000><c> there's</c><00:05:34.180><c> a</c><00:05:34.240><c> getness</c><00:05:35.050><c> set</c><00:05:35.229><c> function</c>

00:05:35.399 --> 00:05:35.409 align:start position:0%
you see there's a getness set function
 

00:05:35.409 --> 00:05:37.589 align:start position:0%
you see there's a getness set function
you<00:05:36.130><c> also</c><00:05:36.400><c> notice</c><00:05:36.669><c> that</c><00:05:36.699><c> on</c><00:05:37.060><c> every</c><00:05:37.240><c> function</c>

00:05:37.589 --> 00:05:37.599 align:start position:0%
you also notice that on every function
 

00:05:37.599 --> 00:05:40.110 align:start position:0%
you also notice that on every function
we<00:05:37.720><c> have</c><00:05:37.870><c> a</c><00:05:38.169><c> boolean</c><00:05:38.560><c> okay</c><00:05:38.979><c> return</c><00:05:39.669><c> value</c><00:05:39.699><c> we</c>

00:05:40.110 --> 00:05:40.120 align:start position:0%
we have a boolean okay return value we
 

00:05:40.120 --> 00:05:41.659 align:start position:0%
we have a boolean okay return value we
found<00:05:40.270><c> that</c><00:05:40.389><c> was</c><00:05:40.539><c> necessary</c><00:05:40.659><c> because</c>

00:05:41.659 --> 00:05:41.669 align:start position:0%
found that was necessary because
 

00:05:41.669 --> 00:05:45.209 align:start position:0%
found that was necessary because
sometimes<00:05:43.199><c> functions</c><00:05:44.199><c> return</c><00:05:44.440><c> knolls</c><00:05:44.949><c> if</c>

00:05:45.209 --> 00:05:45.219 align:start position:0%
sometimes functions return knolls if
 

00:05:45.219 --> 00:05:46.740 align:start position:0%
sometimes functions return knolls if
there's<00:05:45.400><c> a</c><00:05:45.460><c> failure</c><00:05:45.759><c> mode</c><00:05:46.060><c> there</c><00:05:46.270><c> are</c><00:05:46.389><c> certain</c>

00:05:46.740 --> 00:05:46.750 align:start position:0%
there's a failure mode there are certain
 

00:05:46.750 --> 00:05:49.740 align:start position:0%
there's a failure mode there are certain
failure<00:05:47.020><c> modes</c><00:05:47.259><c> that</c><00:05:47.380><c> return</c><00:05:47.770><c> null</c><00:05:47.949><c> and</c><00:05:48.750><c> you</c>

00:05:49.740 --> 00:05:49.750 align:start position:0%
failure modes that return null and you
 

00:05:49.750 --> 00:05:51.709 align:start position:0%
failure modes that return null and you
need<00:05:49.870><c> to</c><00:05:49.930><c> be</c><00:05:50.050><c> able</c><00:05:50.110><c> to</c><00:05:50.320><c> differentiate</c><00:05:51.099><c> between</c>

00:05:51.709 --> 00:05:51.719 align:start position:0%
need to be able to differentiate between
 

00:05:51.719 --> 00:05:56.999 align:start position:0%
need to be able to differentiate between
real<00:05:52.719><c> valid</c><00:05:53.620><c> null</c><00:05:53.979><c> values</c><00:05:54.400><c> and</c><00:05:54.729><c> a</c><00:05:56.009><c> failure</c>

00:05:56.999 --> 00:05:57.009 align:start position:0%
real valid null values and a failure
 

00:05:57.009 --> 00:05:59.730 align:start position:0%
real valid null values and a failure
mode<00:05:57.310><c> right</c><00:05:57.520><c> so</c><00:05:58.210><c> if</c><00:05:58.479><c> the</c><00:05:58.599><c> boolean</c><00:05:58.750><c> ok</c><00:05:59.139><c> returns</c>

00:05:59.730 --> 00:05:59.740 align:start position:0%
mode right so if the boolean ok returns
 

00:05:59.740 --> 00:06:02.850 align:start position:0%
mode right so if the boolean ok returns
true<00:06:00.130><c> or</c><00:06:00.460><c> is</c><00:06:01.090><c> true</c><00:06:01.360><c> then</c><00:06:01.770><c> everything</c><00:06:02.770><c> went</c>

00:06:02.850 --> 00:06:02.860 align:start position:0%
true or is true then everything went
 

00:06:02.860 --> 00:06:05.520 align:start position:0%
true or is true then everything went
through<00:06:03.280><c> ok</c><00:06:03.400><c> if</c><00:06:03.880><c> it's</c><00:06:04.270><c> false</c><00:06:04.570><c> then</c><00:06:04.900><c> any</c><00:06:05.320><c> null</c>

00:06:05.520 --> 00:06:05.530 align:start position:0%
through ok if it's false then any null
 

00:06:05.530 --> 00:06:07.680 align:start position:0%
through ok if it's false then any null
values<00:06:05.830><c> gotten</c><00:06:06.099><c> back</c><00:06:06.250><c> are</c><00:06:06.430><c> not</c><00:06:06.580><c> valid</c><00:06:06.789><c> and</c><00:06:07.180><c> you</c>

00:06:07.680 --> 00:06:07.690 align:start position:0%
values gotten back are not valid and you
 

00:06:07.690 --> 00:06:08.760 align:start position:0%
values gotten back are not valid and you
should<00:06:07.840><c> figure</c><00:06:07.960><c> out</c><00:06:08.110><c> what's</c><00:06:08.409><c> going</c><00:06:08.620><c> on</c><00:06:08.710><c> and</c>

00:06:08.760 --> 00:06:08.770 align:start position:0%
should figure out what's going on and
 

00:06:08.770 --> 00:06:13.560 align:start position:0%
should figure out what's going on and
fail<00:06:09.580><c> gracefully</c><00:06:10.830><c> so</c><00:06:11.830><c> get</c><00:06:12.370><c> takes</c><00:06:12.820><c> a</c><00:06:13.060><c> forward</c>

00:06:13.560 --> 00:06:13.570 align:start position:0%
fail gracefully so get takes a forward
 

00:06:13.570 --> 00:06:16.740 align:start position:0%
fail gracefully so get takes a forward
slash<00:06:13.659><c> delimited</c><00:06:14.169><c> path</c><00:06:14.320><c> and</c><00:06:14.820><c> returns</c><00:06:15.820><c> a</c><00:06:16.300><c> bytes</c>

00:06:16.740 --> 00:06:16.750 align:start position:0%
slash delimited path and returns a bytes
 

00:06:16.750 --> 00:06:18.600 align:start position:0%
slash delimited path and returns a bytes
32<00:06:16.900><c> value</c><00:06:17.440><c> it</c><00:06:17.680><c> returns</c><00:06:18.039><c> are</c><00:06:18.130><c> is</c><00:06:18.340><c> linked</c>

00:06:18.600 --> 00:06:18.610 align:start position:0%
32 value it returns are is linked
 

00:06:18.610 --> 00:06:19.950 align:start position:0%
32 value it returns are is linked
boolean<00:06:18.940><c> that</c><00:06:19.090><c> we</c><00:06:19.150><c> talked</c><00:06:19.330><c> about</c><00:06:19.419><c> earlier</c><00:06:19.539><c> and</c>

00:06:19.950 --> 00:06:19.960 align:start position:0%
boolean that we talked about earlier and
 

00:06:19.960 --> 00:06:22.439 align:start position:0%
boolean that we talked about earlier and
returns<00:06:20.680><c> the</c><00:06:20.889><c> evo</c><00:06:21.099><c> k</c><00:06:21.250><c> boolean</c><00:06:21.639><c> set</c><00:06:21.969><c> of</c><00:06:22.240><c> course</c>

00:06:22.439 --> 00:06:22.449 align:start position:0%
returns the evo k boolean set of course
 

00:06:22.449 --> 00:06:24.360 align:start position:0%
returns the evo k boolean set of course
takes<00:06:22.870><c> a</c><00:06:22.990><c> path</c><00:06:23.169><c> the</c><00:06:23.440><c> value</c><00:06:23.800><c> in</c><00:06:24.009><c> his</c><00:06:24.159><c> link</c>

00:06:24.360 --> 00:06:24.370 align:start position:0%
takes a path the value in his link
 

00:06:24.370 --> 00:06:28.290 align:start position:0%
takes a path the value in his link
returns<00:06:24.789><c> the</c><00:06:24.880><c> ok</c><00:06:25.180><c> boolean</c><00:06:27.030><c> and</c><00:06:28.030><c> those</c><00:06:28.180><c> are</c>

00:06:28.290 --> 00:06:28.300 align:start position:0%
returns the ok boolean and those are
 

00:06:28.300 --> 00:06:29.640 align:start position:0%
returns the ok boolean and those are
what<00:06:28.389><c> you'll</c><00:06:28.539><c> be</c><00:06:28.630><c> working</c><00:06:29.050><c> with</c><00:06:29.080><c> most</c><00:06:29.440><c> of</c><00:06:29.560><c> the</c>

00:06:29.640 --> 00:06:29.650 align:start position:0%
what you'll be working with most of the
 

00:06:29.650 --> 00:06:32.040 align:start position:0%
what you'll be working with most of the
time<00:06:29.800><c> of</c><00:06:29.919><c> course</c><00:06:30.479><c> claim</c><00:06:31.479><c> no</c><00:06:31.630><c> you</c><00:06:31.690><c> only</c><00:06:31.870><c> be</c>

00:06:32.040 --> 00:06:32.050 align:start position:0%
time of course claim no you only be
 

00:06:32.050 --> 00:06:35.339 align:start position:0%
time of course claim no you only be
working<00:06:32.349><c> with</c><00:06:32.469><c> if</c><00:06:33.900><c> you're</c><00:06:34.900><c> writing</c><00:06:35.199><c> a</c>

00:06:35.339 --> 00:06:35.349 align:start position:0%
working with if you're writing a
 

00:06:35.349 --> 00:06:37.409 align:start position:0%
working with if you're writing a
controller<00:06:35.919><c> contract</c><00:06:36.370><c> controller</c><00:06:36.909><c> contracts</c>

00:06:37.409 --> 00:06:37.419 align:start position:0%
controller contract controller contracts
 

00:06:37.419 --> 00:06:38.060 align:start position:0%
controller contract controller contracts
call

00:06:38.060 --> 00:06:38.070 align:start position:0%
call
 

00:06:38.070 --> 00:06:41.690 align:start position:0%
call
this<00:06:38.130><c> function</c><00:06:38.570><c> DNS</c><00:06:39.570><c> app</c><00:06:40.280><c> sets</c><00:06:41.280><c> the</c>

00:06:41.690 --> 00:06:41.700 align:start position:0%
this function DNS app sets the
 

00:06:41.700 --> 00:06:43.850 align:start position:0%
this function DNS app sets the
controller<00:06:42.330><c> contract</c><00:06:42.780><c> making</c><00:06:43.050><c> the</c><00:06:43.170><c> call</c><00:06:43.350><c> to</c>

00:06:43.850 --> 00:06:43.860 align:start position:0%
controller contract making the call to
 

00:06:43.860 --> 00:06:45.800 align:start position:0%
controller contract making the call to
be<00:06:43.980><c> the</c><00:06:44.100><c> controller</c><00:06:44.400><c> for</c><00:06:44.670><c> the</c><00:06:44.970><c> node</c><00:06:45.450><c> that</c><00:06:45.660><c> it</c>

00:06:45.800 --> 00:06:45.810 align:start position:0%
be the controller for the node that it
 

00:06:45.810 --> 00:06:48.650 align:start position:0%
be the controller for the node that it
sets<00:06:46.260><c> aside</c><00:06:46.590><c> in</c><00:06:47.040><c> the</c><00:06:47.100><c> tree</c><00:06:47.430><c> for</c><00:06:48.270><c> that</c>

00:06:48.650 --> 00:06:48.660 align:start position:0%
sets aside in the tree for that
 

00:06:48.660 --> 00:06:51.290 align:start position:0%
sets aside in the tree for that
controller<00:06:48.990><c> and</c><00:06:49.230><c> that</c><00:06:50.070><c> it</c><00:06:50.160><c> returns</c><00:06:50.460><c> that</c>

00:06:51.290 --> 00:06:51.300 align:start position:0%
controller and that it returns that
 

00:06:51.300 --> 00:06:53.930 align:start position:0%
controller and that it returns that
nodes<00:06:51.570><c> ID</c><00:06:52.040><c> the</c><00:06:53.040><c> controller</c><00:06:53.370><c> contract</c><00:06:53.790><c> can</c>

00:06:53.930 --> 00:06:53.940 align:start position:0%
nodes ID the controller contract can
 

00:06:53.940 --> 00:06:55.910 align:start position:0%
nodes ID the controller contract can
then<00:06:54.090><c> build</c><00:06:54.240><c> out</c><00:06:54.420><c> the</c><00:06:54.540><c> sub</c><00:06:54.720><c> tree</c><00:06:54.930><c> as</c><00:06:55.080><c> however</c>

00:06:55.910 --> 00:06:55.920 align:start position:0%
then build out the sub tree as however
 

00:06:55.920 --> 00:07:00.110 align:start position:0%
then build out the sub tree as however
it<00:06:56.010><c> wants</c><00:06:56.100><c> and</c><00:06:56.780><c> it</c><00:06:57.780><c> can</c><00:06:57.930><c> set</c><00:06:58.370><c> the</c><00:06:59.370><c> position</c><00:06:59.550><c> the</c>

00:07:00.110 --> 00:07:00.120 align:start position:0%
it wants and it can set the position the
 

00:07:00.120 --> 00:07:02.810 align:start position:0%
it wants and it can set the position the
path<00:07:00.330><c> for</c><00:07:00.750><c> that</c><00:07:00.840><c> sub</c><00:07:01.050><c> tree</c><00:07:01.260><c> in</c><00:07:01.470><c> the</c><00:07:02.070><c> ens</c><00:07:02.490><c> tree</c>

00:07:02.810 --> 00:07:02.820 align:start position:0%
path for that sub tree in the ens tree
 

00:07:02.820 --> 00:07:05.690 align:start position:0%
path for that sub tree in the ens tree
using<00:07:03.540><c> the</c><00:07:04.140><c> set</c><00:07:04.350><c> function</c><00:07:04.590><c> it</c><00:07:04.950><c> passes</c><00:07:05.520><c> in</c><00:07:05.670><c> the</c>

00:07:05.690 --> 00:07:05.700 align:start position:0%
using the set function it passes in the
 

00:07:05.700 --> 00:07:08.960 align:start position:0%
using the set function it passes in the
desired<00:07:06.030><c> path</c><00:07:06.240><c> it</c><00:07:07.080><c> passes</c><00:07:07.470><c> in</c><00:07:07.650><c> the</c><00:07:07.890><c> ID</c><00:07:08.340><c> of</c><00:07:08.520><c> the</c>

00:07:08.960 --> 00:07:08.970 align:start position:0%
desired path it passes in the ID of the
 

00:07:08.970 --> 00:07:12.440 align:start position:0%
desired path it passes in the ID of the
node<00:07:09.210><c> as</c><00:07:09.420><c> a</c><00:07:09.840><c> value</c><00:07:10.230><c> and</c><00:07:10.440><c> it</c><00:07:11.250><c> sets</c><00:07:11.910><c> these</c><00:07:12.180><c> link</c>

00:07:12.440 --> 00:07:12.450 align:start position:0%
node as a value and it sets these link
 

00:07:12.450 --> 00:07:17.900 align:start position:0%
node as a value and it sets these link
function<00:07:12.630><c> or</c><00:07:13.020><c> boolean</c><00:07:13.920><c> to</c><00:07:14.370><c> true</c><00:07:15.050><c> and</c><00:07:16.790><c> then</c><00:07:17.790><c> we</c>

00:07:17.900 --> 00:07:17.910 align:start position:0%
function or boolean to true and then we
 

00:07:17.910 --> 00:07:19.790 align:start position:0%
function or boolean to true and then we
have<00:07:18.030><c> the</c><00:07:18.180><c> node</c><00:07:18.540><c> get</c><00:07:18.750><c> node</c><00:07:19.020><c> set</c><00:07:19.230><c> functions</c>

00:07:19.790 --> 00:07:19.800 align:start position:0%
have the node get node set functions
 

00:07:19.800 --> 00:07:23.750 align:start position:0%
have the node get node set functions
which<00:07:19.950><c> are</c><00:07:20.100><c> just</c><00:07:20.630><c> ways</c><00:07:21.630><c> of</c><00:07:21.990><c> saving</c><00:07:22.950><c> on</c><00:07:23.280><c> look</c><00:07:23.640><c> up</c>

00:07:23.750 --> 00:07:23.760 align:start position:0%
which are just ways of saving on look up
 

00:07:23.760 --> 00:07:26.600 align:start position:0%
which are just ways of saving on look up
costs<00:07:24.120><c> you</c><00:07:24.570><c> can</c><00:07:24.720><c> look</c><00:07:24.870><c> up</c><00:07:25.220><c> you</c><00:07:26.220><c> can</c><00:07:26.370><c> look</c><00:07:26.490><c> up</c>

00:07:26.600 --> 00:07:26.610 align:start position:0%
costs you can look up you can look up
 

00:07:26.610 --> 00:07:29.420 align:start position:0%
costs you can look up you can look up
values<00:07:27.030><c> on</c><00:07:27.300><c> nodes</c><00:07:27.930><c> you</c><00:07:28.860><c> can</c><00:07:28.980><c> look</c><00:07:29.040><c> at</c><00:07:29.160><c> values</c>

00:07:29.420 --> 00:07:29.430 align:start position:0%
values on nodes you can look at values
 

00:07:29.430 --> 00:07:30.980 align:start position:0%
values on nodes you can look at values
relative<00:07:29.910><c> to</c><00:07:30.180><c> nodes</c><00:07:30.390><c> and</c><00:07:30.540><c> set</c><00:07:30.720><c> values</c>

00:07:30.980 --> 00:07:30.990 align:start position:0%
relative to nodes and set values
 

00:07:30.990 --> 00:07:35.090 align:start position:0%
relative to nodes and set values
relative<00:07:31.440><c> to</c><00:07:31.620><c> nodes</c><00:07:32.270><c> and</c><00:07:33.530><c> then</c><00:07:34.530><c> finally</c><00:07:34.920><c> the</c>

00:07:35.090 --> 00:07:35.100 align:start position:0%
relative to nodes and then finally the
 

00:07:35.100 --> 00:07:37.970 align:start position:0%
relative to nodes and then finally the
get<00:07:35.700><c> controller</c><00:07:36.260><c> function</c><00:07:37.260><c> which</c><00:07:37.410><c> simply</c>

00:07:37.970 --> 00:07:37.980 align:start position:0%
get controller function which simply
 

00:07:37.980 --> 00:07:40.460 align:start position:0%
get controller function which simply
takes<00:07:38.190><c> a</c><00:07:38.490><c> node</c><00:07:39.000><c> ID</c><00:07:39.150><c> and</c><00:07:39.480><c> returns</c><00:07:39.750><c> the</c>

00:07:40.460 --> 00:07:40.470 align:start position:0%
takes a node ID and returns the
 

00:07:40.470 --> 00:07:42.950 align:start position:0%
takes a node ID and returns the
controller<00:07:40.770><c> contract</c><00:07:41.160><c> and</c><00:07:41.630><c> that</c><00:07:42.630><c> was</c><00:07:42.810><c> a</c><00:07:42.840><c> bit</c>

00:07:42.950 --> 00:07:42.960 align:start position:0%
controller contract and that was a bit
 

00:07:42.960 --> 00:07:45.290 align:start position:0%
controller contract and that was a bit
of<00:07:43.020><c> a</c><00:07:43.080><c> data</c><00:07:43.230><c> dump</c><00:07:43.410><c> so</c><00:07:43.890><c> here's</c><00:07:44.340><c> a</c><00:07:44.400><c> kitten</c><00:07:44.730><c> take</c><00:07:45.270><c> a</c>

00:07:45.290 --> 00:07:45.300 align:start position:0%
of a data dump so here's a kitten take a
 

00:07:45.300 --> 00:07:47.390 align:start position:0%
of a data dump so here's a kitten take a
take<00:07:45.570><c> a</c><00:07:45.600><c> breather</c><00:07:45.840><c> all</c><00:07:46.800><c> right</c><00:07:46.950><c> we'll</c><00:07:47.250><c> jump</c>

00:07:47.390 --> 00:07:47.400 align:start position:0%
take a breather all right we'll jump
 

00:07:47.400 --> 00:07:52.430 align:start position:0%
take a breather all right we'll jump
back<00:07:47.520><c> into</c><00:07:47.670><c> it</c><00:07:47.850><c> in</c><00:07:47.940><c> three</c><00:07:48.420><c> and</c><00:07:48.660><c> two</c><00:07:48.960><c> and</c><00:07:51.440><c> all</c>

00:07:52.430 --> 00:07:52.440 align:start position:0%
back into it in three and two and all
 

00:07:52.440 --> 00:07:53.750 align:start position:0%
back into it in three and two and all
right<00:07:52.620><c> and</c><00:07:52.800><c> this</c><00:07:52.920><c> is</c><00:07:53.040><c> the</c><00:07:53.130><c> ens</c><00:07:53.400><c> controller</c>

00:07:53.750 --> 00:07:53.760 align:start position:0%
right and this is the ens controller
 

00:07:53.760 --> 00:07:56.150 align:start position:0%
right and this is the ens controller
interface<00:07:54.300><c> and</c><00:07:54.780><c> the</c><00:07:55.590><c> only</c><00:07:55.770><c> thing</c><00:07:55.890><c> that</c>

00:07:56.150 --> 00:07:56.160 align:start position:0%
interface and the only thing that
 

00:07:56.160 --> 00:07:57.620 align:start position:0%
interface and the only thing that
interacts<00:07:56.490><c> with</c><00:07:56.550><c> the</c><00:07:56.670><c> NS</c><00:07:56.880><c> controllers</c><00:07:57.270><c> is</c><00:07:57.450><c> the</c>

00:07:57.620 --> 00:07:57.630 align:start position:0%
interacts with the NS controllers is the
 

00:07:57.630 --> 00:08:00.560 align:start position:0%
interacts with the NS controllers is the
NS<00:07:57.870><c> app</c><00:07:58.080><c> so</c><00:07:59.000><c> when</c><00:08:00.000><c> you're</c><00:08:00.090><c> writing</c><00:08:00.210><c> any</c><00:08:00.420><c> nest</c>

00:08:00.560 --> 00:08:00.570 align:start position:0%
NS app so when you're writing any nest
 

00:08:00.570 --> 00:08:01.970 align:start position:0%
NS app so when you're writing any nest
controller<00:08:00.900><c> you</c><00:08:01.050><c> need</c><00:08:01.200><c> to</c><00:08:01.350><c> make</c><00:08:01.710><c> sure</c><00:08:01.740><c> that's</c>

00:08:01.970 --> 00:08:01.980 align:start position:0%
controller you need to make sure that's
 

00:08:01.980 --> 00:08:04.820 align:start position:0%
controller you need to make sure that's
permission<00:08:02.970><c> that</c><00:08:03.180><c> only</c><00:08:03.840><c> the</c><00:08:04.020><c> NSF</c><00:08:04.440><c> can</c>

00:08:04.820 --> 00:08:04.830 align:start position:0%
permission that only the NSF can
 

00:08:04.830 --> 00:08:06.410 align:start position:0%
permission that only the NSF can
interact<00:08:05.250><c> with</c><00:08:05.370><c> those</c><00:08:05.430><c> two</c><00:08:05.610><c> functions</c><00:08:06.000><c> it</c>

00:08:06.410 --> 00:08:06.420 align:start position:0%
interact with those two functions it
 

00:08:06.420 --> 00:08:09.530 align:start position:0%
interact with those two functions it
takes<00:08:06.990><c> a</c><00:08:07.110><c> node</c><00:08:07.320><c> an</c><00:08:07.800><c> address</c><00:08:08.310><c> that's</c><00:08:09.150><c> the</c>

00:08:09.530 --> 00:08:09.540 align:start position:0%
takes a node an address that's the
 

00:08:09.540 --> 00:08:11.240 align:start position:0%
takes a node an address that's the
caller<00:08:09.780><c> of</c><00:08:09.930><c> making</c><00:08:10.260><c> the</c><00:08:10.410><c> request</c><00:08:10.740><c> to</c><00:08:10.890><c> set</c><00:08:11.130><c> or</c>

00:08:11.240 --> 00:08:11.250 align:start position:0%
caller of making the request to set or
 

00:08:11.250 --> 00:08:14.120 align:start position:0%
caller of making the request to set or
get<00:08:11.400><c> the</c><00:08:12.300><c> key</c><00:08:12.540><c> and</c><00:08:12.750><c> the</c><00:08:13.470><c> value</c><00:08:13.500><c> that</c><00:08:13.950><c> should</c><00:08:14.070><c> be</c>

00:08:14.120 --> 00:08:14.130 align:start position:0%
get the key and the value that should be
 

00:08:14.130 --> 00:08:16.190 align:start position:0%
get the key and the value that should be
stored<00:08:14.400><c> as</c><00:08:14.940><c> well</c><00:08:15.120><c> as</c><00:08:15.210><c> the</c><00:08:15.360><c> this</c><00:08:15.660><c> link</c><00:08:15.900><c> boolean</c>

00:08:16.190 --> 00:08:16.200 align:start position:0%
stored as well as the this link boolean
 

00:08:16.200 --> 00:08:19.760 align:start position:0%
stored as well as the this link boolean
and<00:08:16.380><c> it</c><00:08:17.070><c> should</c><00:08:17.220><c> return</c><00:08:17.340><c> false</c><00:08:17.760><c> if</c><00:08:18.120><c> the</c><00:08:18.770><c> caller</c>

00:08:19.760 --> 00:08:19.770 align:start position:0%
and it should return false if the caller
 

00:08:19.770 --> 00:08:20.630 align:start position:0%
and it should return false if the caller
either<00:08:20.100><c> doesn't</c><00:08:20.400><c> have</c><00:08:20.490><c> the</c><00:08:20.580><c> right</c>

00:08:20.630 --> 00:08:20.640 align:start position:0%
either doesn't have the right
 

00:08:20.640 --> 00:08:22.970 align:start position:0%
either doesn't have the right
permissions<00:08:20.910><c> or</c><00:08:21.330><c> if</c><00:08:22.140><c> the</c><00:08:22.350><c> requesters</c><00:08:22.740><c> doesn't</c>

00:08:22.970 --> 00:08:22.980 align:start position:0%
permissions or if the requesters doesn't
 

00:08:22.980 --> 00:08:27.410 align:start position:0%
permissions or if the requesters doesn't
make<00:08:23.070><c> any</c><00:08:23.220><c> sense</c><00:08:23.370><c> for</c><00:08:24.030><c> the</c><00:08:24.240><c> given</c><00:08:24.600><c> path</c><00:08:26.090><c> so</c><00:08:27.090><c> to</c>

00:08:27.410 --> 00:08:27.420 align:start position:0%
make any sense for the given path so to
 

00:08:27.420 --> 00:08:29.330 align:start position:0%
make any sense for the given path so to
make<00:08:27.540><c> your</c><00:08:27.660><c> life</c><00:08:27.750><c> easier</c><00:08:28.230><c> we've</c><00:08:28.590><c> implemented</c>

00:08:29.330 --> 00:08:29.340 align:start position:0%
make your life easier we've implemented
 

00:08:29.340 --> 00:08:33.290 align:start position:0%
make your life easier we've implemented
a<00:08:29.520><c> couple</c><00:08:29.850><c> of</c><00:08:31.669><c> controllers</c><00:08:32.669><c> for</c><00:08:32.940><c> you</c><00:08:33.060><c> guys</c><00:08:33.150><c> to</c>

00:08:33.290 --> 00:08:33.300 align:start position:0%
a couple of controllers for you guys to
 

00:08:33.300 --> 00:08:35.180 align:start position:0%
a couple of controllers for you guys to
look<00:08:33.390><c> at</c><00:08:33.570><c> I'll</c><00:08:34.289><c> go</c><00:08:34.620><c> over</c><00:08:34.710><c> these</c><00:08:34.800><c> very</c><00:08:35.010><c> quickly</c>

00:08:35.180 --> 00:08:35.190 align:start position:0%
look at I'll go over these very quickly
 

00:08:35.190 --> 00:08:37.909 align:start position:0%
look at I'll go over these very quickly
because<00:08:35.310><c> I'm</c><00:08:35.490><c> running</c><00:08:35.669><c> out</c><00:08:35.729><c> of</c><00:08:35.820><c> time</c><00:08:36.000><c> I</c><00:08:36.990><c> this</c>

00:08:37.909 --> 00:08:37.919 align:start position:0%
because I'm running out of time I this
 

00:08:37.919 --> 00:08:39.380 align:start position:0%
because I'm running out of time I this
is<00:08:38.099><c> the</c><00:08:38.130><c> standard</c><00:08:38.430><c> registry</c><00:08:38.789><c> controller</c><00:08:39.150><c> and</c>

00:08:39.380 --> 00:08:39.390 align:start position:0%
is the standard registry controller and
 

00:08:39.390 --> 00:08:41.659 align:start position:0%
is the standard registry controller and
it's<00:08:39.870><c> simply</c><00:08:40.320><c> a</c><00:08:40.349><c> first-come</c><00:08:41.039><c> first-serve</c>

00:08:41.659 --> 00:08:41.669 align:start position:0%
it's simply a first-come first-serve
 

00:08:41.669 --> 00:08:45.500 align:start position:0%
it's simply a first-come first-serve
zero<00:08:42.180><c> fee</c><00:08:42.740><c> controller</c><00:08:43.740><c> if</c><00:08:44.250><c> you</c><00:08:45.240><c> look</c><00:08:45.390><c> above</c>

00:08:45.500 --> 00:08:45.510 align:start position:0%
zero fee controller if you look above
 

00:08:45.510 --> 00:08:48.290 align:start position:0%
zero fee controller if you look above
set<00:08:45.990><c> and</c><00:08:46.170><c> get</c><00:08:46.410><c> the</c><00:08:47.250><c> new</c><00:08:47.370><c> registry</c><00:08:47.760><c> function</c><00:08:48.120><c> is</c>

00:08:48.290 --> 00:08:48.300 align:start position:0%
set and get the new registry function is
 

00:08:48.300 --> 00:08:50.330 align:start position:0%
set and get the new registry function is
what<00:08:48.510><c> you'll</c><00:08:48.630><c> be</c><00:08:48.660><c> using</c><00:08:48.720><c> to</c><00:08:49.230><c> set</c>

00:08:50.330 --> 00:08:50.340 align:start position:0%
what you'll be using to set
 

00:08:50.340 --> 00:08:52.280 align:start position:0%
what you'll be using to set
to<00:08:51.000><c> request</c><00:08:51.210><c> some</c><00:08:51.450><c> notes</c><00:08:51.600><c> from</c><00:08:51.720><c> the</c><00:08:51.810><c> ens</c><00:08:52.110><c> app</c>

00:08:52.280 --> 00:08:52.290 align:start position:0%
to request some notes from the ens app
 

00:08:52.290 --> 00:08:54.080 align:start position:0%
to request some notes from the ens app
and<00:08:52.530><c> get</c><00:08:53.190><c> back</c><00:08:53.340><c> an</c><00:08:53.460><c> idea</c><00:08:53.700><c> that</c><00:08:53.820><c> you</c><00:08:53.880><c> can</c><00:08:53.940><c> then</c>

00:08:54.080 --> 00:08:54.090 align:start position:0%
and get back an idea that you can then
 

00:08:54.090 --> 00:08:57.560 align:start position:0%
and get back an idea that you can then
set<00:08:54.540><c> using</c><00:08:54.780><c> the</c><00:08:55.020><c> set</c><00:08:55.560><c> path</c><00:08:56.270><c> method</c><00:08:57.270><c> that</c><00:08:57.450><c> we</c>

00:08:57.560 --> 00:08:57.570 align:start position:0%
set using the set path method that we
 

00:08:57.570 --> 00:09:00.200 align:start position:0%
set using the set path method that we
talked<00:08:57.720><c> about</c><00:08:57.780><c> earlier</c><00:08:58.880><c> inset</c><00:08:59.880><c> and</c><00:09:00.000><c> get</c><00:09:00.120><c> of</c>

00:09:00.200 --> 00:09:00.210 align:start position:0%
talked about earlier inset and get of
 

00:09:00.210 --> 00:09:04.940 align:start position:0%
talked about earlier inset and get of
course<00:09:00.420><c> set</c><00:09:00.870><c> and</c><00:09:00.990><c> get</c><00:09:01.080><c> values</c><00:09:01.440><c> and</c><00:09:03.950><c> transfer</c>

00:09:04.940 --> 00:09:04.950 align:start position:0%
course set and get values and transfer
 

00:09:04.950 --> 00:09:06.740 align:start position:0%
course set and get values and transfer
above<00:09:05.160><c> the</c><00:09:05.280><c> ens</c><00:09:05.520><c> set</c><00:09:05.730><c> and</c><00:09:05.970><c> eunice</c><00:09:06.240><c> kit</c><00:09:06.480><c> allows</c>

00:09:06.740 --> 00:09:06.750 align:start position:0%
above the ens set and eunice kit allows
 

00:09:06.750 --> 00:09:08.240 align:start position:0%
above the ens set and eunice kit allows
people<00:09:06.960><c> to</c><00:09:07.110><c> transfer</c><00:09:07.530><c> ownership</c><00:09:07.650><c> of</c><00:09:08.010><c> nodes</c>

00:09:08.240 --> 00:09:08.250 align:start position:0%
people to transfer ownership of nodes
 

00:09:08.250 --> 00:09:11.030 align:start position:0%
people to transfer ownership of nodes
between<00:09:08.910><c> each</c><00:09:09.150><c> other</c><00:09:09.330><c> nens</c><00:09:10.230><c> at</c><00:09:10.470><c> indian</c><00:09:10.740><c> escape</c>

00:09:11.030 --> 00:09:11.040 align:start position:0%
between each other nens at indian escape
 

00:09:11.040 --> 00:09:14.420 align:start position:0%
between each other nens at indian escape
we<00:09:11.130><c> of</c><00:09:11.220><c> course</c><00:09:11.250><c> talked</c><00:09:11.610><c> about</c><00:09:11.850><c> earlier</c><00:09:13.070><c> so</c><00:09:14.070><c> all</c>

00:09:14.420 --> 00:09:14.430 align:start position:0%
we of course talked about earlier so all
 

00:09:14.430 --> 00:09:16.400 align:start position:0%
we of course talked about earlier so all
of<00:09:14.490><c> this</c><00:09:14.790><c> code</c><00:09:15.030><c> is</c><00:09:15.240><c> published</c><00:09:15.600><c> at</c><00:09:15.810><c> github</c><00:09:16.260><c> com</c>

00:09:16.400 --> 00:09:16.410 align:start position:0%
of this code is published at github com
 

00:09:16.410 --> 00:09:18.860 align:start position:0%
of this code is published at github com
/<00:09:17.040><c> nexus</c><00:09:17.400><c> development</c><00:09:17.940><c> /</c><00:09:18.150><c> e</c><00:09:18.210><c> and</c><00:09:18.450><c> s</c><00:09:18.540><c> i</c><00:09:18.720><c> don't</c>

00:09:18.860 --> 00:09:18.870 align:start position:0%
/ nexus development / e and s i don't
 

00:09:18.870 --> 00:09:19.610 align:start position:0%
/ nexus development / e and s i don't
know<00:09:18.930><c> if</c><00:09:18.990><c> you</c><00:09:19.050><c> can</c><00:09:19.140><c> see</c><00:09:19.290><c> it</c><00:09:19.320><c> on</c><00:09:19.440><c> the</c><00:09:19.500><c> bottom</c>

00:09:19.610 --> 00:09:19.620 align:start position:0%
know if you can see it on the bottom
 

00:09:19.620 --> 00:09:24.410 align:start position:0%
know if you can see it on the bottom
there<00:09:19.890><c> that's</c><00:09:20.820><c> all</c><00:09:21.780><c> right</c><00:09:21.840><c> cool</c><00:09:22.680><c> and</c><00:09:23.420><c> we're</c>

00:09:24.410 --> 00:09:24.420 align:start position:0%
there that's all right cool and we're
 

00:09:24.420 --> 00:09:26.510 align:start position:0%
there that's all right cool and we're
looking<00:09:24.570><c> for</c><00:09:24.990><c> feedback</c><00:09:25.440><c> looking</c><00:09:25.980><c> for</c><00:09:26.220><c> pull</c>

00:09:26.510 --> 00:09:26.520 align:start position:0%
looking for feedback looking for pull
 

00:09:26.520 --> 00:09:28.190 align:start position:0%
looking for feedback looking for pull
requests<00:09:27.030><c> obviously</c><00:09:27.630><c> with</c><00:09:27.750><c> the</c><00:09:27.780><c> system</c><00:09:28.080><c> like</c>

00:09:28.190 --> 00:09:28.200 align:start position:0%
requests obviously with the system like
 

00:09:28.200 --> 00:09:30.020 align:start position:0%
requests obviously with the system like
this<00:09:28.380><c> the</c><00:09:28.590><c> more</c><00:09:28.680><c> people</c><00:09:28.950><c> using</c><00:09:29.160><c> it</c><00:09:29.370><c> the</c><00:09:29.910><c> more</c>

00:09:30.020 --> 00:09:30.030 align:start position:0%
this the more people using it the more
 

00:09:30.030 --> 00:09:33.230 align:start position:0%
this the more people using it the more
valuable<00:09:30.330><c> it</c><00:09:30.480><c> is</c><00:09:30.600><c> to</c><00:09:30.660><c> everyone</c><00:09:31.730><c> if</c><00:09:32.730><c> we</c><00:09:33.060><c> have</c><00:09:33.210><c> a</c>

00:09:33.230 --> 00:09:33.240 align:start position:0%
valuable it is to everyone if we have a
 

00:09:33.240 --> 00:09:38.150 align:start position:0%
valuable it is to everyone if we have a
common<00:09:34.050><c> ens</c><00:09:35.180><c> app</c><00:09:36.560><c> implementation</c><00:09:37.560><c> then</c><00:09:37.830><c> it</c>

00:09:38.150 --> 00:09:38.160 align:start position:0%
common ens app implementation then it
 

00:09:38.160 --> 00:09:41.690 align:start position:0%
common ens app implementation then it
helps<00:09:38.280><c> with</c><00:09:38.430><c> discoverability</c><00:09:39.000><c> and</c><00:09:40.700><c> we've</c>

00:09:41.690 --> 00:09:41.700 align:start position:0%
helps with discoverability and we've
 

00:09:41.700 --> 00:09:43.940 align:start position:0%
helps with discoverability and we've
been<00:09:42.320><c> trying</c><00:09:43.320><c> to</c><00:09:43.350><c> figure</c><00:09:43.500><c> out</c><00:09:43.650><c> how</c><00:09:43.710><c> to</c><00:09:43.770><c> make</c><00:09:43.860><c> it</c>

00:09:43.940 --> 00:09:43.950 align:start position:0%
been trying to figure out how to make it
 

00:09:43.950 --> 00:09:46.160 align:start position:0%
been trying to figure out how to make it
happen<00:09:44.100><c> so</c><00:09:44.490><c> we'd</c><00:09:44.640><c> love</c><00:09:44.880><c> some</c><00:09:45.180><c> feedback</c><00:09:45.330><c> get</c><00:09:46.080><c> in</c>

00:09:46.160 --> 00:09:46.170 align:start position:0%
happen so we'd love some feedback get in
 

00:09:46.170 --> 00:09:48.230 align:start position:0%
happen so we'd love some feedback get in
contact<00:09:46.350><c> with</c><00:09:46.740><c> us</c><00:09:46.850><c> some</c><00:09:47.850><c> of</c><00:09:47.880><c> the</c><00:09:48.000><c> things</c><00:09:48.120><c> we've</c>

00:09:48.230 --> 00:09:48.240 align:start position:0%
contact with us some of the things we've
 

00:09:48.240 --> 00:09:49.430 align:start position:0%
contact with us some of the things we've
been<00:09:48.330><c> kicking</c><00:09:48.480><c> around</c><00:09:48.630><c> if</c><00:09:48.870><c> maybe</c><00:09:49.020><c> a</c><00:09:49.110><c> token</c>

00:09:49.430 --> 00:09:49.440 align:start position:0%
been kicking around if maybe a token
 

00:09:49.440 --> 00:09:52.280 align:start position:0%
been kicking around if maybe a token
system<00:09:49.590><c> for</c><00:09:50.160><c> registering</c><00:09:50.730><c> tlds</c><00:09:51.240><c> maybe</c><00:09:52.050><c> an</c>

00:09:52.280 --> 00:09:52.290 align:start position:0%
system for registering tlds maybe an
 

00:09:52.290 --> 00:09:54.710 align:start position:0%
system for registering tlds maybe an
auction<00:09:52.590><c> system</c><00:09:52.950><c> so</c><00:09:53.700><c> if</c><00:09:54.120><c> you</c><00:09:54.270><c> want</c><00:09:54.420><c> to</c><00:09:54.480><c> be</c><00:09:54.540><c> part</c>

00:09:54.710 --> 00:09:54.720 align:start position:0%
auction system so if you want to be part
 

00:09:54.720 --> 00:09:56.600 align:start position:0%
auction system so if you want to be part
of<00:09:54.750><c> that</c><00:09:54.810><c> process</c><00:09:55.020><c> please</c><00:09:55.560><c> you</c><00:09:56.010><c> know</c><00:09:56.100><c> talk</c><00:09:56.460><c> to</c>

00:09:56.600 --> 00:09:56.610 align:start position:0%
of that process please you know talk to
 

00:09:56.610 --> 00:10:00.290 align:start position:0%
of that process please you know talk to
us<00:09:56.730><c> tweet</c><00:09:57.630><c> at</c><00:09:57.780><c> me</c><00:09:58.310><c> email</c><00:09:59.310><c> us</c><00:09:59.430><c> we</c><00:09:59.940><c> have</c><00:10:00.030><c> a</c><00:10:00.060><c> github</c>

00:10:00.290 --> 00:10:00.300 align:start position:0%
us tweet at me email us we have a github
 

00:10:00.300 --> 00:10:02.960 align:start position:0%
us tweet at me email us we have a github
we're<00:10:00.930><c> fairly</c><00:10:01.080><c> easel</c><00:10:01.380><c> easy</c><00:10:01.800><c> to</c><00:10:02.040><c> stalk</c><00:10:02.280><c> so</c><00:10:02.640><c> you</c>

00:10:02.960 --> 00:10:02.970 align:start position:0%
we're fairly easel easy to stalk so you
 

00:10:02.970 --> 00:10:05.530 align:start position:0%
we're fairly easel easy to stalk so you
know<00:10:03.060><c> you</c><00:10:03.900><c> can</c><00:10:03.930><c> get</c><00:10:04.140><c> in</c><00:10:04.200><c> contact</c><00:10:04.350><c> with</c><00:10:04.590><c> somehow</c>

00:10:05.530 --> 00:10:05.540 align:start position:0%
know you can get in contact with somehow
 

00:10:05.540 --> 00:10:07.370 align:start position:0%
know you can get in contact with somehow
if<00:10:06.540><c> you</c><00:10:06.630><c> have</c><00:10:06.750><c> any</c><00:10:06.870><c> questions</c><00:10:07.170><c> or</c><00:10:07.230><c> comments</c>

00:10:07.370 --> 00:10:07.380 align:start position:0%
if you have any questions or comments
 

00:10:07.380 --> 00:10:09.140 align:start position:0%
if you have any questions or comments
again<00:10:07.710><c> do</c><00:10:08.100><c> we</c><00:10:08.160><c> let</c><00:10:08.280><c> me</c><00:10:08.400><c> or</c><00:10:08.610><c> if</c><00:10:08.730><c> I'm</c><00:10:08.790><c> eating</c><00:10:09.060><c> one</c>

00:10:09.140 --> 00:10:09.150 align:start position:0%
again do we let me or if I'm eating one
 

00:10:09.150 --> 00:10:16.120 align:start position:0%
again do we let me or if I'm eating one
of<00:10:09.180><c> the</c><00:10:09.270><c> brakes</c><00:10:09.450><c> thank</c><00:10:10.020><c> you</c><00:10:10.080><c> very</c><00:10:10.140><c> much</c>

00:10:16.120 --> 00:10:16.130 align:start position:0%
 
 

00:10:16.130 --> 00:10:18.190 align:start position:0%
 
you

