2018-12-03 20:55:34
I have a problem with how everyone seems to HD wallets. It seems to be skipping the huge value of having hierarchical deterministic keys.

Fireduck
2018-12-03 20:56:34
So what everyone does is has some path for their coin with some public and some private derivations and then from that point they generate receive addresses and change addresses

Fireduck
2018-12-03 20:57:01
this is all well and good if you have one pool of funds, but what if you want separate pools but don't want a proliferation of seeds?

Fireduck
2018-12-03 20:57:39
I'd like to see clients able to create sub groups of wallets that could be imported into clients on their own or used from the master key and seen as a tree

Fireduck
2018-12-03 20:58:12
so for example, I could have a master fireduck seed and then under that a wallet for mining proceeds, a wallet for transaction escrows, etc

Fireduck
2018-12-03 20:58:56
if I wanted to take one of those sub wallets and install that on a machine, I should be able to do that without exposing the master keys

Fireduck
2018-12-03 20:59:10
This is of course all doable already with BIP39 HD, but no one seems to do it

Fireduck
2018-12-03 20:59:48
There are some tricky bits, like for that sub wallet derivation, you probably want it to be a private derivation

Fireduck
2018-12-03 20:59:59
which is fine, but it means the user needs to store or remember the key names somewhere

Fireduck
2018-12-03 21:00:36
Since we are in the business of making the snowblossom protocol, we can help there.

Fireduck
2018-12-03 21:01:17
lets suppose we have a standard where whatever level you are, there is private derivation that can be used to generate a key pair for a "recovery hint"

Fireduck
2018-12-03 21:01:52
you send a snowblossom transaction to that address with an extra encrypted payload (encrypted to the key pair) that lists the private key labels for the sub keys

Fireduck
2018-12-03 21:02:15
If you want to update it, then spend that transaction to a new output to that hint address with the new list

Fireduck
2018-12-03 21:02:37
that way, you can always do a quick getunspent for the hint address to get the recovery hint from the network

Fireduck
2018-12-03 21:10:52
wiki that if ever in need of fanning hype flames

Rotonen
2018-12-03 21:11:17
ha

Fireduck
2018-12-03 21:12:00
no, really, that’s the main appeal here - going off the beaten path with well executed simple good ideas

Rotonen
2018-12-03 21:12:23
right. I've wanted to do this with a bitcoin client forever

Fireduck
2018-12-03 21:12:39
Other than the recovery hint storage, there is no reason it can't be done with any EC key based crypto

Fireduck
2018-12-03 21:26:58
@Fireduck
`I'd like to see clients able to create sub groups of wallets that could be imported into clients on their own or used from the master key and seen as a tree`
I thought they had this by producing sub public keys with recursive key functions
`This is of course all doable already with BIP39 HD, but no one seems to do it`
yeah that, seriously, no one does? wtf
`that way, you can always do a quick getunspent for the hint address to get the recovery hint from the network`
using the blockchain to store your sub derivation paths?
neat thoughts.

Clueless
2018-12-03 21:28:01
yeah, for low volume storage a blockchain is pretty neat

Fireduck
2018-12-03 21:39:09
@Fireduck I thought electrum was doing something like that.

Clueless
2018-12-03 21:39:27
looks like they're probably doing similar with bip44, which I imagine you could mix with bip39 if you're clever.

Clueless
2018-12-03 21:39:48
`m / purpose' / coin_type' / account' / change / address_index`

Clueless
2018-12-03 21:40:46
ah, right. Now that you mention it, i think trezor is doing that

Fireduck
2018-12-03 21:40:53
I retract my claim that no one was

Fireduck
2018-12-03 22:12:43
@Fireduck tumblr is banning porn on the 17th.
More mass migration primed and ready.

Clueless
2018-12-03 22:15:42
where will alt porn communities go then, back to usenet?

Rotonen
2018-12-03 22:16:05
also channels ~ nntp on blockchain

Rotonen
2018-12-03 22:16:18
I'm telling you man, people all over the internet are *begging* for alternatives to facebook, youtube, reddit, and tumblr and such.

Clueless
2018-12-03 22:16:40
I should quit my job and just knock it out

Fireduck
2018-12-03 22:17:26
but you are aware you’re effectively trying to resurrect usenet? :P

Rotonen
2018-12-03 22:18:11
and everyone loved usenet

Fireduck
2018-12-03 22:18:33
yep, the main issue are the archival gaps

Rotonen
2018-12-03 22:18:50
there are a few differences, mainly that anyone can create a channel

Fireduck
2018-12-03 22:18:55
without anyone's permission

Fireduck
2018-12-03 22:19:02
also my university still had a campus nntp, good fun

Rotonen
2018-12-03 22:19:08
and distribution of the channel will be proportional to interest in it

Fireduck
2018-12-03 22:19:28
as in how non-usenet nntp servers worked

Rotonen
2018-12-03 22:19:43
Didn't know there were non-usenet nntp servers

Fireduck
2018-12-03 22:19:50
even my hometown isp ran a local one

Rotonen
2018-12-03 22:19:54
but I could see that making sense

Fireduck
2018-12-03 22:20:03
and had a bbs interface to it too

Rotonen
2018-12-03 22:20:31
yep, no need to confuse the americans with non-english non-ascii

Rotonen
2018-12-03 22:22:03
in̯̼͉̲͉͉ͅd͔̬̬̫̖e̶ę͚̙͉̣̰̗d̵̤

Fireduck
2018-12-03 22:22:43
just tried to rub his screen off

Clueless
2018-12-03 22:23:08
http://eeemo.net/

Fireduck
2018-12-03 22:25:52
Be careful, your text might all get stuck that way.

Clueless
2018-12-03 22:26:49
speaking of which, how hard would it be to add text snippets and images to your slack archive

