WEBVTT
Kind: captions
Language: en

00:00:00.000 --> 00:00:04.350 align:start position:0%
 
foreign

00:00:04.350 --> 00:00:04.360 align:start position:0%
 
 

00:00:04.360 --> 00:00:13.990 align:start position:0%
 
[Music]

00:00:13.990 --> 00:00:14.000 align:start position:0%
 
 

00:00:14.000 --> 00:00:16.670 align:start position:0%
 
Library<00:00:15.000><c> it</c><00:00:15.540><c> uh</c><00:00:15.960><c> it</c><00:00:16.199><c> doesn't</c><00:00:16.320><c> do</c><00:00:16.500><c> anything</c>

00:00:16.670 --> 00:00:16.680 align:start position:0%
Library it uh it doesn't do anything
 

00:00:16.680 --> 00:00:17.810 align:start position:0%
Library it uh it doesn't do anything
else<00:00:16.980><c> really</c>

00:00:17.810 --> 00:00:17.820 align:start position:0%
else really
 

00:00:17.820 --> 00:00:21.109 align:start position:0%
else really
it's<00:00:17.940><c> just</c><00:00:18.300><c> hyper</c><00:00:18.779><c> focused</c><00:00:19.699><c> it's</c><00:00:20.699><c> used</c><00:00:20.880><c> by</c>

00:00:21.109 --> 00:00:21.119 align:start position:0%
it's just hyper focused it's used by
 

00:00:21.119 --> 00:00:23.390 align:start position:0%
it's just hyper focused it's used by
Dune<00:00:21.600><c> Unstoppable</c><00:00:22.199><c> domains</c>

00:00:23.390 --> 00:00:23.400 align:start position:0%
Dune Unstoppable domains
 

00:00:23.400 --> 00:00:25.790 align:start position:0%
Dune Unstoppable domains
I<00:00:23.939><c> figured</c><00:00:24.300><c> that</c><00:00:24.840><c> uh</c>

00:00:25.790 --> 00:00:25.800 align:start position:0%
I figured that uh
 

00:00:25.800 --> 00:00:27.710 align:start position:0%
I figured that uh
I<00:00:26.220><c> wanted</c><00:00:26.279><c> to</c><00:00:26.460><c> make</c><00:00:26.580><c> a</c><00:00:26.880><c> general</c><00:00:27.000><c> Solution</c>

00:00:27.710 --> 00:00:27.720 align:start position:0%
I wanted to make a general Solution
 

00:00:27.720 --> 00:00:30.349 align:start position:0%
I wanted to make a general Solution
that's<00:00:28.140><c> like</c><00:00:28.380><c> low</c><00:00:28.619><c> level</c><00:00:28.859><c> high</c><00:00:29.820><c> performance</c>

00:00:30.349 --> 00:00:30.359 align:start position:0%
that's like low level high performance
 

00:00:30.359 --> 00:00:32.510 align:start position:0%
that's like low level high performance
that<00:00:30.960><c> people</c><00:00:31.380><c> can</c><00:00:31.619><c> just</c><00:00:31.740><c> build</c><00:00:31.980><c> stuff</c><00:00:32.279><c> on</c>

00:00:32.510 --> 00:00:32.520 align:start position:0%
that people can just build stuff on
 

00:00:32.520 --> 00:00:34.910 align:start position:0%
that people can just build stuff on
here's<00:00:33.300><c> some</c><00:00:33.480><c> just</c><00:00:33.719><c> rough</c><00:00:33.960><c> benchmarks</c><00:00:34.620><c> for</c><00:00:34.739><c> my</c>

00:00:34.910 --> 00:00:34.920 align:start position:0%
here's some just rough benchmarks for my
 

00:00:34.920 --> 00:00:36.290 align:start position:0%
here's some just rough benchmarks for my
laptop

00:00:36.290 --> 00:00:36.300 align:start position:0%
laptop
 

00:00:36.300 --> 00:00:39.229 align:start position:0%
laptop
um<00:00:36.719><c> you</c><00:00:37.140><c> can</c><00:00:37.260><c> do</c><00:00:37.380><c> like</c><00:00:37.559><c> partial</c><00:00:37.920><c> decoding</c><00:00:38.579><c> of</c>

00:00:39.229 --> 00:00:39.239 align:start position:0%
um you can do like partial decoding of
 

00:00:39.239 --> 00:00:42.950 align:start position:0%
um you can do like partial decoding of
uh<00:00:39.540><c> call</c><00:00:39.780><c> data</c><00:00:40.739><c> for</c><00:00:41.219><c> ABI</c><00:00:41.700><c> so</c><00:00:42.059><c> that's</c><00:00:42.239><c> like</c><00:00:42.540><c> the</c>

00:00:42.950 --> 00:00:42.960 align:start position:0%
uh call data for ABI so that's like the
 

00:00:42.960 --> 00:00:45.590 align:start position:0%
uh call data for ABI so that's like the
measured<00:00:43.860><c> nanoseconds</c><00:00:44.640><c> over</c><00:00:44.760><c> there</c>

00:00:45.590 --> 00:00:45.600 align:start position:0%
measured nanoseconds over there
 

00:00:45.600 --> 00:00:47.510 align:start position:0%
measured nanoseconds over there
so<00:00:46.140><c> it</c><00:00:46.260><c> works</c><00:00:46.500><c> with</c><00:00:46.620><c> bytes</c><00:00:47.040><c> instead</c><00:00:47.399><c> of</c>

00:00:47.510 --> 00:00:47.520 align:start position:0%
so it works with bytes instead of
 

00:00:47.520 --> 00:00:50.029 align:start position:0%
so it works with bytes instead of
strings<00:00:47.820><c> so</c><00:00:48.239><c> it's</c><00:00:48.420><c> a</c><00:00:48.719><c> lot</c><00:00:49.020><c> faster</c>

