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