►
From YouTube: PSF TSC Meeting - 02/17/2021
Description
The agenda for today:
https://github.com/Permissionless-Software-Foundation/TSC/issues/4
bch-js documentation:
https://bchjs.fullstack.cash/
A
Okay,
we
are
live
on
youtube
so
for
those
watching
hang
out
for
a
minute
we're
just
gonna,
let
things
settle
down,
do
a
little
housekeeping
and
then
we'll
get
this
meeting
started.
B
A
A
Okay,
we
can
get.
This
started.
Welcome
everybody
I
am
chris
troutner.
I
am
founder
of
the
permissionless
software
foundation
and
fullstack.cache
blockchain
as
a
service.
A
Let's
go
ahead
and
go
around
and
give
a
brief
introduction
for
everybody
who's
joining
the
meeting
today.
David.
Do
you
want
to
start.
C
Sure,
david
r
allen
doing
some
of
the
business
development
work
for
the
permission,
software
foundation.
D
A
Yeah,
just
real
quick,
give
a
give
like
a
summary
of
that
library.
D
It
is
a
friendly.
D
A
To
share
okay,
okay,
well,
yeah,
we'll
I'll
come
back
around
and
have
you
have
you
share
that
yeah,
okay,
yeah
joey?
You
want
to
introduce
yourself.
B
A
A
A
All
right,
this
is
a
technical
steering
committee
meeting.
As
always,
our
agendas
can
be
found
on
github
under
the
permissionless
software
foundation,
github
group,
under
the
tsc
or
technical
steering
committee
repository,
and
we
file
all
of
our
agendas
as
issues.
And
so,
if
you
want
to
look
at
past
agendas,
if
you
go
there
make
sure
that
you
remove
this
is
open
and
then
you
can
see
all
of
our
past
agenda
items.
A
There's
I've
been
pushing
a
lot
of
changes
to
mostly
bc
hjs
and
one
notable
change
to
bch
api,
and
these
are,
of
course,
considered
the
core
software,
that's
maintained
by
the
permission
of
software
foundation
and
and
then
is
reflected
into
the
the
services
that
is
sold
by
fullstack.cache
and
is
used
by
organizations
like
bitcoin
abc
and
as
well
as
a
few
other
small
companies
who
I'm
continuously
trying
to
get
to
join
the
technical
steering
committee
so
that
we
can
get
there
get
their
input.
A
So
let
me
just
go
through
these
real
quick
and
then,
if
you
guys
have
any
questions
we
can
go
into
it,
but,
but
mainly
my
my
focus
here
in
presenting
these
types
of
updates
is
just
for
posterity,
so
that
we
we
have
an
anchor
in
the
ground
and
later
on,
if
someone's,
like.
You
know,
why
was
this
thing
built
this
way
we
can
be
like
yeah,
here's,
this
youtube,
video.
You
can
go
watch.
It
explains
it
in
detail.
A
So
a
lot
of
these
changes
that
I'm
going
to
address
today
they
are
focused
on
simple
ledger
protocol
and
slp
tokens,
and
the
the
move
here
is
that
the
cost
of
running
an
slp
db
instance
is
going
up
exponentially
as
token
transactions
increase
on
the
network
and
as
adoption
increases
of
slp
tokens,
and
so
I
am
gearing
after
having
ta,
I
run
infrastructure
for
several
companies
and
and
and
so
it's
the
onus
is
on
me
to
figure
out
how
to
solve
these
scaling
problems.
A
And
so
one
of
these
scaling
solutions
that
I
am
currently
exploring
is
the
use
of
white
label
slp
d
visa.
It's
an
slp
db
with
a
white
label
filter.
So
it
means
the
the
indexer
ignores
everything
except
the
tokens
on
the
white
list.
It'll
ignore
all
other
tokens,
and
by
doing
that,
you
put
a
hard
cap
on
the
on
the
sort
of
footprint
because
it
doesn't
care
about
the
other
slp
tokens
in
the
network.
A
A
It's
much
much
smaller,
depending
on
how
small
the
white
list
is,
and
it's
it's
way
cheaper
to
run,
much
more
reliable
and
so
I'm
starting
to
create
general
purpose
functions
in
bitcoin
in
bcha,
api
and
js
and
whitelist
functions
that
just
talk
to
the
white
list
slpdb
so
that
exchanges,
for
instance,
you
know
they're
only
going
to
have
a
small
number
of
tokens
that
they
care
about.
They
certainly
do
not
care
about
all
the
tokens
in
the
in
the
market
and
that's
a
perfect
example.
A
A
canonical
use
case
for
for
this
white
list
approach
where
their
costs
can
be
explored.
Extremely
the
reliability
of
the
infrastructure,
can
be
greatly
improved
by
taking
this
approach.
So
that's
what
a
lot
of
these
code
changes
are.
Are
gonna
revolve
around
if
you
guys
have
questions
feel
free
to
interrupt
me.
Otherwise,
I'm
just
gonna,
be
here
on
my
soapbox
doing
my
thing.
A
A
So
there
is
an
example:
shell
script,
for
starting
bch
api
and
for
people
who
are
just
trying
to
use
bch
api.
This
is
really
all
you
need
to
know
about
this.
Is
there
are
these
new
right
here?
A
There
are
these
new
environment
variables
where
you
can
send
set
the
general
purpose,
the
password
for
the
general
purpose,
slp
db
and
a
password
for
the
whitelist
slpdb.
And
if
you
are
only
running
one
instance
of
slpdb,
then
you
would
just
put
the
same
information
in
both
like
just
a
general
purpose,
one
and
then
everything
just
works,
but
if
you're
running
a
separate,
whitelisted
slpdb,
you
can
put
that
right
here
and
that's
really
the
only
thing.
A
The
only
change
made
to
bch
api
just
to
be
able
to
point
it
at
a
separate
slp
db.
Whitelist
instance.
Most
of
the
changes
this
last
week
had
to
do
with
bchjs
and
one
big
change.
So
again,
another
like
caveat
with
the
slp
indexing.
A
Is
that
slpdb,
when
you
ask
it
to
validate
a
a
token
transaction
for
you,
it
comes
back
with
either
true
false
or
null.
So
true
is
that
it's
been
confirmed
that
it
is
valid
false
is
that
it's
been
converted
or
confirmed
that
it
is
in
fact
it
not
a
token
transaction.
It's
positively
confirmed
to
not
be
a
token
transaction
and
it
is
safe
to
spend
as
normal
bitcoin
cash
and
then
null
is
that
slp
db
doesn't
has
not
made
a
judgment.
It
doesn't
either.
A
It
hasn't
seen
it
before
and
it
hasn't
processed
the
transaction,
which
happens
when
slpdb
falls
behind
when
there's
a
lot
of
congestion
on
the
network
or
it
just
for
for
some
other
reason.
It
just
just
can't
make
a
ruling
on
on
the
the
transaction
and
so
bch,
or
this
is
actually
reflected
in
bch
api.
But
bchjs
now
has
this
waterfall
validate
transaction
id
call
and
what
it
is
is
it
it
tries
to
validate
a
token
transaction
through
a
waterfall
of
validators,
so
it
first
of
all
it'll
ping.
A
The
white
list
slp
db,
because
that's
small
and
fast
and
light
and
that'll
come
back
really
quickly.
If
the
token's,
not
in
the
white
list,
it's
going
to
return
null
and
then
if
it
gets
a
null
response,
it's
going
to
move
on
to
the
next
validator,
which
is
the
general
purpose
slp
db,
and
if
the
general
purpose
slpdb
returns
null
as
well.
It'll
try
one
last
attempt
to
validate
it
through
slp
api,
which
is
a
totally
separate
program.
It's
a
it's
a
it's!
A
The
slp,
validate
library
that
I
jt
or
james
kramer
created,
and
I
just
wrapped
it
in
a
rest
api
and
I
called
it
slp
api,
and
so
I've
got
one
running
for
vch.
I've
got
one
running
for
abc
and
I've
got
one
running
on
testnet.
It's
really
slow
it
valid.
A
What's
nice
about
it
is
it
it
validates
totally
independently
of
slpdb,
it's
a
totally
independent
validator,
but
it's
really
slow,
and
so
that's
why
we
use
it
last
as
like
a
last
resort
and
then,
finally,
if
if
waterfall
validate
txt,
tries
all
three
methods
and
and
still
gets
a
null
it'll
return,
the
null
and
so
anyways
this
is.
This
is
sort
of
a
big
upgrade
to
how
validation
has
been
done
in
the
past,
where
you
typically
only
check
with
one
source
of
truth.
This
checks
with
three
different
sources
of
truth.
A
So
it's
much
more
reliable,
you're,
much
less
likely
to
get
a
null
value
at
the
end
of
of
this
whole
thing
and
then
there's
it.
It's
sort
of
there's
just
like
this
one
function
to
rule
them
all
and
then,
if
you
want
to,
if
for
for
most
applications,
that's
enough
and
then
for
people
like
joey
or
me,
who
worry
about
the
nitty-gritty
details
of
infrastructure,
you
know,
then,
then
we
can
start
to
optimize
within
this
call
of
how
we
want
the
code
paths
to
flow.
A
And
then
there's
these
other
functions
primarily
token
utxo
details.
I
added
this
sort
of
wl
for
white
list,
so
it's
the
same.
This
function
is
heavily
used
right
now,
but
this
this
other
function
you
can
just
by
attaching
wl
you'll,
specifically
call
the
whitelist,
slpdb
and
you'll,
ignore
the
other
slpdb
instances
for
like
such,
like
a
use
case
like
an
exchange
where
they
they
just
want
to.
A
You
know,
use
their
their
whitelist
and,
and
it
wants
to
be
fast
and
reliable
and
they're
not
interested
in
the
general
population
of
slp
tokens,
and
then
that's
also
reflected
here
in
this
hydrate
utxo
method,
which
is
the
same
function
just
it
does
the
heavy
lifting
happens
on
the
server
and
I'm
just
going
to
go
over
these
really
fast,
because
if
anybody
wants
more
details,
you
can
ask
me,
I
also
have
links
to
the
documentation
that
explains
this
in
more
detail.
A
There's
the
waterfall
I
feel
like
I'm
missing,
something
like
there
should
be
something
here
that
I
didn't
add:
yeah
anyways.
This
is
this
new
paradigm
of
using
of
using
white
listed
slp,
dbs
or
general
purpose,
sl
pdbs
and
depending
on
the
use
case,
it's
pretty
clear
which,
which
is
you
know
the
the
better
one
to
use,
and
I
expect
this
to
be
a
trend
of
of
the
the
whitelist
stuff.
The
other
big
notable
change
here
is
utxo
get.
This
is
a
new
class.
A
So,
in
addition
to
all
this
slp
work,
I've
been
pulling
in
there's
a
bch
util,
javascript
library,
I've
deprecated
that
and
pulled
that
in
I'll
talk
about
that
in
a
minute.
But
this
is
a.
I
also
created
a
utxo
class
and
this
get
call
is
pretty
cool.
This
is
based
on
feedback
that
I've
gotten
from
other
wallet
developers
in
the
area
just
having
to
try
and
deal
with
utxos,
and
particularly
with
the
increase
in
nfts,
because
those
are
those
are
handled.
You
know
differently.
A
A
It
gives
you
an
array
of
all
the
bitcoin
cash
transat
utxos,
so
these
are
confirmed
false,
like
so
they're
confirmed
to
be
bitcoin
cash
transactions
and
safe
to
spend,
and
then
there's
going
to
be
this
null
array
which
any
utxo
that
comes
back
and
fails
that
waterfall
validation
that'll
end
up
in
this
null
array.
So
for
wallet
developers
they
can
just
basically
safely
ignore
the
null
array,
anything
that
lands
in
that
array.
A
You
can
just
ignore
it,
and
that
way
you
can
be
sure
that
you're
not
accidentally
spending
a
utxo
that
could
be
an
slp
utxl.
So
this
is
it's
sort
of,
like
this
exception
bucket.
It's
like
things
shouldn't
be
an
exception.
They
shouldn't
land
in
this
bucket,
but
the
real
life
is
messy,
and
so,
when
that
happens,
that's
where
they're
gonna
go
and
and
so
that's
sort
of
the
idea
there
and
then
the
slp
utxos
is
returned
as
an
object
and
inside
that
object
is
two
other
objects,
type
one
and
nft.
A
So
if
normal
tokens,
normal
slp
tokens
are,
are
type
one
and
so
they
come
back
and
then
those
are
further
separated
into
tokens
and
minting
batons,
because
one
of
the
things
that
a
wallet
needs
to
be
careful
about
is
not
burning
a
minting
baton,
and
so
so,
if
you're
just
trying
to
build
a
wallet
that
is
supportive
of
tokens.
A
That
token
array
is
what
you
want
to
focus
on
and
if
you
are
building
a
wallet
that
you
want
to
be
token
aware,
but
not
you
don't
necessarily
care
about
tokens
you're,
not
ready
to
support
tokens.
What's
nice
about.
This
call
is
like
you
can
just
focus
on
this
bch
utxos
array,
and
you
know
that
you're
not
going
to
burn
any
tokens
that
might
have
been
coming
along
for
the
ride.
A
So
that's!
This
is
a
really
convenient
call
for
wallet
developers.
This
is
the
main
focus
of
this
thing
and
then
finally,
there's
an
nft
property
and,
and
so
there's
group
tokens
and
then
regular
nft
tokens
and
then
the
minting
baton
for
creating
group
tokens
and
so
those
each
get
their
own.
Their
own
array
and
stoian
you've
done
a
little
more
work
around
nfts
than
I
have.
Does
this
look
like
like?
Do
you
see
any
problems
with
this
architecture,
or
does
this
look
right
to
you.
A
Okay,
okay,
that
sounds
good
anyway,
so
that's
the
get,
call
that's
where
it
is
now
it's
you
know.
It's
been
in
flux
for
the
last
couple
weeks,
I'm
still
actively
trying
to
solicit
input
from
wallet
developers
on
how
it
could
be
better,
and
you
know
the
last
thing
to
note
here
in
the
agenda.
Is
this
bch
util
library,
it's
an
npm
library?
A
I
haven't
officially
deprecated
it
yet,
but
I
will-
and
it
had
these
just
sort
of
useful
functions
that
I
found
myself
using
all
the
time
when
writing
applications
using
bitcoin
cash
like
chunking
up
an
array
into
chunks
of
20
elements,
so
an
array
of
arrays
and
rounding
to
like
two
decimal
places
or
eight
decimal
places
and
then
always
always
rounding
down
so
a
floor
so
that,
because
sometimes
things
bad
things
happen.
A
If
you
round
up
and
then
finding
the
biggest
utxo
in
an
array
of
utxos,
that's
a
super
common
thing:
it's
like
the
simplest
way
to
to
find
a
utxo
to
spend.
So
I've
moved
all
those
functions
into
bch
js,
the
utxo
specific
ones
are
going
into
the
utxo
class
and
the
rest
of
them
are
going
into
the
util
class.
A
So
if
you
go
to
the
bchjs
documentation
at
bchjs.fullstack.cache,
you
can
you
can
read,
you
can
scroll
down
on
the
bottom,
there's
the
utxo
class,
which
is
new
and
the
util
class,
which
has
just
been
expanded
with
all
these
functions
I
just
mentioned
so
that's
the
that's
the
main
gist.
Those
are
the
updates
that
happened
in
the
last
couple
weeks,
so
joey.
A
If,
if
any
of
this
looks
tasty
to
you,
I
know
like
it's
a
pain,
I'm
kind
of
going
back
and
and
refactoring
some
some
things
like
in
minimal
slp
wallet
and
to
take
advantage
of
some
of
these
new
functions,
particularly
with
the
waterfall
validation
method.
That's
a
really
powerful
way,
and
I'm
I'm
personally
not
using
the
utxo
get
method
very
much
yet,
but
I
I'm
going
to
actively
try
to
use
it
just
because
it's
just
this
really
nice
one
high
level
function.
That
gives
you
everything
you
need.
B
Nice
to
see
like
there's
always
improvements
that
are
possible
and
psf's
definitely
always
on
it.
A
Thanks
man
thanks
yeah
yeah,
so
yeah
any
feedback
is,
is
appreciated.
That's
that
stoin,
let's
go
into
what
you
got.
D
Okay,
so
first
just
to
mention
your
announcement
on
twitter
is
about
the
get
call
but
version
4.12,
but
the
the
documentation
is
about
4.13.
It's
completely
changed
yeah.
D
I
first
so
what
is
the
story?
If
you
remember,
we
thought
about
trying
to
add
nft
like
goodies
to
the
to
the
to
the
wallet
full
stack
wallet,
so
I
decided
to
to
start
working
on
this
when
I.
D
So
I
I
first
get
the
starter,
this
bsh
gatsby
starter
and
I
figure
that
it
maybe
will
be
more
clever
to
first
modify
the
the
minimal
slp
wallet
web.
If
I.
B
D
So
I
create
a
new
branch
in
the
this
minimal
wallet
and
I
create
a
new
list
like
separate
file
nowadays,
the
token
file
which
is
working
with
the
the
current
three
dot
version
of
the
of
the
bsh
gs,
the
old
one.
So
I
create
a
separate
file,
name
nft.js
and
I
try
this
new
get
call
because
yeah,
it
sounds
pretty
cool.
So
I
already
have
the
list
nft
function,
which
is
just
listing
this
nft.
D
D
The
parents-
yes
in
the
seo,
pgs
library,
this,
the
james
grammer
one
inside
the
group
section-
there
is
a
little
array-
weighs
only
the
the
transaction
id
of
the
children
mentioned.
No,
no
other
information,
just
a
short
array,
and
when
you
have
this
array
you
can,
after
this,
from
the
the
token
section,
you
can
get
more
information
like
document
ids
and
everything
everything.
A
A
D
And
if
you
have
inside
this
group
token,
like
children
like
a
children,
array,
okay
array-
and
you
put
there
only
the
tx
hashes
on
the
children
for
this
group-
nothing
else,
so
it
will
not
make
the
the
return
data
too
big
uh-huh.
So
for
the
wallet
implementations,
they
will
get
first
disarray
and.
B
D
A
Right
yeah,
so
that's
I'm
wondering
if
should
I
have
I
mean?
Maybe
the
answer
is
both,
but
I'm
wondering
if
like
because
I
think
if
I,
when
I'm
when
I'm
calling
the
hydrate
utxo
method
to
get
this
information
on
on
an
nft
token,
I'm
pretty
sure
I
can
do
one
more
step
to
find
the
parent.
A
D
In
my
hot
c,
in
all
my
projects
until
now,
I
was
doing
a
code
directly
to
the
slpdb
database
with
the
group
id
and
it
was
returning
me
all
the
children
for
this
group.
There
we
go.
A
A
So
I'll
work
with
you
on
that
because.
D
D
When
I
have
this
minimal
wallet
already
how
to
see
not
compiled,
but
maybe
by
browse,
if
I
type,
if
I
make
one
file,
will
be
the
axios
inside
or
no.
A
There
is
you
kind
of
have
to
it's,
not
obvious,
you
have
to
know
sort
of
how
the
code's
laid
out,
but
so
I
know,
if
you
bring
in
you
know,
so,
if
you
instantiate
minimal
slp
wallet,
the
the
bchjs
library
is,
is
encapsulated
in
it,
so
you
can
make
any
call
with
that,
and
then
axios
is
in
is,
is
I
think,
in
every
main
class,
so
you
could
call
any
class
within
bchjs.
D
A
I'm
thinking
in
terms
of
the
stack,
and
so
I
think
like
where
I
think
just
you
know,
based
on
what
we've
just
talked
about,
I
think
my
approach
would
be
to
add
a
new,
a
new
bch
api
rest
call
that
makes
that
query
to
slp
db
to
get
the
children.
For
a
group
token.
A
A
Right
well,
if
there's
no,
if
there's
no
like
nft
tokens
at
that
address,
then
the
the
call
wouldn't
get
made,
so
it
wouldn't
be
inefficient
in
that.
In
that
regard,
it
would
only
get
called
if
it
turns
out
that
there's
there's
nft
tokens
at
that
address
that
that
you
know,
and
then
they
do
need
to
make
the
call.
A
But
let's
start
with,
let's
start
with
I'll
work
with
you
this
week
to
get
more
information
on
that
slp
db
query,
and
then
I
can
create
a
a
new
rest
api
endpoint
for
making
that
query,
and
then
I
think
that's
the
next
step
for
this
and
then
and
then
and
then
we
can
figure
out
what
the
next
steps
are.
After
that.
D
A
A
To
start
using
these
new
this
new
functionality,
I
took
a
little
bit
of
a
look
at
minimal
slp
wallet
this
week,
trying
to
add
this
new
functionality,
and
it's
just
it's
not
gonna,
be
it's
not
gonna,
be
as
easy
as
I'd
like
it
to
be,
but
but
we'll
we'll
get
it.
A
You
know
if
you
want
to
do
a
tighter
iteration,
like
I'm,
I'm
happy
to
like
ping
ping
me,
because
I
mean
your
mornings
are
my
evening
and
and
yeah
just
let
me
know
what
you're
working
on
on
this
stuff,
and
that
way
you
know,
I
I
don't
want
you
to
like
spend
a
bunch
of
time
on
something
that
that,
like
you
know,
might
might
need
to
be
refactored
in
order
to
get
it
into
the
mainline
code,
because
because
your
thoughts
are
really
valuable
and
I
just
want
to
make
sure
we're
yeah.
D
A
Yeah,
okay,
I
I
knew
we
were
missing
something
there,
because
because
pooper
said
something
about
this-
and
I
was
like
oh
and
then
I
tried
to
get
clarification
and
then
he
walked
it
back.
So
I
was
like
okay
and
and,
like
I
said,
you've
done
a
lot
more
work
with
nfts
than
I
have
that's.
This
is
this
is
good.
This
is
exactly
the
kind
of
feedback
that
that
I
was
hoping
to
get
and
yeah.
A
Yeah,
that's
sort
of
critical
information
for
your
for
your
idea
around,
not
the
last
hackathon
but
the
hackathon
before
you
were
working
on
this
decentralized
name,
server,
service
and.
D
Yeah,
I
use
it
also
under
this
next
one
hackathon
I
created
a
rest
api
and
the
nft
viewer.
So
in
fact
the
the
gatsby
part
is
pretty
much
ready.
I
have
a
react.
I
created
a
rest
api,
very
simple
one
which
was
doing
this
curious
to
slp
db,
and
it
was
like
just
get
tokens
and
put
tokens
to
create
any
of
these.
Even
not
only
get
the
information,
okay
and
yeah,
and
I
have
the
two
two
components
react
components.
D
One
was
that
nft
viewer,
which
will
be
very
easy,
maybe
to
to
change
and
become
one
of
the
cards
inside
the
wallet
it's
getting,
this
information
and
visualize
it
and
the
other
one
was
nft
creator
which
can
be
different
application,
which
need
to
do
some
additional
stuff,
like
updating,
maybe
image
to
the
ipfs.
A
A
D
A
A
A
A
Very
cool,
very
cool
man,
yeah,
okay!
Well,
let's,
let's
take
this
offline.
I
definitely
want
to
see
what
you
got
and
well,
let's
get
working
on
that
that
slp
db
query.
That
would
be
a
great
thing
to
have.
A
B
A
D
A
A
A
B
Yeah
I
mean
next
next
meeting
if
there's
not
anything
else.
Coming
up,
I'm
happy
to
perfect
perfect.
C
Yeah
way
over
my
head
most
of
it,
but
I'm
happy
to
start
learning
some
js
cool
cool.
A
Well,
on
a
related
technical
note,
we
had
our
first
voting
token
airdrop
last
thursday,
and
the
voting
for
the
current
proposal
will
be
counted
on
next
thursday.
A
So
next
wednesday
will
be
our
community
committee
meeting
and
we'll
just
kind
of
check
in
and
see
how
we're
doing
from
a
technical
standpoint,
the
voting
stuff
is
working
really
well.
The
the
airdrop
worked
really
well.
The
towing
is
working
really
well
calculating.
The
merit
is
working
really
well,
so
I
think
we've
got
a
good.
You
know
from
a
code
stamp
coding
standpoint,
we've
got
a
good
foundation
for
doing
these
types
of
airdrops
and
votes.
A
My
plan
on
the
next
comcom
meeting
is
to
talk
more
like
qualitatively
about
the
process
and
how
we
all
feel
about
it.
If
it,
we
feel
that
it's
fair
and
and
things
we
can
do
to
improve
it.
So,
but
from
a
technical
standpoint,
the
this
whole
airdrop
voting
token
things
cut
really
coming
together
and
working
well
and
I've
got
code.
I
can
share
with
anybody
who's
interested.
A
Okay,
well,
I
think
I'll
wrap
this
up.
You
guys
really
appreciate
you
attending
and
yep
good
meeting
I'll,
see
you
guys
online
and
telegram.