00:00:50.029 --> 00:00:50.039 align:start position:0%
strings so it's a lot faster
 

00:00:50.039 --> 00:00:53.869 align:start position:0%
strings so it's a lot faster
than<00:00:50.579><c> uh</c><00:00:50.940><c> some</c><00:00:51.120><c> other</c><00:00:51.239><c> tools</c><00:00:52.039><c> so</c><00:00:53.039><c> yeah</c><00:00:53.520><c> just</c>

00:00:53.869 --> 00:00:53.879 align:start position:0%
than uh some other tools so yeah just
 

00:00:53.879 --> 00:00:55.729 align:start position:0%
than uh some other tools so yeah just
very<00:00:54.120><c> few</c><00:00:54.360><c> dependencies</c><00:00:55.020><c> supposed</c><00:00:55.379><c> to</c><00:00:55.620><c> be</c>

00:00:55.729 --> 00:00:55.739 align:start position:0%
very few dependencies supposed to be
 

00:00:55.739 --> 00:00:58.310 align:start position:0%
very few dependencies supposed to be
lightweight<00:00:56.460><c> it's</c><00:00:57.059><c> just</c><00:00:57.420><c> sort</c><00:00:57.660><c> of</c><00:00:57.780><c> uh</c><00:00:58.140><c> the</c>

00:00:58.310 --> 00:00:58.320 align:start position:0%
lightweight it's just sort of uh the
 

00:00:58.320 --> 00:01:02.029 align:start position:0%
lightweight it's just sort of uh the
general<00:00:58.500><c> design</c><00:00:59.160><c> philosophy</c><00:01:00.120><c> around</c><00:01:00.899><c> it</c><00:01:01.199><c> and</c>

00:01:02.029 --> 00:01:02.039 align:start position:0%
general design philosophy around it and
 

00:01:02.039 --> 00:01:04.310 align:start position:0%
general design philosophy around it and
yeah<00:01:02.280><c> Java</c><00:01:02.760><c> so</c><00:01:03.000><c> it</c><00:01:03.420><c> does</c><00:01:03.600><c> compatible</c><00:01:04.140><c> with</c>

00:01:04.310 --> 00:01:04.320 align:start position:0%
yeah Java so it does compatible with
 

00:01:04.320 --> 00:01:07.250 align:start position:0%
yeah Java so it does compatible with
Android<00:01:04.680><c> and</c><00:01:05.159><c> kotlin</c><00:01:05.760><c> and</c>

00:01:07.250 --> 00:01:07.260 align:start position:0%
Android and kotlin and
 

00:01:07.260 --> 00:01:10.130 align:start position:0%
Android and kotlin and
um it's<00:01:07.740><c> like</c><00:01:08.040><c> if</c><00:01:08.760><c> you're</c><00:01:09.119><c> using</c><00:01:09.720><c> it</c><00:01:09.840><c> on</c><00:01:10.020><c> like</c>

00:01:10.130 --> 00:01:10.140 align:start position:0%
um it's like if you're using it on like
 

00:01:10.140 --> 00:01:11.750 align:start position:0%
um it's like if you're using it on like
a<00:01:10.380><c> web</c><00:01:10.740><c> server</c>

00:01:11.750 --> 00:01:11.760 align:start position:0%
a web server
 

00:01:11.760 --> 00:01:15.310 align:start position:0%
a web server
using<00:01:12.860><c> decoding</c><00:01:13.860><c> large</c><00:01:14.040><c> amounts</c><00:01:14.460><c> of</c><00:01:14.520><c> data</c>

00:01:15.310 --> 00:01:15.320 align:start position:0%
using decoding large amounts of data
 

00:01:15.320 --> 00:01:17.690 align:start position:0%
using decoding large amounts of data
this<00:01:16.320><c> is</c><00:01:16.439><c> useful</c><00:01:16.740><c> for</c><00:01:16.979><c> something</c><00:01:17.159><c> like</c><00:01:17.460><c> that</c>

00:01:17.690 --> 00:01:17.700 align:start position:0%
this is useful for something like that
 

00:01:17.700 --> 00:01:20.870 align:start position:0%
this is useful for something like that
the<00:01:18.540><c> other</c><00:01:18.840><c> type</c><00:01:19.080><c> of</c><00:01:19.200><c> user</c><00:01:19.560><c> I</c><00:01:19.680><c> have</c><00:01:19.860><c> is</c>

00:01:20.870 --> 00:01:20.880 align:start position:0%
the other type of user I have is
 

00:01:20.880 --> 00:01:22.010 align:start position:0%
the other type of user I have is
um

00:01:22.010 --> 00:01:22.020 align:start position:0%
um
 

00:01:22.020 --> 00:01:23.690 align:start position:0%
um
like<00:01:22.500><c> people</c><00:01:22.680><c> are</c><00:01:22.860><c> trying</c><00:01:23.040><c> to</c><00:01:23.159><c> work</c><00:01:23.280><c> with</c><00:01:23.460><c> like</c>

00:01:23.690 --> 00:01:23.700 align:start position:0%
like people are trying to work with like
 

00:01:23.700 --> 00:01:26.690 align:start position:0%
like people are trying to work with like
an<00:01:23.820><c> array</c><00:01:24.119><c> of</c><00:01:24.240><c> structs</c><00:01:24.840><c> inside</c><00:01:25.680><c> a</c><00:01:25.979><c> struct</c><00:01:26.340><c> and</c>

00:01:26.690 --> 00:01:26.700 align:start position:0%
an array of structs inside a struct and
 

00:01:26.700 --> 00:01:29.590 align:start position:0%
an array of structs inside a struct and
like<00:01:27.420><c> other</c><00:01:27.600><c> tools</c><00:01:28.020><c> aren't</c><00:01:28.200><c> working</c><00:01:28.560><c> for</c><00:01:29.220><c> them</c>

00:01:29.590 --> 00:01:29.600 align:start position:0%
like other tools aren't working for them
 

