2019-11-27 21:07:15
which jar is the channels node one?

Rotonen
2019-11-27 21:07:43
did my usual and did not end up with a jar which looks plausible
```#!/usr/bin/env bash
bazel clean
for target in $(grep name BUILD | cut -d'"' -f2)
do
jar_name="$target"_deploy.jar
bazel build ":$jar_name"
mv bazel-bin/"$jar_name" "$jar_name"
done
# EOF```

Rotonen
2019-11-27 21:11:08
Did you do this in the channels repo?

Fireduck
2019-11-27 21:11:22
oh, separate repo

Rotonen
2019-11-27 21:12:04
bazel build :ChannelNode_deploy.jar :ChannelIceLeaf_deploy.jar

Fireduck
2019-11-27 21:12:22
Node only and GUI respectively

Fireduck
2019-11-27 21:12:53
meh, i have my bash thingy

Rotonen
2019-11-27 21:13:23
sure, it was just the easiest way to convey the information

Fireduck
2019-11-27 21:13:52
is the documentation in the wiki?

Rotonen
2019-11-27 21:14:04
i assume that thing wants some documentation

Rotonen
2019-11-27 21:14:12
and needs a TCP port open, or somesuch

Rotonen
2019-11-27 21:14:18
for the node without gui?

Fireduck
2019-11-27 21:14:24
just the node

Rotonen
2019-11-27 21:15:06
config/node.conf is an example

Fireduck
2019-11-27 21:15:25
not documented in the wiki yet, I am driving most people towards the GUI

Fireduck
2019-11-27 21:15:44
how does the channel list work as a list?

Rotonen
2019-11-27 21:16:19
and those ports seem client oriented - how do i only take part in the hosting?

Rotonen
2019-11-27 21:17:09
where does it look for the node.conf per default?

Rotonen
2019-11-27 21:18:22
same as all of my other things, it expects the config file to be the first command line parameter

Fireduck
2019-11-27 21:18:39
ah yes

Rotonen
2019-11-27 21:18:55
yeah, for just hosting you can remove web and socks ports

Fireduck
2019-11-27 21:19:06
the channel list takes a comma separated list

Fireduck
2019-11-27 21:19:35
however, when you add something once it puts into a table and will resubscribe on restart even if it is no longer in the config

Fireduck
2019-11-27 21:20:10
port= is the network port

Fireduck
2019-11-27 21:20:14
I left it off, there is a default

Fireduck
2019-11-27 21:20:27
it will autodetect ipv4 ipv6 and upnp

Fireduck
2019-11-27 21:20:39
why does it need a wallet?

Rotonen
2019-11-27 21:20:54
So all communication between nodes is done using TLS

Fireduck
2019-11-27 21:21:04
which is signed by the keys of the node

Fireduck
2019-11-27 21:21:08
kk

Rotonen
2019-11-27 21:21:09
so it needs a wallet to store the node key

Fireduck
2019-11-27 21:21:12
can it make me one?

Rotonen
2019-11-27 21:21:17
it will

Fireduck
2019-11-27 21:21:30
it makes a wallet with only one key

Fireduck
2019-11-27 21:21:37
if it gets a wallet with more than one key, it breaks

Fireduck
2019-11-27 21:21:57
ipv6 only?

Rotonen
2019-11-27 21:22:14
works fine on ipv4

Fireduck
2019-11-27 21:22:20
I have a seed node on both

Fireduck
2019-11-27 21:22:31
it will try to map an UPNP port if it can

Fireduck
2019-11-27 21:22:42
took a while to figure out ipv4

Rotonen
2019-11-27 21:22:53
no upnp anywhere near my stuff

Rotonen
2019-11-27 21:23:07
probably for the best

Fireduck
2019-11-27 21:23:11
```Nov 27, 2019 9:21:57 PM snowblossom.channels.ChannelNode <init>
INFO: My node address is: node:ut58s0rxxtyqe8u3c695xt59drxxf7vspz79p60a```

Rotonen
2019-11-27 21:23:16
well, it's done a thing now

Rotonen
2019-11-27 21:23:29
yeah, it will join up with the DHT

Fireduck
2019-11-27 21:23:48
so how do i make it be helpful too?

Rotonen
2019-11-27 21:24:24
if you are willing to have it be on a hostname or ip that I can put in the source code, it would be good to have an additional seed