Fireduck
2018-12-03 22:26:50
?

Fireduck
2018-12-03 22:27:06
shouldn't be too hard

Clueless
2018-12-03 22:29:01
ideally, we would mirror the images rather than pointing to them on slack servers

Fireduck
2018-12-03 22:30:28
a shame slack itself already has decent decompression bomb filtering

Rotonen
2018-12-03 22:33:04
lol

Fireduck
2018-12-03 22:39:30
but ’usenet on blockchain’ is the kinda tagline a lot of people seem to seek

Rotonen
2018-12-03 22:39:32
@Fireduck need to see if they store things privately depending on access to a slack channel

Clueless
2018-12-03 22:39:47
also hilariously in line with the web site

Rotonen
2018-12-03 22:40:55
@Clueless do you want to work on a startup?

Fireduck
2018-12-03 22:41:06
Downsides, no pay (probably) and will likely be a failure

Fireduck
2018-12-03 22:41:17
upside, you get to be CTO and make all technical decisions

Fireduck
2018-12-03 22:41:39
@Fireduck depends on the startup, possibly

Clueless
2018-12-03 22:41:51
probably yes, depending.

Clueless
2018-12-03 22:42:05
also legally liable for said decisions, which is not a problem so long as you yourself are a majority owner

Rotonen
2018-12-03 22:42:38
you can get away with quite a lot as agent of the corporation here

Fireduck
2018-12-03 22:43:07
get an investor and you’ll waive a lot of that

Rotonen
2018-12-03 22:43:24
they want things they can nail you to the wall with

Rotonen
2018-12-03 22:43:29
this link work for everyone?
https://files.slack.com/files-pri/TAT1S8NR5-FB6HBD08J/screenshot_from_2018-06-12_22-36-38.png

Clueless
2018-12-03 22:43:33
why would there need to be an investor when you have a CTO?

Fireduck
2018-12-03 22:43:50
that link does work, but I'd rather not depend on it

Fireduck
2018-12-03 22:44:31
investors usually take advisory roles and actually help with the business side of the business

Rotonen
2018-12-03 22:44:54
@Fireduck OH, I misread

Clueless
2018-12-03 22:44:58
`ideally, we would mirror the images rather than pointing to them on slack servers`

Clueless
2018-12-03 22:45:06
I read that as "we would not mirror them`

Clueless
2018-12-03 22:45:07
path to revenue, pivot identification, focus vs. diversification

Rotonen
2018-12-03 22:45:15
yeah, plan is to download it ourselves

Clueless
2018-12-03 22:45:19
cool

Fireduck
2018-12-03 22:46:08
I should learn proper object loading / factory stuff.

Clueless
2018-12-03 22:46:35
bah

Fireduck
2018-12-03 22:47:37
you python, so just use the zope factory type mechanisms

Rotonen
2018-12-03 22:50:43
this bullshit that I made up on the spot?
```
def message_factory(data):
if "user" in data:
return Message(data)
elif "bot_id" in data:
return BotMessage(data)
elif "subtype" in data:
if "file_comment" in data["subtype"]:
return FileMessage(data)
```

Clueless
2018-12-03 22:53:15
if that sort of thing fits on a screen you are good

Fireduck
2018-12-03 22:53:43
especially if you are using other code to actually do the reading once you figure out the type, which you are presumably doing in this constructors

Fireduck
2018-12-03 22:53:49
that is pretty clean in my opinion

Fireduck
2018-12-03 22:54:21
only thing I'd add, is map<string,int> unhandled_types

Fireduck
2018-12-03 22:54:45
else unhandled_types("data")++

Fireduck
2018-12-03 22:54:52
or whatever the syntax would be

Fireduck
2018-12-03 22:55:02
to track a count of messages you couldn't process in some way

Fireduck
2018-12-03 22:56:12
```
else:
unhandled += 1
```

Clueless
2018-12-03 22:56:43
sure, if you don't want to know what types of the unhandled messages are

Fireduck
2018-12-03 22:57:07
but I guess you might not have a type, since it is in random fields

Fireduck
2018-12-03 22:57:12
if I am reading this right

Fireduck
2018-12-03 22:57:15
I didn't bother with catching because that appears to be the only three types of messages that actually exist, but I think that's a good suggestion.

Clueless
2018-12-03 22:57:36
yeah, if it isn't relevant to the problem feel free to ignore me of course

Fireduck
2018-12-03 23:03:05
@Fireduck what's the terminology around this? @Rotonen said zope factories which looks sorta like it.
Other terms seem like `interfaces` `adapters`

Clueless
2018-12-03 23:03:42
I don't have a term for it

Fireduck
2018-12-03 23:04:19
I'd call it a parser, but I use that for any process that involves hey, here is some lump of something, figure out what it is to decode into that thing

Fireduck
2018-12-03 23:04:43
I feel like this should be a standard library thing

Clueless
2018-12-03 23:05:25
where you pass in a list of classes to a parser, pass it data, passes out appropriate objects.

Clueless
2018-12-03 23:07:29
yeah, but your typing isn't clean

Fireduck
2018-12-03 23:07:36
some are identified by the presence of some field

Fireduck
2018-12-03 23:07:44
and then further subtyped by other fields

Fireduck
2018-12-03 23:07:56
what you have now is cleaner than anything you are going to find a library for

Fireduck
2018-12-03 23:07:58
and readable

Fireduck
2018-12-03 23:08:00
and maintainable

Fireduck
2018-12-03 23:08:21
you add a new type, or fine some message needs some special handling in some way, easy to add to your if blocks

Fireduck
2018-12-03 23:10:23
a library is like a closed machine, if it works for you, great but if it doesn't have the right ins and outs and levers, it might be more limiting than helpful

Fireduck