00:01:29.600 --> 00:01:34.870 align:start position:0%
like other tools aren't working for them
so<00:01:30.600><c> uh</c><00:01:31.140><c> like</c><00:01:31.680><c> mine</c><00:01:31.920><c> can</c><00:01:32.100><c> decode</c><00:01:32.460><c> any</c><00:01:32.820><c> arbitrary</c>

00:01:34.870 --> 00:01:34.880 align:start position:0%
so uh like mine can decode any arbitrary
 

00:01:34.880 --> 00:01:37.550 align:start position:0%
so uh like mine can decode any arbitrary
function<00:01:35.880><c> signature</c>

00:01:37.550 --> 00:01:37.560 align:start position:0%
function signature
 

00:01:37.560 --> 00:01:39.590 align:start position:0%
function signature
or<00:01:38.040><c> data</c><00:01:38.400><c> that</c><00:01:38.520><c> matches</c><00:01:38.880><c> any</c><00:01:39.180><c> function</c>

00:01:39.590 --> 00:01:39.600 align:start position:0%
or data that matches any function
 

00:01:39.600 --> 00:01:42.050 align:start position:0%
or data that matches any function
signature<00:01:40.200><c> so</c><00:01:40.680><c> here's</c><00:01:40.979><c> the</c><00:01:41.100><c> API</c><00:01:41.460><c> for</c><00:01:41.700><c> like</c><00:01:41.880><c> the</c>

00:01:42.050 --> 00:01:42.060 align:start position:0%
signature so here's the API for like the
 

00:01:42.060 --> 00:01:44.929 align:start position:0%
signature so here's the API for like the
rlp<00:01:42.540><c> stuff</c><00:01:42.780><c> this</c><00:01:43.320><c> is</c><00:01:43.500><c> different</c><00:01:44.280><c> because</c><00:01:44.520><c> uses</c>

00:01:44.929 --> 00:01:44.939 align:start position:0%
rlp stuff this is different because uses
 

00:01:44.939 --> 00:01:47.330 align:start position:0%
rlp stuff this is different because uses
an<00:01:45.119><c> iterator</c><00:01:45.420><c> pattern</c><00:01:45.900><c> and</c><00:01:46.259><c> it</c><00:01:46.439><c> decodes</c><00:01:47.040><c> on</c>

00:01:47.330 --> 00:01:47.340 align:start position:0%
an iterator pattern and it decodes on
 

00:01:47.340 --> 00:01:51.350 align:start position:0%
an iterator pattern and it decodes on
demand<00:01:47.700><c> instead</c><00:01:48.299><c> of</c><00:01:48.420><c> uh</c><00:01:48.840><c> eagerly</c><00:01:49.619><c> yeah</c><00:01:50.460><c> all</c>

00:01:51.350 --> 00:01:51.360 align:start position:0%
demand instead of uh eagerly yeah all
 

00:01:51.360 --> 00:01:54.230 align:start position:0%
demand instead of uh eagerly yeah all
these<00:01:51.540><c> objects</c><00:01:51.899><c> just</c><00:01:52.079><c> sort</c><00:01:52.259><c> of</c><00:01:52.439><c> point</c><00:01:52.619><c> at</c><00:01:53.159><c> uh</c>

00:01:54.230 --> 00:01:54.240 align:start position:0%
these objects just sort of point at uh
 

00:01:54.240 --> 00:01:57.170 align:start position:0%
these objects just sort of point at uh
at<00:01:54.780><c> a</c><00:01:54.960><c> bite</c><00:01:55.140><c> buffer</c><00:01:55.619><c> and</c><00:01:56.040><c> uh</c><00:01:56.340><c> you</c><00:01:56.640><c> can</c><00:01:56.759><c> decode</c>

00:01:57.170 --> 00:01:57.180 align:start position:0%
at a bite buffer and uh you can decode
 

00:01:57.180 --> 00:02:01.010 align:start position:0%
at a bite buffer and uh you can decode
directly<00:01:57.840><c> from</c><00:01:58.020><c> the</c><00:01:58.200><c> byte</c><00:01:58.500><c> buffer</c><00:01:58.860><c> on</c><00:01:59.100><c> demand</c>

00:02:01.010 --> 00:02:01.020 align:start position:0%
directly from the byte buffer on demand
 

00:02:01.020 --> 00:02:03.830 align:start position:0%
directly from the byte buffer on demand
and<00:02:01.619><c> so</c><00:02:01.799><c> it</c><00:02:01.979><c> saves</c><00:02:02.280><c> some</c><00:02:02.399><c> time</c><00:02:02.579><c> there</c>

00:02:03.830 --> 00:02:03.840 align:start position:0%
and so it saves some time there
 

00:02:03.840 --> 00:02:06.410 align:start position:0%
and so it saves some time there
and<00:02:04.259><c> then</c><00:02:04.380><c> here's</c><00:02:04.680><c> like</c><00:02:04.799><c> the</c><00:02:04.979><c> ABI</c><00:02:05.460><c> stuff</c>

00:02:06.410 --> 00:02:06.420 align:start position:0%
and then here's like the ABI stuff
 

00:02:06.420 --> 00:02:08.150 align:start position:0%
and then here's like the ABI stuff
so<00:02:06.840><c> all</c><00:02:07.079><c> the</c><00:02:07.200><c> objects</c><00:02:07.500><c> are</c><00:02:07.619><c> meant</c><00:02:07.920><c> to</c><00:02:08.039><c> be</c>

00:02:08.150 --> 00:02:08.160 align:start position:0%
so all the objects are meant to be
 

00:02:08.160 --> 00:02:10.729 align:start position:0%
so all the objects are meant to be
reused<00:02:08.700><c> many</c><00:02:09.060><c> times</c><00:02:09.360><c> like</c><00:02:10.259><c> the</c><00:02:10.440><c> function</c>