Fireduck
2019-11-27 21:24:41
hostname, ipv4 and ipv6, sure

Rotonen
2019-11-27 21:24:45
other than that, it is already being a useful member of the DHT assuming it can get incoming connections

Fireduck
2019-11-27 21:24:49
do i need to expose the port?

Rotonen
2019-11-27 21:24:53
yeah

Fireduck
2019-11-27 21:25:00
you can change the port if you'd like

Fireduck
2019-11-27 21:25:08
meh, default ports are usually fine

Rotonen
2019-11-27 21:25:41
The cool thing is that we hard code the key IDs of the seeds, so that communication is actually proper TLS with a validated cert

Fireduck
2019-11-27 21:25:51
and then later peers that are learned always come with a key ID

Fireduck
2019-11-27 21:26:09
so all communication always knows what key to expect so it is all validated certs for the entire network

Fireduck
2019-11-27 21:26:18
could i also just use a real cert?

Rotonen
2019-11-27 21:26:33
or is that a permanent self signed thing?

Rotonen
2019-11-27 21:26:50
no, I am doing some strange things. Signing the cert with the node key and putting that in x509 extension metadata

Fireduck
2019-11-27 21:26:57
kk

Rotonen
2019-11-27 21:27:09
The cert itself is actually one per runtime, just signed with the static node key

Fireduck
2019-11-27 21:27:35
where does it store that?

Rotonen
2019-11-27 21:27:47
as in i need to add that to a higher degree of a backup scheme now

Rotonen
2019-11-27 21:29:13
and `4862` is the port?

Rotonen
2019-11-27 21:29:21
only non-IANA i have something listening on

Rotonen
2019-11-27 21:29:35
the wallet path is where it keeps the node key

Fireduck
2019-11-27 21:29:44
and yeah, should be backed up. :wink:

Fireduck
2019-11-27 21:29:47
gotcha, will just backup that wallet

Rotonen
2019-11-27 21:29:54
4862, yep

Fireduck
2019-11-27 21:33:13
i'll briefly take it down to make it a systemd service instead of just directly running it

Rotonen
2019-11-27 21:34:03
sure

Fireduck
2019-11-27 21:34:58
up, persistent, and manages its own firewall and other resources within bounds

Rotonen
2019-11-27 21:35:37
now, how do i make it host your stuff, by listing channels in the config?

Rotonen
2019-11-27 21:36:07
yeah, for now.

Fireduck
2019-11-27 21:36:23
Eventually I'll probably add an authenticated local-only rpc port like SnowBlossomClient

Fireduck
2019-11-27 21:36:59
how do i list more than one channel? the example config does not show or hint

Rotonen
2019-11-27 21:37:12
comma separeted

Fireduck
2019-11-27 21:37:18
channel_list=a,b,c

Fireduck
2019-11-27 21:37:29
gotcha

Rotonen
2019-11-27 21:37:36
which channels do you have?

Rotonen
2019-11-27 21:37:52
They can also be via name: channel_list=hello,worstchat,chan:jw96y2w9cvvfmrese73vqv2zawc5v77ljgqwycdl,testblog

Fireduck
2019-11-27 21:38:41
i think in hello, worstchat and testblog i have very little interest

Rotonen
2019-11-27 21:38:45
what's that unnamed one?

Rotonen
2019-11-27 21:38:51
I can't remember

Fireduck
2019-11-27 21:39:03
i thought you had the site at least?

Rotonen
2019-11-27 21:39:12
or is that hello?

Rotonen
2019-11-27 21:39:33
hello is the test site that just says "good job, it works"

Fireduck
2019-11-27 21:39:42
chan:jw96y2w9cvvfmrese73vqv2zawc5v77ljgqwycdl is the clone of http://snowblossom.org

Fireduck
2019-11-27 21:40:15
i remember noting two worthy of hosting

Rotonen
2019-11-27 21:40:19
that is definitely the other

Rotonen
2019-11-27 21:40:26
do you somehow dump the wiki too?

Rotonen
2019-11-27 21:40:39
no, not yet

Fireduck
2019-11-27 21:41:42
code repositories?

Rotonen
2019-11-27 21:42:30
if i am to believe past me
https://snowblossom.slack.com/archives/CAT1SNYDV/p1574016252044400 repos and the main site i’m on board for

Rotonen
2019-11-27 21:42:58
oh well, for now, the site

