TFTC: A Bitcoin Podcast - #189: Fabian Jahr
Episode Date: September 1, 2020Join Marty as he sits down with Bitcoin Core contributor Fabian Jahr to discuss: - Fabian's year since leaving the Chaincode residency - His OKCoin grant - The importance of code review - An optimal r...eview:PR ratio for devs - Signet - gettxoutsetinfo and Supply Gate - PR Review Club - How to best fund devs - much more Follow Fabian on Twitter Shoutout to this week's sponsors. Cash App. Start #stackingsats today. Use the promo code: "stackingsats" to receive $10 and contribute $10 to OWLS Lacrosse when you download the app.
Transcript
Discussion (0)
What's up freaks, it's your boy Marty here. To introduce this episode of Tales from the Crypt, I had the immense pleasure of sitting back down with Fabian Yar, Bitcoin Core contributor, reviewer extraordinaire, and somebody who has been working on the RPC call that has gotten a lot of attention recently as Bitcoin users have been attempting successfully to audit the supply of Bitcoin.
uh gotta gotta say it right now i know you freaks are waiting on the the live bit block boom
episode that we recorded in dallas over the weekend incredible event incredible time great
to be together with with bitcoiners in person it was a special event a special weekend vibes were
high uh of course i plan on posting that rabbit hole recap i'm just waiting on the audio all
This isn't a me problem.
This is an audiophile problem.
Literally has not been sent to me yet.
So I cannot upload the episode.
Patience.
Patience is key.
Lower your time preference.
Maybe this rabbit hole recap drops after the rabbit hole recap that Matt and I record on Thursday.
I hope not, but it may.
Back to the episode.
Out of hand right now.
My discussion with Fabian.
I think you guys are really going to like it.
pay attention to what he's saying about reviewing
and the review to PR ratio for developers.
This is something that Bitcoin users,
but more importantly, developers,
should probably pay attention to
and take into consideration.
Review, review, review is extremely important.
This episode is brought to you by our good friends
at the motherfucking Cash App.
You freaks should know all about them,
but if you don't know about them,
let me tell you about them, all right?
They're the easiest place to stack sats
in the united states all right you can stack sats send sats receive sats and sell sats if you so
please you're hearing sat sat sat sat sats why is that because sats are the standard right we're
stacking whole sats we're not buying fractions of bitcoin you can make sats the standard on the
cash app uh it's incredible i saw a product tease earlier today a little screenshot i don't know
what i saw i don't know if it was fabricated who knows this is a little speculation
It seems like they may be getting better portfolio tracking tools.
I'll leave it there.
Speaking of portfolio, if you want to expand your portfolio beyond Sats,
Cash App is allowing you to invest in slivers of stonks via Cash App investing.
If you're into the stonk market, if you're into that game,
and you have a favorite stonk, but it's a little too expensive,
Cash App investing is allowing you to buy as little as $1 worth of that stonk again,
stacking slivers of stonks.
Because this is all connected to your bank account,
There's no four- to five-day waiting period.
You can start stacking sats and sliver of stonks today.
Cash App may even be your bank account.
We're offering account number and routing numbers
so that you can get your paychecks direct deposited into the app.
Make sure you know that Cash App Investing is a subsidiary of Square.
Remember SIPC.
And as always, when you download the app, if you haven't already,
make sure you use the code STACKINGSATS.
That's one word, S-T-A-C-K-I-N-G-S-A-T-S.
You're going to get $10, and $10 is going to go to our good friends at Owls Lacrosse.
that's owls lacrosse
enjoy this episode with fabian and again be on the lookout for the bit block boom
rabbit hole recap waiting on that audio
you've had a dynamic where money's become freer than free
If you talk about a Fed just gone nuts, all the central banks going nuts.
So it's all acting like safe haven.
I believe that in a world where central bankers are tripping over themselves to devalue their
currency, Bitcoin wins. In the world of fiat currencies, Bitcoin is the victor.
I mean, that's part of the bull case for Bitcoin.
If you're not paying attention, you probably should be.
what is up freaks welcome back to tales from the crypt it's your boy
marty bent here very excited for this conversation it's actually almost a year to the date 364 days
if you factor in the leap year that we've had uh since i posted our first episode i'm sitting back
down with fabian yar fabian what's going on i'm doing good uh great to see you again uh unfortunately
out face to face like last time but uh yeah so the best we can do right now you know what i'll
take it i'll take it it's uh beginning a beginning use to uh these remote interviews but i do prefer
them in person and like we were just saying before we hit record we're both headed to in-person
conferences this weekend are you excited for yours which one are you going to yeah i'm going to uh
Bitcoin week, which is in Frankfurt, which is also pretty
close to where I grew up. So that's that's cool for me on
many levels, like, first time since the pandemic that I'm
going to go into a Bitcoin event, like a bigger Bitcoin
event. This is like, I get the name says, it's a week that is
about with several Bitcoin events. The main event is the
Unchained Convention, which is an event that used to be a bit less Bitcoin-focused, but now they are putting it more into a Bitcoin-focus.
And yeah, there are different events over that week.
And tomorrow, as one of the first events, I'm going to do a Bitcoin Socratic Seminar there as well.
I think they don't have a regular one in Frankfurt.
And I've been doing this in Berlin.
And yeah, I just like to organize these wherever I go.
uh if i get the chance and um so i'm going to contribute to the bitcoin week
hell yeah the more socratic events the better what's it been like running uh running a socratic
event in berlin um very good um i mean obviously the the crowd is not as big as in new york
but yeah we have we have a pretty pretty solid group of people that come together
um several people that are very knowledgeable uh it's fun to discuss stuff with um i would say
we are going into the 11th edition now i think so um the first five or six were um in person
and then the pandemic came and we just kept on going with the same date but um online um and
it has been going well um i'm uh i was a little bit surprised because um although we call it like
berlin socratic uh online um the the crowd has has changed a bit so um i think we're about the
same size as face to face but just a couple of people that would show up face to face are not
showing up face to face and uh but then we have people from from uh some all over europe uh but
also some from from general german bitcoin scene that uh just tune in and and participate um and
And it's cool to also introduce the Socratic seminar to these people.
And we're in contact also with other Socratic-style events that are going on now online, like Sydney, London.
Yeah, so that's very cool to keep this community going with these events.
Hell yeah.
Thank you for organizing that.
The more information propagation, the better.
And they're fun, too.
It's been interesting seeing the transition to these virtual meetups.
the vr ones look very very cool i haven't participated yet because i don't have a vr set
but um that seems like a cool little medium to do to do a remote meetup have you ever done this
no unfortunately not um i mean i uh as probably everyone um at the start of the pandemic i was
i was thinking about buying a vr headset um but i i just didn't end up doing it because i thought
like i buy too much too much tech stuff that i don't really end up using and and um yeah so and
and i have watched some recordings of some events so definitely the quality of the content is awesome
and um i think it's great to organize that but um just for me this vr experience is i just just
haven't gotten into that um but yeah i think that like what's great is also that these events have
like a like a spectrum they vary quite a bit um from from event to event so like what what we try
to do is still um i would say pretty much in the spirit of new york and and what we do face to face
that we try to keep it um as anonymous as possible um so we um don't use zoom we use um jitsi which
is also software that we self-host uh we don't do any recordings we asked everyone else to not do
any recordings uh we don't even do transcripts although that has been proposed sometimes um but
yeah the berlin socratic seminar online is hopefully like we cannot check everyone of
course but um hopefully as anonymous as you are used to um an anonymous event or maybe even more
because you don't have to show your face um but then also as i said that there's a spectrum and
and others are um different in terms of the content how they organize that how they're for
example more um uh focused on specific events like the the london so critics seminars are very much
focused on specific topics for example whereas we have like month to months just like the updates on
on all the various topics um so yeah that's that's fun to see and um i think we get all the events
get get participants and and people are happy like we largely get positive feedback so that's great
hell yeah yeah this actually lines up 11 socratic meetups in berlin you let like i believe when we
recorded it was like a day or two before you left new york um and so our first chat we talked about
the rpc calls you're working at the chain code um residency you obviously have since moved on
from that residency and you you had a grant from okay coin um to to focus on bitcoin uh bitcoin
core and obviously most recently uh you've been popping up on my feed and i've been seeing uh
conversations between you and pierre richard and github about the whole validating validating the
um the supply uh at any given point in time but before we get to that just what's your year been
like and what i really am interested to learn is and i've talked to other developers who have
received grants but i haven't really dove into the mechanics of what that's like and how and how
um like how you use the grant you just use like so if you could if you're comfortable
explaining that i'd love to dive into that yeah um yeah i mean like that the information is not
um mostly not really talked about public but it's also not not secret i think so um i just uh yeah
tell you what what what i think is is uh is interesting um to share so um i mean first of
all it's very important to um kind of give the context from what the world looked like a year
ago and what what it looked like looks like now because it has like it feels like changed um
dramatically in terms of how many grants are out there um when um we ended the residency um about
a year ago um for some of us there was was a path forward um and and some funding available basically
but for some of us it wasn't um and uh that um for example for me meant also to kind of bridge
myself a little bit with um just doing freelance work um like i used to um while while working
with bitcoin core as well um and then um the the talks of with okay coin um started um yeah
somewhere at the beginning of of winter um and um for okay coin this was also the first time
that they that they actually gave out a grant so it was also uh some learning involved for them as
well um and they received support from from uh chain code but also i think um talk to talk to
other um people that had been involved with grants um and so but but it was a bit of a um there was
a bit of a preparation period um that was just necessary for them to to kind of get into it
um and then by the end of december um pretty much beginning of this year that's that's when
the grant uh really started so i think yeah around christmas basically was a great christmas gift um
Um, yeah, so, um, that's, that's when it started for me.
Um, and, um, yeah, there's, um, basically there's a very, um, basic contract, um,
and, uh, like, uh, total sum, uh, but that gets paid out over, um, a monthly
period, um, on a monthly basis, basically over the, um, agreed period of time.
and there was just very loose some agreement of how we keep in touch but
since okay coin I felt like in our first talks was was very interested in learning
from from this process in general we have I would say kept in pretty close
touch and basically emailing at least on on a weekly basis about what I've been
working on um but also had several calls um i have written some blog post that was uh released
on their blog as well uh i think we have recorded uh three podcasts as well so okay coin has a
podcast themselves um and recorded some episodes for that on on various topics um so um yeah and
and but for the most part um over this period of time i was i was just working on on bitcoin
and um giving updates um to aqua coin um and then uh beginning of this year um or as the as the year
um as the month turned on it feels like uh many many more uh grants were given out um and i i
have heard from some people how maybe their their minor differences in in how that process works
i think bitmex is pretty public about how their how their process works you can you can read quite
bit on their blog about that works for them and of course square is is public on twitter um so
yeah that's um these these um these grants might differ in in details but i think overall it's it's
kind of a similar experience to most developers that uh once once basically the setup is through
um for the most part you just focus on on doing your open source work and contributing to bitcoin
um and in some cases this involves like a focus of of what to work on and in some cases it's it's
it's more free um but i think basically i don't really know of any of any people that have really
had a bad experience or so where when there was a strings attached or so i think everything is
public um people are having good experiences right now yeah no i mean 2020 the year of
bitcoin dev grants it seems and hopefully there's more to come yeah so what did you focus on this
year uh particularly i know um we'll talk about the validation of the supply but i'm sure you've
been working on other stuff outside of that as well yeah aside from that um not really a topical
um very deep focus um other than that um i was uh mainly focusing on doing reviews
um but not also in a specific area but more um wide and just on the one hand trying to be
helpful wherever i can like where i saw interesting tickets that were lacking reviewers
but also just trying to learn more of the code base and trying to learn more
about the protocol basically so win-win both hopefully for the code but also for me that
I could see different parts of the code base and get into more stuff learn more but also help get
stuff merged um and um yeah i think that's that's something that is that is um just worth stressing
that um reviewing is is really important um and it's it's a common bottleneck uh in in bitcoin
core contribution um we have i don't know something over 300 open pull requests um and
And oftentimes this can be there for months or years.
And so, yeah, that's something where I just saw in general need where I could help out.
And that's what I did.
Yeah, that's a topic of discussion that's been arising considering the amount of grants that have been going out to devs.
how do you weigh uh the funding of new code that's written versus code that has already
been written and needs to be reviewed like are you just creating more tech debt as you
fund new development new lines of code if you will yeah to put it uh so how do you how do you
view that trade-off and how would you go if like if you had a magic wand or an endless pit of money
and were able to fund different parts
of either code review or code development,
how would you go about it?
I mean, I also had this discussion
with OKCoin recently
where they asked me of my opinion
and they specifically asked me about this rule
of like one pull request,
for one pull request,
you should something review like five to 15
um other pull requests um and of course there's like there's a lot of detail to that like one
review does not equal another review um but i think this this this can be looked at as a good
rule of thumb and kind of what i would really love to see is that um just everyone who wants
to write code also just just review code because that's just a win-win because people learn from
it and and just makes a lot of sense to just not distinguish between people that mostly write code
and people that mostly review i think ideally um people should just do both or at least strive to
do both i know people some people are not as experienced and they don't feel comfortable
maybe giving giving a full act uh when they just start out and uh but then they should just um work
on that yeah yeah it's got to be intimidating attempting to give your first full act in the uh
the bitcoin repository um and for you freaks who are unaware a full act is basically the
acknowledgement that you agree that that's suitable code to be merged correct yeah yeah exactly and i
think like the the discussion on twitter on that uh i only saw a little bit on that but i think is
um because um bitcoin magazine gave out uh like a bounty for um get your first pull request merged
and they gave something like 500 in bitcoin promise that for your first commit and so it's
obviously a incentive for new developers to come in and and write some code and and try to get it
merged um but uh i think um the first person to point this out that there's a downside to this
was was neha um and she said that um and and i agree with that of course is that these it's
great that newcomers want to contribute code but it just puts more load on the experience
developers because they are the ones who have to review this um and of course the first time
contributor oftentimes they have to learn a lot not just about the bitcoin code base oftentimes
also just c plus plus and and how to use git and github and so there's there's on many levels
oftentimes there's support needed and as i said reviewing is a very scarce resource and so the
the incentive should be aligned there but but it's also hard like i it's much harder to incentivize
to do the right incentives to to do reviews um because it's the quality of review is is very hard
to to judge um there's there's for example concept act which is just conceptual review which can be
just not even looking at the code but just just reading the just reading the um the the text of
what is what is suggested um for the change and that can be for some experienced um reviewers
that can be a couple of seconds basically because it's a no-brainer to them but also there can be
very um there can be very detailed thoughts on that if what a concept and there can be there
can be weeks and months of discussions just on a conceptual review um so just just on that uh
the first stage of review basically it's it's it's very hard to say okay um
it's it's worth to to pay somebody for that or or not to pay somebody for that it's just basically
you you run into then um issue where if if you were to judge uh the review or if it's
worth it you get a bounty like you would have to review reviews and then you would see more work
and so yeah it's it's very hard to kind of structure that in the right way yeah qa process
for for reviewing seems yeah like something that would be hard to implement yeah that's why i mean
that's why just i mean i'm not a developer at all so correct me if this inclination of mine is wrong
but i think what john newberry is doing with the pr review club for people who want to get exposed
the bitcoin core repository and sort of learn the ways of how to interact with the people working on
bitcoin core not the people working just how to understand the code base better i think that's
conceptually to me it's a great first step and they're and similar to how the socratic meetups
have been multiplying around the world maybe we need more of those pr review clubs to to pop up
as well yeah yeah i think yeah this is like the the best thing that that has happened to to bitcoin
reviews uh basically because um usually i mean you're you're basically alone and you're looking
at the code and you just there's always you know is there something that i'm missing um but there
you are in a group you kind of get an insight into how other people look at the code you even have
basically in preparation a guideline of what to look for and because you have some some questions
on it um you can ask questions yourself um so um yeah this is this is really great um
great thing um and i would encourage anyone even even if you're not a developer even if you feel
like this is too far out for you um just to to either go to the website i think it's bitcoin
core dot reviews um and just read the transcripts like there's just the the discussion from irc
there that you can read on on past pull requests and it's been going on for over a year so there's
a ton of stuff to read there um or just to to jump in and just maybe just watch the conversation for
for a couple of times i think there's there's hardly anything better to um learn about um
contributing to bitcoin core but also um just what's going on the bitcoin code base in general
yeah and so a couple questions here like how do you prioritize what to review personally
uh is it more people reaching out to you like hey will you review this for
for me or are you just looking at prs that have been sitting there for a while
um and then two i forget question two so you can answer that first while i remember
my follow-up question to that um i i kind of try to mix it up so sometimes i get contacted
by people either people that have written a poor request and they ask for a review um
sometimes by by other people that just have an interest in a certain pr um that happens
sometimes um and and i'm happy for that like it's not it's not overwhelming so um it's it's
fine for me um and i'm happy to do that um and then aside from that um we have a high priority
um queue basically so um we have a little i don't know what's a github board or something
where um i think in theory every developer can put one of their pull requests on it
um and that's marked as high review high priority and that's what people are supposed to look at
first um these tend to be more complex um bigger pull requests um i try to review these but um i
I cannot always review all of them
because some of them just very large.
And if it's not my wheelhouse,
I just put my focus elsewhere.
But in general, I usually have reviewed
maybe like half or so of the high priority
pull requests that are on that board.
Then there are some pull requests maybe
that are interesting because they are close
to getting merged.
So if something already has a couple of acts
and somebody asks in general,
or it looks like this could be merges,
needs a couple more eyes on it.
Then that's something where I might jump in because of that
in order to get it across the finish line.
But there are also things that just pop up to me
because they're just very new.
And then that would be more like a conceptual review.
Or also sometimes I just find stuff
that has been around for a while
this just got stuck for some time so something that is that is also important
to understand is that actually the like a large part of the review can also
happen after the the first review that's also part of the complexity of judging
basically how good is review and and if that kind of formula like one one per
request versus five to 15 reviews if that holds up and you also have to stick
with a review basically because usually what happens is pull request gets put
out there and a couple of reviews come in and then some changes get made and
this can go on also for for many many times over months sometimes years and
sometimes in between this gets stuck for for one or two months and ideally you
have to come back to this pull request that you have started reviewing and
where they will make changes and then you have to reread you and you have to
say if now everything is addressed for you or or maybe if you if you want for
the changes and then you have to give in react and this can be also bit annoying
at times when you think okay this is this is done for me now I'm happy with
with this and then somebody else has a small comment and it gets changed and
you have to come back and review it again but it's just it's important
because you always have to have the acknowledgments on the latest state of
the pull request and that yeah sometimes it's overwhelming like sometimes they're
just it happens that three or four pull requests that I have been reviewed and
they like come in the updates that they have all been changed and then it's like
You know, it's a queue and you have to work on these.
And one good example of one that I've put in a bit more of my review time is SIGNET.
I'm not sure if you have had a specific episode on SIGNET.
Not yet.
Yeah.
So SIGNET, just very briefly, is a new type of testnet.
um it uh differs in in or in in the utility in the sense that um testnet has has some problems that
um basically miners can come in there and just just mine tons of blocks by maybe they want to
test in the newest ethic or so um and that means um everything kind of gets screwed up if you want
to do some normal tests right if you want to for example run if you want to run the lightning
network on top of the testnet um that is not possible because sometimes you get a thousand
blocks in an hour or so and then um the the basic security mechanisms of lighting just just don't
work in the same way um that's why there has been for many uh years um there's been um
um people have wanted a more stable sort of testnet um and developer um color um he has
suggested um signet um probably i would say two years ago or so um when he first suggested it
um and the way this functions there's still a small proof of work component but mostly the
the blocks are validated through a signature um so um the um there's a block provider it's it's
it's a trusted uh setup basically like there's one person that has a sick that can sign these blocks
and um but i mean that doesn't really matter otherwise it functions like a bitcoin network
um and you can join it you can validate blocks as well um and you can then you you can then have
A test net that has very stable blocks in the sense that it just, the block comes every roughly 10 minutes forever.
And that helps with testing these like different layers, for example.
That seems like a very high priority if we're going to flush out the lighting network in full.
And then, correct me if I'm wrong, there's been like four test nets, right?
There's been more than one. Are we on the second? For some reason, I have a multiple two in my head.
is a testnet 3 um three people are talking about testnet 4 already yeah yeah yeah i mean
the testnet 4 would probably be a reset of the normal testnet but i mean um i'm not sure if
that's necessary i'm not um i haven't really seen a discussion and there's also of course
rec test which is just um for your local testing uh we have 100 control but you cannot really
set up an actual network of
other participants with it
Fabian it's crazy
these
small I mean I want to call it a small
detail but probably
a detail that goes
unnoticed
or most Bitcoiners outside
developers don't think about is like the test net
like you need to be able to test all this stuff
and it should be workable
and then on top of that you need to review
the test net
as well as the other code there's so many layers to all this and i think um again and to
so the crux of what we're getting at in this episode is the importance of review and then
dev funding for that review as well and so i think i've remembered my follow-up question to
the initial question which was like just to drive home to the listeners out there to the freaks
the importance of reviews i don't want to put you on the spot but do you have any examples of your
mind in your mind of instances in which reviewing really highlighted a potential problem that may
have gotten merged um or or led to a discovery uh that was integral to a piece of code that's in the
uh code base right now
do you mean like something that was caught in in review or maybe that wasn't caught yeah yeah yeah
i mean either or um or maybe it's a bad question you could tell me if it's a bad question yeah
i mean the the maintainers generally don't merge anything that is not uh reviewed enough
um so um the i think a better um like what's more what's better to to mention maybe as the
problem is then that stuff just gets stuck and and doesn't really um yeah just it just gets stuck
because there's nobody reviewing it and um that sometimes means that that really good new stuff
um can get stuck um and so um there just pretty recently there was um a small contribution also
from uh color um where um this is about um uh basically you can um uh it's hard to how to
explain uh i didn't i didn't look at it for a little bit but it was a small wallet contribution
um that basically um tested an alternate way of spending um your um or funding your transaction
um by not re-reviewing or or trying to sweep um some of your addresses so a small improvement on
on privacy potentially if you have reuse reuse addresses in the past um and this to me was
almost a no-brainer conceptually um and i think um peter wooler and and greg maxwell and so on
i think they they also gave concept acts um but this has been opened in 2018 um and i i had never
seen this like i i wasn't contributing to to bitcoin core in 2018 um and somehow john attack
he found this and he uh he tagged me in it and said do you think this is interesting and and then
i've yeah i said oh this is interesting and then i did a review and john also did a review and
um i think then it took i don't know a month or so um to to get it merged but essentially it had
been lying there for about two years without anything happening to it and i think actually
yeah i think the way john found it because color wanted to close it because he said okay apparently
there's not enough interest in this um so i'm going to close it so that that can show it as
that for some people it's just frustrating if they have a good contribution but it feels like
nobody's reviewing it um it's a bit of type of personality like some people reach out to other
people to to hey can you can you please review this but um not everyone not everyone likes to
do this um and so um yeah this this is a good example of something that gets stuck because
and there weren't enough reviewers um maybe just something that was a particular part of
of the code base where there wasn't focus on it for some time and but when
there's attention to it basically just a couple of people need to get together
and and and review it and review it the changes and then something like that
that is pretty valuable and can get merged rather quickly that makes sense
yeah so these prs can basically gather dust and sit around unless developers communicate
with each other like hey look at this it could that like that could have been
just brushed away yeah i mean and color color is like no no blame on color in any way because i
mean he was also i think putting out signet at the same time and he was probably very busy with
signet and also going forward for up until now and he put this out as well
and probably thought this is kind of a no-brainer it's a small change and there
shouldn't shouldn't be an issue with this like should get reviewed and there
was a little bit of conceptual review but then just kind of got lost I mean
and there's also a bit of a problem with with all these many open pull requests
right? Like when you come into the repository, and you look at
the open pull request, there is a list of 300 to 400 open pull
requests. And it's just sorted from with the latest because
also it depends on I mean, you want to review something that
has been kept up to date, not something that is rebates
issues or something like that. So you probably start at the top
and look at the most recent ones. And once something has
kind of fallen below a certain threshold like it's there's nothing been happening for like um three
or four months uh really somebody needs to get in there and and like push it again like kind of tag
somebody in it and and uh maybe message somebody about it like hey what about this are you still
working on this um and and maybe poke people to to do reviews um yeah yeah it's crazy thinking
about the open source nature that like there's nobody i mean obviously people are organizing
and reaching out to others but there's no central sort of somebody saying hey make sure somebody's
paying attention to this it is it's fascinating to me that it's dependent on driven individuals to
to drive this this attention to detail when it comes to reviewing yeah yeah i mean in my mind
yeah i was just gonna say in my mind i'm thinking uh like what is that i mean obviously you have the
uh the um the pressing prs that need reviews that you described earlier um like is there
like pierre pierre had that bitcoinaxe.com site which uh which visualized all the all the prs out
there but i'm just trying to think like is there something outside of of github or is there a
process that can be instituted to drive better reviewing tendencies you would know better than
i don't know yeah i mean this it's funny like i i have thought about this for for a little bit
like but it's it's also one of these these weird problems they're very hard to solve like i've
thought about like funny funny ideas something like a pr tinder or something like that you know
essentially you want to get like random suggests pr tinder i like that i like that um because
yeah i mean bitcoin access is great because it also provides more information that is relevant
like github is not written for bitcoin core um so um bitcoin acts basically github for for bitcoin
core in in the overview of that it provides um for um these pull requests but still it's still
like you can sort it in different ways but there's still it's still a long list of 300 um plus uh
pull requests and and you're usually going to start with the high priority ones which are like
10 or so and then you know there's there's a ton of other stuff and um i just i just want to say
like um the like like serious bugs or um these big features like signet or so they usually don't fall
by the way is that usually there's somebody always to kind of pick them up but um something that is a
bit less uh maybe that is lacking an an additional champion basically um aside from the person that
wrote the code like that can just just uh uh fall into crack or so and and get overlooked um and for
yeah like essentially something like like like a pr tinder where you would get suggested like these
uh these pull requests that are that have been there for for a couple of months and
um could use somebody um or maybe they should just get closed because they um
they're just not there's not enough attention to it um but that is a hard decision i mean
you cannot like i cannot go into something and say um i don't think this this is interesting
enough maybe you just close it because there might be somebody else who thinks otherwise right
so that also means why this list is growing because there's we're very hesitant or um
i think closing something should always come through from the person who is um contributing
the code um but often they also forget maybe to to do that or they don't want to just they
think it's it's it's valuable yeah so there are any like low-hanging fruit on this list of prs
that could be sort of closed
due to the fact that code has been merged
that makes them obsolete?
Again, like somebody would have to go through
and look at that and judge that
and there's just a ton of work.
I think some developers did that a couple of months ago.
Like they did some cleanup.
Like the list used to be quite a bit longer
and um somebody also sent me one old pull request that i took a look at and that was a good example
of something where it just um it it's it this is just factually stuck because it's an upstream
issue basically um and and we just have to wait for that uh um software that we're using for the
rpc and http rest interface um to fix this small bug um and then we um then we can fix it also
ourselves um and but this is something that where we just have to wait so this is this this was
actually something where we couldn't really do anything like it didn't make sense to to to change
this or to close it um it just um had to stay there um but other than that yeah it's just it's
just work that needs to be put in and and then we're back to kind of the original topic um this
is just similar to reviews um just a similar type of work somebody um ideally would be regularly
going through this backlog and kind of check okay was this uh was this closed now or maybe
maybe there is not enough interest and and this can be closed um yeah yeah so in your opinion
how has the state of reviewing changed the past year you think people are reviewing more
reviewing less it's getting better it's like do you think we still obviously we still need more
um do you think momentum is going in the right direction i guess that's the question i'm trying
to get out there um it's it's hard to say uh in in a sense a year ago i i wasn't as experienced so
i can't really judge my impression from a year ago to to today's impression because i just had
way less of an overview um but um at the time it didn't feel as much of a problem to me it
just became more apparent over time um as i was doing more um a year ago i think i was just not
involved enough to see how how much of a problem it was on on a day-to-day basic
basically basically um and like very recently um it uh just feels more and more like there's
not that's just not enough um i can really it feels like there was a noticeable dip when the
pandemic hit and i think that's pretty um pretty easy to to say because people just had other
stuff to to deal with um and so i think that just showed that that there was not um this reviewing
slowed down um since then this it has picked up more um and i think it's it's at a normal level
now just normal not not enough normal i would say um but what i've also seen more is like first time
contributors coming in like that feels from the beginning of the year to now i think there's been
some some reach out which is great and some some new contributors have come in and um tried to do
their first commit maybe because of the bitcoin magazine thing maybe because of other stuff um
and and that's cool um but that just um shows also that that this binds um reviewing resources and um
yeah then then on the other hand we have we have stuff that is very big and important and
um takes quite a bit of time like like signet for example um where it would be greater if we had
more reasons on it any of you freaks that are able to review get on it bitcoin depends on you
yeah i mean because talking about the list of pr so you don't want it to get too long
because then you get decision paralysis i mean it probably already is a degree of decision paralysis
on what to review what not to review but if you imagine the list getting longer um especially
to niha's point if first time uh prs people making prs for the first time are jumping in
demanding the attention of reviewers who'd be working on more pertinent prs yeah it's like a
weird it's a weird balancing act if you will yeah exactly and that's just i don't feel like there's
a there's a right answer um to this um the only thing i think should be noted is that um
then like me i said there should not just be an like uh incentive um or the goal for new
contributors shouldn't just be get your first commit in but it should also be get your first
reviews in um and uh bitcoin core review club is is great resources to get into that but
i also i think i mentioned in some casual discussion um maybe there's like a good first
review label like right now we have a good first contribution label um for issues that are open
specifically for beginners um where it's it's something that you can do pretty easily um and
And so this is kind of reserved, like contributors that have already gotten things merged, like
me, for example, would not take this issue and do it because it's reserved for first
time contributors.
And then maybe we could also have a label for something to review that is pretty easy
to review.
But I think, I don't know, I don't remember who I mentioned this to.
i don't know if it's uh if if people would be interested in because it also again means
kind of judging is this a good is an easy review is it not an easy review um yeah but it's it's
maybe one idea no i like that a lot just because personally one of my favorite follows
on my bitcoin list is bitcoin merges and i especially like uh the tweets that come out
from bitcoin merges where it's like hey this is the first merge from blah blah blah and it has
like the little um party emoji whatever um and i always i always like feel like i'm like hey
i'm proud of that person like hey congrats on your first pr first review uh if you get that
dopamine hit with that as well it could incentivize it um that's a really good idea you got two really
good ideas uh review tinder and uh first first good review uh badge or acknowledgement if you
will yeah yeah so like one thing also where that just came to my mind again is where this shows
that that people just have issues with giving reviews initially is that uh often when we have
the bitcoin core review club um there are people there that are participating and that are reviewing
that are doing really good in the discussion like contributing good questions answering questions
showing that they actually have really understood how the stuff works maybe they even find something
um but then i don't find them in the actual pull request giving a knock um and uh yeah that's that's
kind of uh sad i think like um i don't really know i don't you know you can force somebody to
to do with it um but uh it would be great if like a higher percentage of people that are
participating in the discussion in the peer review cloud that clearly have understood what it's about
also would um end up uh getting themselves to the point um to actually give the knockouts of them in
the protocols yeah it's probably intimidation factor i can't imagine how intimidating it would
be for a developer a developer's first like again act or whatever you think a lot of people are just
like ah i don't want to i don't want to risk making myself look stupid yeah yeah i mean i
can't really tell anyone to just fuck it give an act or whatever um but i mean at some point
you
especially if you
it's not the first time you write code in your life
and you maybe have some
professional experience where you also reviewed
somebody else's code
like at some point you just have to be
honest to yourself and say okay I
don't find any problem with this so
then I guess this is okay and I can
give an arc
that's just how it works for everyone
nobody is without fault
but that's also the reason why we don't have
just a single review on on pull requests we have um usually three at least um
um oftentimes more if it's really important stuff um so yeah yeah
damn man it's like
it's very interesting speaking with developers
uh because like coming to bitcoin from an economic perspective which i came into obviously
but this podcast has really exposed me more to the technical side of bitcoin uh as well but
to be frank yeah i'm focused on sound money the economics number go up and
it's all initiated and enabled by a group of people
somewhat i don't say disorganized but disparate and self-organizing that's probably a better
better term uh every like like a lot of the work that you guys do is is thankless to a degree and
like reviewing if you're gonna like tear like thankless actions probably at the bottom of that
it's something that's necessary
and vital
but boring
and somewhat of a thankless job
I was just ranting here
that makes it even sweeter
somebody thanks you
like Pierre did
recently
what do you mean?
the
getTXOutset info stuff
and the
um, um, auditing stuff, uh, like there was, uh, very nice validation of, of the work that I've
been doing. So, um, right. Yeah. It's a good segue. It's a good segue into that topic. So
what was, what was this whole saga like for you? Um, seeing everybody run that RPC call and
screenshot it and, uh, and then the development, the further development of, of, uh, the refinement
of nailing down the supply after that yeah i mean um just kind of came out of left field like i i
had initially i had seen the this east discussion on um how it's hard for them to to audit their
total supply um in general i i mostly um ignore um discussions on on on east um just feels like
huge waste of time for me personally i don't i don't have a good enough understanding of ease
and i i just i'm just not interested in it um and uh but yeah i thought like well this is
interesting like this is just um basically given for for bitcoin like this is just part of bitcoin
like this being able to audit supply this is like the the the minimum thing of of bitcoin like
everyone takes us as a given basically and and it's it's like it's part of the core of the reason
we're all here yeah exactly exactly and it just felt crazy that that um some ethereum people were
basically like yeah this is not such a big deal and it's like okay yeah if it's not such a big
deal for you okay but then it just shows again how how different um ethereum is from bitcoin and
really different category basically um and uh so i was just following this loosely like it came up
in my in my uh twitter feed as well but uh since i mostly don't follow this kind of stuff um only
only saw a little bit of it i think um and then uh initially i think pierre posted that he would
pay out a bounty of a million sets or so for um a script that would uh allow him to to audit the
total supply of bitcoin um and that was basically my cue to jump in because this is really what
what i've been what i've been working on for for quite a bit of time um this is the the get tx
outside info call and the coin sets index that i've been working on and we we go a little bit
bit more into detail about that in the moment but um yeah there was really like i um i i i got it i
saw it and basically immediately somebody messaged it to me as well i think john john attack messaged
to me as well basically instantly um and so yeah that was fun and i i answered to it and then
i basically did my did my typical um thing where i said okay this is um great i will take the sets
but also I need more reviewers basically because this work is one of those things that have been
out there that's just not top top priority like this is not as high priority as Cignet or Taproot
there are some people that would like to see this but yeah it's just lacking reviewers but
essentially, this was what what Pierre was was asking for. And
so yeah, I just sent him this as a response to the tweet. And he
yeah, tested out the code. He had some suggestions. Mainly, he
would like to have more insight, he wants to have more insight
into kind of the internals of each of the blocks. So he could
validate each block individually. So I followed up a
a day later or so with that addition,
and also wrote a few days later an export function
where you could export basically content of this index
to the CSV file, which is more compatible
with typical auditing tools.
So you can do that via core?
Yeah, I mean, it's writing it to a file
with comma separated.
Yeah, it is a new RPC.
i wrote a rpc just for this i don't really know if if that's going to get merged is an open pull
request now um but uh it's it was easy to write um it's like 70 lines or so and and pierre used
that to to get out the export um and i think that's what he's been working with now and i
think he's going to also write something about that i think that he posted that on twitter
um i think he's going to document what he's been doing and so that's going to be an interesting
week as well yeah it was such a fun fun saga again going back to the point like hey this is
like a core tenet of why we're even working on in investing in and talking about evangelizing
this technology is the fact that it's transparent and you personally the individual can audit it
and verify
yeah
like our audit
and verify
synonymous
this is just me
going off of my head
down
you can verify it
you can audit it
I don't think
they're synonymous
I would say
audit is probably
verifying
afterwards
I guess
maybe
yes
yes
verifying the verification
but
no I mean
and
thankfully
for the
because of the work that you're doing bitcoiners are easily able to do that and it's like again
going back to what started this part of the conversation like the thankless
uh sort of hours spent review writing this without anybody really realizing that
that you personally but like any developer working on any part of the code is working on it
I can't
yeah I imagine it's
I imagine it's
I don't want to say weird
but like it's like
all these assholes on Twitter talking about Bitcoin number
go up little do they know
how much work has gone into
making the actual
function of
the network that
allows the token within the network
to go up
uh like people don't yeah developers go very very underappreciated i would say um
but like to have something like this pop up like how how how jacked up did you get like when
you saw like everybody wrote it sharing screenshots of the rpc call you've been working on and
um like when when people needed it most like it was just there just because you worked on it
well and others as well obviously i mean to be to be fair it was there before like
people couldn't could run it before it just takes a couple of minutes um but
what i'm doing is basically democratizing it more um so like i don't really remember how much we
went into the details of this um the last time but maybe as a recap um when you run get tx
also the info right now it basically processes the whole UTXO set and that takes depending on
your hardware a couple of minutes so if like many people for example you have your own note at home
on a Raspberry Pi I think this takes something like eight minutes or so on the Raspberry Pi 3
and of course that on the one hand is kind of annoying that you have to wait this long but
And also, if you were to run this, for example, on a regular basis, if you want to have a
script that audits the supply on every block, for example, then you run into issues.
Because oftentimes, you get blocks faster than eight minutes, right?
So sometimes you get three, four blocks in 10 minutes, just happens by chance.
And then your Raspberry Pi kind of has to catch up.
And that's an issue right now.
And then going forward, the way it works right now by iterating over the whole UTxO set,
this just increases linearly with the size of the UTxO set.
So if your Raspberry Pi right now needs eight minutes to process the UTxO set with every
block, then you can easily calculate when we have the next bull run and the UTxO set
grows by 20 or 30%, then it's going to take more than 10 minutes and then you basically
cannot do this on a regular basis anymore then you with your raspberry pi and you can validate
the total supply through get tx outside info on regular basis anymore
so um yeah what i'm what i'm what i've implemented is an index um that uh calculates the um content
of basically get tx outside info um so the the statistics on the coin supply um for each block
for each new block and can do that x post for the full blockchain and then just update these numbers
with every new block and then you have an index that provides you for every block height at your
request the the data of how much how many inputs were there being spent and how many outputs were
created and what the total values of that is how much maybe became unspendable in that block
um how much the the coinbase reward was um and you can um then check these numbers that these
are valid um in the context um and this is exactly what now pierre is going to use for
the the auditing of um of these numbers um and that you can export with the csv now with
with the latest changes yeah uh so if blocks are coming in really fast or conversely not
conversely but or if just the ut utxo set grows by a material amount 10 to 20 percent
is the issue with the raspberry pi looking at the cpu because that's one thing i noticed when i ran
on my raspberry pi only took like a minute and a half um but like more if more blocks are coming
in is that is that is it just stress on the cpu just continuously trying to run that and
keep up with it is it raspberry pi 3 or 4 i think it might be a 4 yeah i think like with
with the 4 the 4 is much faster so then you you don't have problem for a foreseeable amount of
time um but this is really like on the fringes like people that have been running it on raspberry
Pi 3 that is quite a bit slower or even some other old hardware. We want to have as many people
be able to do that as possible. Raspberry Pi doesn't feel like much money to us, but for some
other people it is. And so yeah, for you maybe it's not a huge problem right now, but then it
would be a problem if the UTXO set grows by three or four times, which is also possible
if we have three or four more bull runs, at least. And then, yeah, so it's just, it's
a problem that is inevitable on some sort of level. And so why not use it? Because we
already have the tools um i'm building on the base index and this work that has been done previously
um i've i'm just blanking on the name of who built this but um it was built in
together with the compact block filters um where um it makes it much easier to build an index in
Bitcoin Core, we have a base class base index that you can use to build an index. And since
that's already there, the amount of code that I had to write for this index and the amount of
code that needs to be maintained going forward for this is also a management size. If I would
have to build this completely from scratch, this would have been probably three or four times
larger in terms of the size and lines of code and then it's also a bit of a different and it would
be much harder to to get it merged to get reviews for it and it would be a higher burden in terms
of maintainability as well um and then maybe people wouldn't look at it as as favorable
um as they do right now so um yeah something else to consider so much nuance to all this
do you still like writing code for bitcoin core and reviewing code
are you getting i like it yeah you're not getting burned out at all no no i mean of course as with
everything sometimes there are things that are a bit annoying um but uh all in all it's it's uh
the most fun i've ever had working on something i think um and so yeah i i like to characterize
uh bitcoin core as the most interesting software project ever in the world basically
and that's that's still the case for me absolutely I'm still learning every day
that's important to me I can see progress that's that's also important like sometimes it could be
a little bit faster but that's that's just the nature of it and I feel like I can I can be
helpful um so that's really all i need they've certainly been helpful to me today uh uh so what
are you most excited for bitcoin bitcoin core specifically moving forward obviously we have
bit tap root coming up we talked about signet earlier is there anything um anything you're
looking for particularly that that gets you all excited i mean these are just like the the two
big things that i've been thinking about mostly so other than that like not there's not really
other than that and and and my work of course there's not really anything that comes uh very
close um just uh something that i've been trying to get into a little bit more is the activation
of taproot actually um there's been quite a bit of conversation on that as well recently um and
that was going to be my next question how would you activate pip what is it 340 341 342
i keep going back and forth um so i i just rather than making a decision myself i just try to
accumulate more input um and uh like it feels to me that the um there's the discussion that
is going on right now um is mostly developers being concerned that there's something that
they don't know that might be going on from the minor side basically um and i'm just more
thinking about how can i um how can we in general um kind of get across this gap and and not feel
so insecure about that that something like in case of segwit is going to happen again so
um i don't really have particularly good um connections in in the mining space um and i
think the problem is that that um many developers don't have them or if they do they don't talk
about it um but that's just my my general impression of the discussion um but i've been
trying to to um to improve on that um and i've been reaching out to some people um there's not
really something that i that i can present on that yet but um i hope um something is going to come
out of that um that we talk to some miners and get insights from from their side and get um
um, um, yeah, get, get more, uh, reassured basically from, from what is going on on that
side of our ecosystem basically. Um, and then we'll just have a pretty easy answer. Um, I think.
Well, you're talking to somebody who works for a mining company now.
It's actually very interesting that you brought this up specifically too, because, um,
there is there's mining has been very opaque in the past it's probably the most wild west
aspect of this whole industry of the bitcoin network from my opinion like speaking with
other miners there's no no real contention about pip taproot at all especially when you
compared to segway because segway arguably uh affected not profitable it could have
it affected profitability of mining and taproot doesn't do that in the same way
um that segway did so with that being said i'm going to invite you to a call that we have weekly
with other miners and particularly the pools and you get pool operators on board right because
there at the end of the day until stratum v2 or um or better hash but i think matt is okay
with stratum v2 gets implemented uh the pools are are going to be the ones signaling for this and
yeah and whatnot and yeah so i think i i don't think miners have much pushback on
bit taproot specifically um i just lost an airpod uh no that is interesting and the other thing so
i read the mailing list uh the bitcoin dev mailing list and um and so it seems like at least
so the conversation was started by aj towns like last month and then matt
responded to it from there.
It seems like Matt's
Yeah, I forget if Matt
started the conversation.
I think that was Matt's suggestion.
Yeah.
He seems worried
of a precedent
of people just following
developers and
pushing it through.
At least that's what I got from that email.
Do you have any thoughts on that?
or yeah the conversations are going on around that yeah i i haven't talked to many people so
take this with a grain of salt but the feedback that i've gotten to kind of that question if like
taking a defensive uh and giving it a very long runway or um trying to push it through quickly
um kind of to my surprise from from the minor side that i've talked to was um the suggestion
of somebody who would like to see taproot as far as their understanding of it um that it should
be rather quickly because they said um they think that um you kind of have to rattle people up to do
a little bit of marketing around it basically and then give like a like a very quick deadline sort
of and they think that would they would work much better um in to to kind of get like a wave going
and and then just get it through quickly um but if you would say okay we have this now with one
your deadline and then maybe another two to three years um until we really really do it um for sure
and then he like their feedback was that um of one person in particular um that this would be
too long of a timeline and then people would kind of dismiss it and they say okay we'll deal with
this in three years or something yeah another factor you have to take into consideration
is if we do run into a bull market and there is like a lot more adoption
then you just have x amount more people
sort of contributing to the conversation then you get into a decision paralysis at that point and
if you've ever experienced a bitcoin bull run in price in you you know that even the developers and
like it's all anything anybody can think of is the price like everything else gets like
pushed to the wayside which isn't it's not great but it's it's a reality at least what i've observed
in the years that i've been paying attention to bitcoin so like right now i think the timing is
is perfect to to start active like we're talking about activation now i would like
i would like there to be
i would like activation to start happening or the the signaling for activation to start
happening at the network level soon like before the end of the year i would like
personally but who am i like and that's like the hard question about this whole activation
like who and that's the um it's like who who's the first one to step forward right like we have
all these potential paths but who's actually gonna take the first step and this is also where we need
do we need a shall and froy or something like that shall and fry yeah um i don't i don't i don't know
we maybe maybe yeah it's uh it's a good question i haven't really thought about that if if somebody
comes forward but i think um like people are already in the discussion and i feel maybe now
somebody doing doing this kind of move um i don't really know if it would work out the same way
again um but this is kind of also where all the topics that we've been talking about come come
together again because on the one hand there's also still need for review on the tap report
request um that would be definitely also great help if if we just can concentrate uh even more
review effort on on taproot i mean it's it's a huge review and it's it's complicated but
and still there there's still a need for for that and i think to also get more people like
completely on board that this is ready now like everyone who even like thinks they they could be
confident enough to to review table to just review it and even if they don't feel giving um an arc at
the end just say okay i looked at this and i didn't find any problems if you don't feel comfortable
giving knock then just say okay at least i've taken take a look at this and but i don't know
what i'm doing if you if you feel insecure um and then also um uh signet uh this is uh just uh
recently last one or two weeks um i think taproot is now activated on uh signet like signet is not
merged yet it's not uh in bitcoin core but it's very close um and aj and color have um integrated
it in the in the main signet and there's still a little bit of discussion um i think if that's
the right way to go but i think this would this will be um the first this will be one of the ways
that we can test um taproot as well and in the wild um as part of signet i think i think aj
recently tweeted like the first um uh transaction that they've done the first taproot transaction
on signet yeah no and actually speaking of that too uh pool in mining pool they they've put tap
root in a coinbase transaction last week too um so it seems like momentum's growing and that makes
a lot of logical sense like prove that it works on test net then maybe we'll easily garner some
more attention and momentum to getting activated um yeah damn we just covered a lot yeah i've got
to wrap up i've got to wrap up here soon but um it's been a pleasure catching up dude thank you
for all the work that you've done um that you continue to do and thank you for coming here
and educating this dumb podcaster thank you very much for for inviting me again i'm i'm i'm hugely
honor to be a return guest that's crazy oh stop it i mean like i just said i gotta learn a lot
from you and i think the work that you're doing unsung hero a lot of i'm not you alone but there's
a lot of developers that are unsung heroes doing grunt i don't want to call it grunt work because
i couldn't do it um but like underscored uh excuse me under heralded work that many more people should
be paying attention to so before we wrap up just to bring it full circle like what advice or
recommendations do you have from a dev funding perspective a review perspective and
the future of bitcoin i think maybe the one thing the one idea that i that i had that
i haven't mentioned yet around funding and and reviews is just that um if if you can if that
makes sense for you as somebody who who funds uh bitcoin developers just pay attention to that
the people you fund also do reviews um i think that just we we talked about this uh previously
as well um i think it makes sense if people that write code also review code um and um so usually
mostly grants have been given out more focused on something um on the code that people were writing
um and that's completely fine like that that makes a lot of sense to me but um i think the the the
grant givers should also um sort of request a minimum of of review work as well um and um yeah
if you if you are somebody who has the capacity to to fund uh bitcoin developers uh maybe just
just pay attention to that um and look not just at people who write cool code but also who review
code and consider funding them as well.
How can we help you personally? Are you accepting
sponsorships on GitHub? No, that's
I've seen that, but it's
I'm a bit hesitant because it's a bit public for me.
I don't like it that much that you see publicly who has funded
who and so on. It's a bit weird to me,
but um i should i should get something up on bitcoin dev list and i don't know if you mentioned
that in the podcast already um in the previous episode i'm not sure yeah i mean matt matt odell
my co-host rabbit hole recap he's the one who created it right yeah he yeah he made that yeah
right yeah cool in uh in partnership with dennis uh rhyming from for the yeah yeah um from bt
server. Yeah, that's, yeah, yeah, that's, that's a really
good initiative. And I just have to say get my ass off the couch
and put BTC pay server on there, I think. So something I have to
get done. Yeah, and I'm not this, the GitHub funding thing
I'm not I'm not sure about. I haven't taken a close look at it,
but it's it feels a bit um too public for me popularity yeah um mate to each their own um
if you if there is any way we can help here at tftc let me know um it's always a pleasure talking
i hope the next time that we meet on this podcast we do it in person we're able to
cheers in person right um so if i'm ever in germany if you're ever in the united states
let me know we'll meet up i hope so actually two big countries we could be in completely
different parts of the country wherever in the same city we need to meet up yeah cool um
all right fabian it's been a pleasure uh keep crushing it dude it's really incredible to see
what you've done in the year since we last recorded so um i'm very happy to see that
you're not burnt out and you're you're more enthused than ever it's uh very encouraging to
me thank you very much thanks again for having me all right well anytime that's all we got this week
peace and love freaks