00:02:10.729 --> 00:02:10.739 align:start position:0%
reused many times like the function
 

00:02:10.739 --> 00:02:12.949 align:start position:0%
reused many times like the function
object<00:02:11.160><c> and</c><00:02:11.520><c> they're</c><00:02:11.760><c> stateless</c><00:02:12.180><c> so</c><00:02:12.480><c> you</c><00:02:12.840><c> can</c>

00:02:12.949 --> 00:02:12.959 align:start position:0%
object and they're stateless so you can
 

00:02:12.959 --> 00:02:14.869 align:start position:0%
object and they're stateless so you can
share<00:02:13.080><c> them</c><00:02:13.260><c> across</c><00:02:13.620><c> threads</c><00:02:14.040><c> or</c><00:02:14.640><c> between</c>

00:02:14.869 --> 00:02:14.879 align:start position:0%
share them across threads or between
 

00:02:14.879 --> 00:02:18.589 align:start position:0%
share them across threads or between
code<00:02:15.360><c> there's</c><00:02:16.319><c> some</c><00:02:16.560><c> decoding</c><00:02:17.160><c> it</c><00:02:18.060><c> also</c><00:02:18.300><c> deals</c>

00:02:18.589 --> 00:02:18.599 align:start position:0%
code there's some decoding it also deals
 

00:02:18.599 --> 00:02:20.990 align:start position:0%
code there's some decoding it also deals
with<00:02:18.780><c> Json</c>

00:02:20.990 --> 00:02:21.000 align:start position:0%
with Json
 

00:02:21.000 --> 00:02:23.210 align:start position:0%
with Json
so<00:02:21.480><c> you</c><00:02:21.660><c> can</c><00:02:21.720><c> like</c><00:02:21.900><c> parse</c><00:02:22.260><c> Json</c><00:02:22.560><c> and</c><00:02:22.860><c> create</c><00:02:23.040><c> a</c>

00:02:23.210 --> 00:02:23.220 align:start position:0%
so you can like parse Json and create a
 

00:02:23.220 --> 00:02:24.830 align:start position:0%
so you can like parse Json and create a
function<00:02:23.400><c> from</c><00:02:23.700><c> Json</c>

00:02:24.830 --> 00:02:24.840 align:start position:0%
function from Json
 

00:02:24.840 --> 00:02:28.790 align:start position:0%
function from Json
uh<00:02:25.500><c> it</c><00:02:25.680><c> also</c><00:02:25.980><c> does</c><00:02:26.400><c> event</c><00:02:26.819><c> decoding</c><00:02:27.540><c> as</c><00:02:28.379><c> added</c>

00:02:28.790 --> 00:02:28.800 align:start position:0%
uh it also does event decoding as added
 

00:02:28.800 --> 00:02:30.470 align:start position:0%
uh it also does event decoding as added
recently

00:02:30.470 --> 00:02:30.480 align:start position:0%
recently
 

00:02:30.480 --> 00:02:33.650 align:start position:0%
recently
um<00:02:30.959><c> so</c><00:02:31.500><c> just</c><00:02:31.680><c> hear</c><00:02:31.860><c> some</c><00:02:32.099><c> details</c><00:02:32.580><c> on</c>

00:02:33.650 --> 00:02:33.660 align:start position:0%
um so just hear some details on
 

00:02:33.660 --> 00:02:35.210 align:start position:0%
um so just hear some details on
you<00:02:34.080><c> know</c><00:02:34.140><c> how</c><00:02:34.319><c> I</c><00:02:34.440><c> got</c><00:02:34.560><c> the</c><00:02:34.739><c> performance</c>

00:02:35.210 --> 00:02:35.220 align:start position:0%
you know how I got the performance
 

00:02:35.220 --> 00:02:38.270 align:start position:0%
you know how I got the performance
benefits<00:02:35.840><c> from</c><00:02:36.840><c> you</c><00:02:37.200><c> know</c><00:02:37.260><c> using</c><00:02:37.560><c> byte</c><00:02:37.920><c> buffer</c>

00:02:38.270 --> 00:02:38.280 align:start position:0%
benefits from you know using byte buffer
 

00:02:38.280 --> 00:02:39.430 align:start position:0%
benefits from you know using byte buffer
and

00:02:39.430 --> 00:02:39.440 align:start position:0%
and
 

00:02:39.440 --> 00:02:42.530 align:start position:0%
and
pre-calculating<00:02:40.440><c> things</c><00:02:41.160><c> and</c><00:02:41.700><c> and</c><00:02:42.180><c> holding</c>

00:02:42.530 --> 00:02:42.540 align:start position:0%
pre-calculating things and and holding
 

00:02:42.540 --> 00:02:44.449 align:start position:0%
pre-calculating things and and holding
on<00:02:42.660><c> to</c><00:02:42.780><c> them</c><00:02:42.959><c> for</c><00:02:43.200><c> like</c><00:02:43.379><c> multiple</c><00:02:43.860><c> encodings</c>

00:02:44.449 --> 00:02:44.459 align:start position:0%
on to them for like multiple encodings
 

00:02:44.459 --> 00:02:46.490 align:start position:0%
on to them for like multiple encodings
and<00:02:44.640><c> decodings</c><00:02:45.239><c> yeah</c><00:02:45.959><c> and</c><00:02:46.140><c> there's</c><00:02:46.260><c> some</c>

00:02:46.490 --> 00:02:46.500 align:start position:0%
and decodings yeah and there's some
 

00:02:46.500 --> 00:02:48.770 align:start position:0%
and decodings yeah and there's some
denial<00:02:46.800><c> of</c><00:02:46.920><c> service</c><00:02:47.099><c> protection</c>

00:02:48.770 --> 00:02:48.780 align:start position:0%
denial of service protection
 

00:02:48.780 --> 00:02:51.530 align:start position:0%
denial of service protection
for<00:02:49.560><c> if</c><00:02:50.160><c> you're</c><00:02:50.280><c> decoding</c><00:02:50.760><c> like</c><00:02:50.940><c> untrusted</c>