Rotonen
2019-11-27 21:43:34
awesome. Having an additional seed I can put in is super helpful.

Fireduck
2019-11-27 21:44:00
poke me if the firewall becomes a hedgehog

Rotonen
2019-11-27 21:44:10
the service autodiscovery fabric is fickle sometimes

Rotonen
2019-11-27 21:45:04
is that node address also a valid snowblossom address?

Rotonen
2019-11-27 21:45:37
yes and no. The client will tell you it is invalid, because 'node' isn't right

Fireduck
2019-11-27 21:45:53
and if you change 'node' to 'snow' or leave it off, it will still fail

Fireduck
2019-11-27 21:46:01
because the type is encoded in the checksum

Fireduck
2019-11-27 21:46:21
that's nice, was thinking people can start to donate to those, and minimizing tears is nice

Rotonen
2019-11-27 21:46:29
kk

Rotonen
2019-11-27 21:46:31
but if you were to reencode it to fix the checksum, you could send funds to it and then spend them using the wallet on your node

Fireduck
2019-11-27 21:46:32
very good

Rotonen
2019-11-27 21:46:43
meh

Rotonen
2019-11-27 21:47:01
the channel db already uses 300M disk

Rotonen
2019-11-27 21:47:10
i suppose that's just the schema or something silly like that :stuck_out_tongue:

Rotonen
2019-11-27 21:47:16
probably

Fireduck
2019-11-27 21:47:47
seems to be a picky eater too `INFO: I don't want chunk: a5a3ffb8a3656327a8707f7260c893e2b4984fd8722aa533b37453d5687258f4`

Rotonen
2019-11-27 21:49:23
yeah...the chunk syncronization is not perfect. It ends up asking a bunch of peers for things, sometimes the same things and then saving whatever it gets first.

Fireduck
2019-11-27 21:50:16
designing for idempotency is nice

Rotonen
2019-11-27 21:50:20
allows for such

Rotonen
2019-11-27 21:50:26
right

Fireduck
2019-11-27 21:50:56
mrplow takes a surprising amount of cpu, even though it's not doing anything

Rotonen
2019-11-27 21:51:15
that is strange

Fireduck
2019-11-27 21:52:16
the node has used 17min cpu time in the same time as it has burnt through 45min cpu time

Rotonen
2019-11-27 21:52:22
this is over a few weeks

Rotonen
2019-11-27 21:54:47
i'd assume the node to actually do more of those two, as no one is mining on my pool

Rotonen
2019-11-27 21:55:25
yeah, and in fact the node has to do the hard part which is building the new block templates for the pool to distribute

Fireduck
2019-11-27 21:56:13
probably missing an interrupt-esque sleep somewhere

Rotonen
2019-11-27 21:56:25
overeager networking or somesuch

Rotonen
2019-11-27 21:57:54
oh yeah, you probably want to point your channels node at your snowblossom node:
node_uri=
Fireduck
2019-11-27 21:58:42
If you leave it blank, it used built in snowblossom seed nodes

Fireduck
2019-11-27 21:59:31
gotcha, done

Rotonen
2019-11-27 22:00:24
oh, you init a new rocksdb per channel, simple enough

Rotonen
2019-11-27 22:00:59
yeah, will have to add quota management and ability to nuke a channel from disk later

Fireduck
2019-11-27 22:01:19

Rotonen
2019-11-27 22:01:32
yeah, that should be fine

Fireduck
2019-11-27 22:01:55
*https://github.com/snowblossomcoin/channels/compare/5ed45da5b953...dd558d894b1d*
https://github.com/snowblossomcoin/channels/commit/dd558d894b1d15734df2413b135a4b50f4e58e62 - Add seed node, add config notes

GitHub
2019-11-27 22:04:56
hardcoded, classy

Rotonen
2019-11-27 22:05:42
absolutely

Fireduck
2019-11-27 22:06:07
It is a little verbose with all the protobuf baggage, but I prefer that than making my own format and parsing it

Fireduck
2019-11-27 22:06:18
fair

Rotonen
2019-11-27 22:06:22
however, I guess I did make a format for the uri

Fireduck
2019-11-27 22:06:23
eh

Fireduck
2019-11-27 22:17:16
ping me if you try to put any other project useful channels out

Rotonen
2019-11-27 22:17:38
will do

Fireduck