00:02:51.530 --> 00:02:51.540 align:start position:0%
for if you're decoding like untrusted
 

00:02:51.540 --> 00:02:53.630 align:start position:0%
for if you're decoding like untrusted
data<00:02:51.900><c> that</c><00:02:52.200><c> wants</c><00:02:52.620><c> to</c><00:02:52.680><c> allocate</c><00:02:53.099><c> like</c><00:02:53.340><c> a</c><00:02:53.459><c> huge</c>

00:02:53.630 --> 00:02:53.640 align:start position:0%
data that wants to allocate like a huge
 

00:02:53.640 --> 00:02:56.990 align:start position:0%
data that wants to allocate like a huge
array<00:02:54.000><c> it'll</c><00:02:54.780><c> throw</c><00:02:54.959><c> an</c><00:02:55.200><c> exception</c><00:02:56.000><c> instead</c>

00:02:56.990 --> 00:02:57.000 align:start position:0%
array it'll throw an exception instead
 

00:02:57.000 --> 00:02:59.690 align:start position:0%
array it'll throw an exception instead
of<00:02:57.060><c> like</c><00:02:57.239><c> allocating</c><00:02:57.660><c> a</c><00:02:57.900><c> gigabyte</c><00:02:58.500><c> of</c><00:02:59.340><c> uh</c>

00:02:59.690 --> 00:02:59.700 align:start position:0%
of like allocating a gigabyte of uh
 

00:02:59.700 --> 00:03:03.949 align:start position:0%
of like allocating a gigabyte of uh
memory<00:03:01.140><c> yeah</c><00:03:01.739><c> future</c><00:03:02.040><c> work</c><00:03:02.340><c> might</c><00:03:02.700><c> involve</c>

00:03:03.949 --> 00:03:03.959 align:start position:0%
memory yeah future work might involve
 

00:03:03.959 --> 00:03:05.089 align:start position:0%
memory yeah future work might involve
um

00:03:05.089 --> 00:03:05.099 align:start position:0%
um
 

00:03:05.099 --> 00:03:07.250 align:start position:0%
um
doing<00:03:05.640><c> like</c><00:03:05.879><c> more</c><00:03:06.060><c> partial</c><00:03:06.420><c> decodes</c><00:03:06.900><c> like</c>

00:03:07.250 --> 00:03:07.260 align:start position:0%
doing like more partial decodes like
 

00:03:07.260 --> 00:03:10.070 align:start position:0%
doing like more partial decodes like
querying<00:03:07.800><c> like</c><00:03:08.400><c> nested</c><00:03:09.000><c> tuples</c>

00:03:10.070 --> 00:03:10.080 align:start position:0%
querying like nested tuples
 

00:03:10.080 --> 00:03:12.229 align:start position:0%
querying like nested tuples
so<00:03:10.500><c> like</c><00:03:10.680><c> going</c><00:03:10.860><c> to</c><00:03:11.099><c> a</c><00:03:11.280><c> specific</c><00:03:11.519><c> index</c><00:03:12.000><c> and</c>

00:03:12.229 --> 00:03:12.239 align:start position:0%
so like going to a specific index and
 

00:03:12.239 --> 00:03:13.729 align:start position:0%
so like going to a specific index and
then<00:03:12.360><c> if</c><00:03:12.540><c> that's</c><00:03:12.659><c> a</c><00:03:12.840><c> tuple</c><00:03:13.260><c> go</c><00:03:13.500><c> ahead</c><00:03:13.620><c> and</c>

00:03:13.729 --> 00:03:13.739 align:start position:0%
then if that's a tuple go ahead and
 

00:03:13.739 --> 00:03:16.130 align:start position:0%
then if that's a tuple go ahead and
index<00:03:14.040><c> and</c><00:03:14.400><c> that</c><00:03:14.640><c> and</c><00:03:15.120><c> just</c><00:03:15.300><c> pick</c><00:03:15.480><c> out</c><00:03:15.720><c> the</c>

00:03:16.130 --> 00:03:16.140 align:start position:0%
index and that and just pick out the
 

00:03:16.140 --> 00:03:18.649 align:start position:0%
index and that and just pick out the
thing<00:03:16.440><c> you</c><00:03:16.620><c> want</c><00:03:16.800><c> to</c><00:03:16.920><c> decode</c><00:03:17.340><c> and</c><00:03:17.819><c> just</c><00:03:18.000><c> ignore</c>

00:03:18.649 --> 00:03:18.659 align:start position:0%
thing you want to decode and just ignore
 

00:03:18.659 --> 00:03:21.050 align:start position:0%
thing you want to decode and just ignore
everything<00:03:18.840><c> else</c>

00:03:21.050 --> 00:03:21.060 align:start position:0%
everything else
 

00:03:21.060 --> 00:03:24.830 align:start position:0%
everything else
um<00:03:21.659><c> but</c><00:03:22.019><c> it</c><00:03:22.140><c> requires</c><00:03:22.500><c> like</c><00:03:22.680><c> jumping</c><00:03:23.099><c> around</c>

00:03:24.830 --> 00:03:24.840 align:start position:0%
um but it requires like jumping around
 

00:03:24.840 --> 00:03:27.410 align:start position:0%
um but it requires like jumping around
um<00:03:25.260><c> the</c><00:03:25.800><c> index</c><00:03:26.099><c> and</c><00:03:26.280><c> stuff</c>

00:03:27.410 --> 00:03:27.420 align:start position:0%
um the index and stuff
 

00:03:27.420 --> 00:03:29.570 align:start position:0%
um the index and stuff
and<00:03:28.260><c> then</c><00:03:28.440><c> yeah</c><00:03:28.800><c> I've</c><00:03:28.980><c> been</c><00:03:29.099><c> talking</c><00:03:29.280><c> to</c><00:03:29.400><c> some</c>

00:03:29.570 --> 00:03:29.580 align:start position:0%
and then yeah I've been talking to some
 

00:03:29.580 --> 00:03:33.130 align:start position:0%
and then yeah I've been talking to some
people<00:03:29.760><c> recently</c><00:03:30.239><c> about</c><00:03:30.480><c> a</c><00:03:30.840><c> possible</c><00:03:31.140><c> ABI</c><00:03:31.620><c> V3</c>

00:03:33.130 --> 00:03:33.140 align:start position:0%
people recently about a possible ABI V3
 

00:03:33.140 --> 00:03:34.729 align:start position:0%
people recently about a possible ABI V3
so

00:03:34.729 --> 00:03:34.739 align:start position:0%
so
 

00:03:34.739 --> 00:03:36.830 align:start position:0%
so
um<00:03:34.800><c> like</c><00:03:35.099><c> I</c><00:03:35.519><c> wrote</c><00:03:35.640><c> a</c><00:03:35.819><c> command</c><00:03:36.120><c> line</c><00:03:36.239><c> interface</c>

00:03:36.830 --> 00:03:36.840 align:start position:0%
um like I wrote a command line interface
 

00:03:36.840 --> 00:03:40.789 align:start position:0%
um like I wrote a command line interface
that<00:03:37.080><c> can</c><00:03:37.400><c> encode</c><00:03:38.400><c> arguments</c><00:03:39.000><c> as</c><00:03:39.180><c> rlp</c>

00:03:40.789 --> 00:03:40.799 align:start position:0%
that can encode arguments as rlp
 

00:03:40.799 --> 00:03:44.330 align:start position:0%
that can encode arguments as rlp
and<00:03:41.700><c> uses</c><00:03:42.420><c> a</c><00:03:42.599><c> lot</c><00:03:42.659><c> less</c><00:03:42.900><c> uh</c>

00:03:44.330 --> 00:03:44.340 align:start position:0%
and uses a lot less uh
 

00:03:44.340 --> 00:03:46.210 align:start position:0%
and uses a lot less uh
bytes<00:03:44.879><c> because</c><00:03:45.000><c> you</c><00:03:45.180><c> don't</c><00:03:45.299><c> have</c><00:03:45.480><c> an</c><00:03:45.720><c> offset</c>

00:03:46.210 --> 00:03:46.220 align:start position:0%
bytes because you don't have an offset
 

00:03:46.220 --> 00:03:50.390 align:start position:0%
bytes because you don't have an offset
and<00:03:47.220><c> all</c><00:03:47.459><c> this</c><00:03:47.760><c> zero</c><00:03:48.420><c> padding</c><00:03:48.840><c> and</c><00:03:49.500><c> stuff</c><00:03:50.159><c> like</c>

00:03:50.390 --> 00:03:50.400 align:start position:0%
and all this zero padding and stuff like
 

00:03:50.400 --> 00:03:51.770 align:start position:0%
and all this zero padding and stuff like
that

00:03:51.770 --> 00:03:51.780 align:start position:0%
that
 

00:03:51.780 --> 00:03:54.710 align:start position:0%
that
so<00:03:52.500><c> and</c><00:03:52.799><c> then</c><00:03:52.980><c> you</c><00:03:53.159><c> can</c><00:03:53.280><c> try</c><00:03:53.700><c> that</c><00:03:54.180><c> out</c><00:03:54.360><c> if</c><00:03:54.659><c> you</c>

00:03:54.710 --> 00:03:54.720 align:start position:0%
so and then you can try that out if you
 

00:03:54.720 --> 00:03:55.690 align:start position:0%
so and then you can try that out if you
want

00:03:55.690 --> 00:03:55.700 align:start position:0%
want
 

00:03:55.700 --> 00:03:58.430 align:start position:0%
want
headlong<00:03:56.700><c> clis</c><00:03:57.360><c> like</c><00:03:57.840><c> the</c><00:03:58.019><c> command</c><00:03:58.319><c> line</c>

00:03:58.430 --> 00:03:58.440 align:start position:0%
headlong clis like the command line
 

00:03:58.440 --> 00:03:59.710 align:start position:0%
headlong clis like the command line
interface

00:03:59.710 --> 00:03:59.720 align:start position:0%
interface
 

00:03:59.720 --> 00:04:03.289 align:start position:0%
interface
and<00:04:00.720><c> uh</c><00:04:01.560><c> yeah</c><00:04:02.099><c> faster</c><00:04:02.340><c> simpler</c><00:04:02.940><c> software</c>

00:04:03.289 --> 00:04:03.299 align:start position:0%
and uh yeah faster simpler software
 

00:04:03.299 --> 00:04:06.229 align:start position:0%
and uh yeah faster simpler software
Legos<00:04:03.720><c> I</c><00:04:03.959><c> kind</c><00:04:04.140><c> of</c><00:04:04.260><c> just</c><00:04:04.379><c> want</c><00:04:04.560><c> people</c><00:04:04.920><c> to</c><00:04:05.400><c> uh</c>

00:04:06.229 --> 00:04:06.239 align:start position:0%
Legos I kind of just want people to uh
 

00:04:06.239 --> 00:04:08.509 align:start position:0%
Legos I kind of just want people to uh
you<00:04:06.720><c> know</c><00:04:06.840><c> be</c><00:04:07.019><c> able</c><00:04:07.140><c> to</c><00:04:07.319><c> build</c>

00:04:08.509 --> 00:04:08.519 align:start position:0%
you know be able to build
 

00:04:08.519 --> 00:04:10.250 align:start position:0%
you know be able to build
um<00:04:08.580><c> modular</c><00:04:09.180><c> stuff</c>

00:04:10.250 --> 00:04:10.260 align:start position:0%
um modular stuff
 

00:04:10.260 --> 00:04:11.990 align:start position:0%
um modular stuff
just<00:04:10.920><c> so</c>

00:04:11.990 --> 00:04:12.000 align:start position:0%
just so
 

00:04:12.000 --> 00:04:13.910 align:start position:0%
just so
that<00:04:12.540><c> you're</c><00:04:12.780><c> not</c><00:04:12.900><c> like</c><00:04:13.080><c> weighted</c><00:04:13.500><c> down</c><00:04:13.620><c> by</c>

00:04:13.910 --> 00:04:13.920 align:start position:0%
that you're not like weighted down by
 

00:04:13.920 --> 00:04:15.830 align:start position:0%
that you're not like weighted down by
all<00:04:14.040><c> these</c><00:04:14.280><c> dependencies</c><00:04:14.879><c> and</c><00:04:15.239><c> like</c><00:04:15.480><c> complex</c>

00:04:15.830 --> 00:04:15.840 align:start position:0%
all these dependencies and like complex
 

00:04:15.840 --> 00:04:17.210 align:start position:0%
all these dependencies and like complex
Frameworks<00:04:16.440><c> where</c><00:04:16.620><c> you</c><00:04:16.739><c> have</c><00:04:16.799><c> to</c><00:04:16.919><c> read</c><00:04:17.040><c> all</c>

00:04:17.210 --> 00:04:17.220 align:start position:0%
Frameworks where you have to read all
 

00:04:17.220 --> 00:04:18.949 align:start position:0%
Frameworks where you have to read all
this<00:04:17.400><c> documentation</c>

00:04:18.949 --> 00:04:18.959 align:start position:0%
this documentation
 

00:04:18.959 --> 00:04:20.449 align:start position:0%
this documentation
and

00:04:20.449 --> 00:04:20.459 align:start position:0%
and
 

00:04:20.459 --> 00:04:22.909 align:start position:0%
and
um just<00:04:21.060><c> build</c><00:04:21.299><c> something</c><00:04:21.540><c> to</c><00:04:21.840><c> last</c><00:04:22.139><c> and</c><00:04:22.740><c> then</c>

00:04:22.909 --> 00:04:22.919 align:start position:0%
um just build something to last and then
 

00:04:22.919 --> 00:04:25.129 align:start position:0%
um just build something to last and then
special<00:04:23.160><c> thanks</c><00:04:23.520><c> to</c><00:04:24.000><c> Victor</c><00:04:24.300><c> dylapine</c>

00:04:25.129 --> 00:04:25.139 align:start position:0%
special thanks to Victor dylapine
 

00:04:25.139 --> 00:04:28.129 align:start position:0%
special thanks to Victor dylapine
because<00:04:25.560><c> uh</c><00:04:26.100><c> he</c><00:04:26.280><c> added</c><00:04:26.639><c> some</c><00:04:26.880><c> code</c>

00:04:28.129 --> 00:04:28.139 align:start position:0%
because uh he added some code
 

00:04:28.139 --> 00:04:31.189 align:start position:0%
because uh he added some code
that<00:04:28.800><c> now</c><00:04:29.220><c> I</c><00:04:29.520><c> can</c><00:04:29.699><c> decode</c><00:04:30.660><c> events</c><00:04:31.080><c> with</c>

00:04:31.189 --> 00:04:31.199 align:start position:0%
that now I can decode events with
 

00:04:31.199 --> 00:04:32.469 align:start position:0%
that now I can decode events with
headlong

00:04:32.469 --> 00:04:32.479 align:start position:0%
headlong
 

00:04:32.479 --> 00:04:36.050 align:start position:0%
headlong
and<00:04:33.479><c> thanks</c><00:04:33.780><c> do</c><00:04:34.680><c> you</c><00:04:34.860><c> have</c><00:04:34.919><c> any</c><00:04:35.040><c> plans</c><00:04:35.280><c> for</c><00:04:35.520><c> SSD</c>

00:04:36.050 --> 00:04:36.060 align:start position:0%
and thanks do you have any plans for SSD
 

00:04:36.060 --> 00:04:37.490 align:start position:0%
and thanks do you have any plans for SSD
support

00:04:37.490 --> 00:04:37.500 align:start position:0%
support
 

00:04:37.500 --> 00:04:40.730 align:start position:0%
support
uh<00:04:38.400><c> not</c><00:04:38.639><c> right</c><00:04:38.820><c> now</c><00:04:38.940><c> I</c><00:04:39.240><c> thought</c><00:04:39.419><c> about</c><00:04:39.740><c> maybe</c>

00:04:40.730 --> 00:04:40.740 align:start position:0%
uh not right now I thought about maybe
 

00:04:40.740 --> 00:04:43.610 align:start position:0%
uh not right now I thought about maybe
implementing<00:04:41.460><c> something</c><00:04:41.759><c> separate</c><00:04:42.360><c> for</c><00:04:43.259><c> SSE</c>

00:04:43.610 --> 00:04:43.620 align:start position:0%
implementing something separate for SSE
 

00:04:43.620 --> 00:04:45.409 align:start position:0%
implementing something separate for SSE
but<00:04:44.280><c> uh</c>

00:04:45.409 --> 00:04:45.419 align:start position:0%
but uh
 

00:04:45.419 --> 00:04:48.110 align:start position:0%
but uh
I<00:04:45.840><c> don't</c><00:04:45.900><c> know</c><00:04:46.020><c> if</c><00:04:46.139><c> I'm</c><00:04:46.320><c> gonna</c><00:04:46.440><c> so</c><00:04:47.040><c> maybe</c>

00:04:48.110 --> 00:04:48.120 align:start position:0%
I don't know if I'm gonna so maybe
 

00:04:48.120 --> 00:04:51.530 align:start position:0%
I don't know if I'm gonna so maybe
what<00:04:48.600><c> does</c><00:04:48.840><c> he</c><00:04:49.139><c> uh</c><00:04:49.680><c> good</c><00:04:50.280><c> use</c><00:04:50.580><c> cases</c><00:04:50.940><c> for</c><00:04:51.300><c> this</c>

00:04:51.530 --> 00:04:51.540 align:start position:0%
what does he uh good use cases for this
 

00:04:51.540 --> 00:04:52.610 align:start position:0%
what does he uh good use cases for this
Library

00:04:52.610 --> 00:04:52.620 align:start position:0%
Library
 

00:04:52.620 --> 00:04:56.270 align:start position:0%
Library
I'll<00:04:53.160><c> do</c><00:04:53.400><c> an</c><00:04:53.520><c> analytics</c><00:04:54.120><c> uh</c><00:04:55.080><c> start</c><00:04:55.620><c> using</c><00:04:56.100><c> it</c>

00:04:56.270 --> 00:04:56.280 align:start position:0%
I'll do an analytics uh start using it
 

00:04:56.280 --> 00:04:59.870 align:start position:0%
I'll do an analytics uh start using it
for<00:04:56.820><c> like</c><00:04:57.180><c> ingesting</c><00:04:58.080><c> large</c><00:04:58.320><c> amounts</c><00:04:58.740><c> of</c><00:04:58.800><c> data</c>

00:04:59.870 --> 00:04:59.880 align:start position:0%
for like ingesting large amounts of data
 

00:04:59.880 --> 00:05:02.390 align:start position:0%
for like ingesting large amounts of data
so<00:05:00.300><c> they</c><00:05:00.479><c> can</c><00:05:00.720><c> put</c><00:05:01.199><c> it</c><00:05:01.320><c> into</c><00:05:01.380><c> databases</c><00:05:02.100><c> and</c>

00:05:02.390 --> 00:05:02.400 align:start position:0%
so they can put it into databases and
 

00:05:02.400 --> 00:05:03.830 align:start position:0%
so they can put it into databases and
like<00:05:02.520><c> query</c><00:05:02.880><c> it</c>

00:05:03.830 --> 00:05:03.840 align:start position:0%
like query it
 

00:05:03.840 --> 00:05:06.110 align:start position:0%
like query it
so<00:05:04.500><c> like</c><00:05:04.680><c> if</c><00:05:05.040><c> you</c><00:05:05.160><c> have</c><00:05:05.340><c> a</c><00:05:05.460><c> lot</c><00:05:05.520><c> of</c><00:05:05.699><c> historical</c>

00:05:06.110 --> 00:05:06.120 align:start position:0%
so like if you have a lot of historical
 

00:05:06.120 --> 00:05:09.830 align:start position:0%
so like if you have a lot of historical
data<00:05:06.900><c> lying</c><00:05:07.440><c> around</c><00:05:07.620><c> do</c><00:05:08.100><c> you</c><00:05:08.220><c> want</c><00:05:08.340><c> to</c><00:05:09.000><c> decode</c>

00:05:09.830 --> 00:05:09.840 align:start position:0%
data lying around do you want to decode
 

00:05:09.840 --> 00:05:11.710 align:start position:0%
data lying around do you want to decode
like<00:05:10.080><c> huge</c><00:05:10.320><c> amounts</c><00:05:10.680><c> of</c><00:05:10.740><c> it</c>

00:05:11.710 --> 00:05:11.720 align:start position:0%
like huge amounts of it
 

00:05:11.720 --> 00:05:15.350 align:start position:0%
like huge amounts of it
and<00:05:12.720><c> gain</c><00:05:13.380><c> insights</c><00:05:13.919><c> from</c><00:05:14.040><c> data</c><00:05:14.400><c> and</c><00:05:14.520><c> stuff</c>

00:05:15.350 --> 00:05:15.360 align:start position:0%
and gain insights from data and stuff
 

00:05:15.360 --> 00:05:18.710 align:start position:0%
and gain insights from data and stuff
otherwise<00:05:16.580><c> it's</c><00:05:17.580><c> just</c><00:05:17.759><c> designed</c><00:05:18.180><c> to</c><00:05:18.300><c> work</c><00:05:18.479><c> in</c>

00:05:18.710 --> 00:05:18.720 align:start position:0%
otherwise it's just designed to work in
 

00:05:18.720 --> 00:05:20.990 align:start position:0%
otherwise it's just designed to work in
every<00:05:18.900><c> possible</c><00:05:19.259><c> case</c><00:05:19.560><c> nested</c><00:05:20.160><c> arrays</c><00:05:20.580><c> nested</c>

00:05:20.990 --> 00:05:21.000 align:start position:0%
every possible case nested arrays nested
 

00:05:21.000 --> 00:05:24.590 align:start position:0%
every possible case nested arrays nested
tuples<00:05:21.500><c> tubular</c><00:05:22.500><c> Rays</c><00:05:22.919><c> drugs</c><00:05:23.460><c> and</c><00:05:23.580><c> stuff</c><00:05:23.759><c> oh</c>

00:05:24.590 --> 00:05:24.600 align:start position:0%
tuples tubular Rays drugs and stuff oh
 

00:05:24.600 --> 00:05:26.390 align:start position:0%
tuples tubular Rays drugs and stuff oh
and<00:05:24.780><c> there's</c><00:05:24.900><c> no</c><00:05:25.020><c> code</c><00:05:25.259><c> generation</c><00:05:25.740><c> so</c><00:05:26.160><c> it's</c>

00:05:26.390 --> 00:05:26.400 align:start position:0%
and there's no code generation so it's
 

00:05:26.400 --> 00:05:28.249 align:start position:0%
and there's no code generation so it's
all<00:05:26.820><c> just</c>

00:05:28.249 --> 00:05:28.259 align:start position:0%
all just
 

00:05:28.259 --> 00:05:32.960 align:start position:0%
all just
very<00:05:28.800><c> uh</c><00:05:29.340><c> traditional</c><00:05:30.300><c> that</c><00:05:30.780><c> way</c>

