Pages:
Author

Topic: Electrum server discussion thread - page 15. (Read 61494 times)

legendary
Activity: 1896
Merit: 1353
January 29, 2013, 06:59:51 AM
one more bugfix commited this morning, this time for abe servers:
https://github.com/spesmilo/electrum-server/commit/4d465a7b3cb02c668440c03dd71d82b98f947637

legendary
Activity: 1896
Merit: 1353
January 28, 2013, 01:53:18 PM
another bugfix: if your bitcoind is older than this commit, please update/rebase :

https://github.com/bitcoin/bitcoin/commit/cd7fb7d1deece9da15d7750b3e05f729555a2cbe
hero member
Activity: 742
Merit: 500
January 28, 2013, 11:29:39 AM
on january 13th, a silent bug was introduced in the server code.
I fixed it today.
please pull the new code if you upgraded after this date!
Oops. Sorry about that.

After I get some time, I'll get a PR in for my logging branch.  Then I'll work on unit tests.
legendary
Activity: 1896
Merit: 1353
January 28, 2013, 10:46:12 AM
on january 13th, a silent bug was introduced in the server code.
I fixed it today.
please pull the new code if you upgraded after this date!
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 20, 2012, 04:54:45 AM
I'd assume most operators only need at most one secondary nick (currently no one else has this requirement). As for Tor - this would yet again need more thought because publishing a Tor node on public IRC will give people a bad experience by trying to connect to it outside of Tor. I don't really see the necessity either - people can and do connect to public servers from Tor and this works just fine. You could just publish the Tor address in your server info tab.
I think probably one would be enough. I can't think of another reason for having multiple names off hand. My idea with publishing a Tor address was that it would only show up in the list if a socks proxy was enabled. That way any client wanting to use Tor would choose socks mode and immediately see a list of available onions. Maybe even better, add a Tor proxy mode (HTTP, SOCKS4, SOCKS5, TOR) that is just the same as SOCKS5 but only lists onions. This makes it dead easy for someone wanting to connect this way. I guess this is a pretty small tweak as those keen to do this can probably manually enter onion addresses - it's just kind of nice if the one you use goes down to be able to choose an alternate from a list without going out to research it.

About the space issue: If you switch to Port 80 and 443 you will save a couple of chars. You're currently lacking 5.  Changing h8080 to h80 gives you two, so you might need to change t50001 or s50002 to a lower port number or try to shorten your hostname.
I have a shorter domain name available so I may just switch back to that one. It's too bad there isn't another field available in IRC to store some user comment or data. Perhaps an alternate approach would be if no port info is present the client could hit the server itself with an rpc call that provides details. In fact, this could provide an onion name if available. (Or maybe not as that would mean every client hitting a server and thus potentially a significant load).

Anyway these are just ideas for consideration as development advances. I've provided pull requests in the past on the client and if there was some general agreement that an idea is worth doing then I'd be happy to implement it and send a pull on the server as well. I'm trying to get to a backlog of features I have I'd like to sync with the new version client and then send pulls for them. Soon I hope.
newbie
Activity: 46
Merit: 0
December 20, 2012, 03:33:12 AM
I don't know much at all about IRC so maybe there's some limitation preventing that but this seems like fairly KISS as well. I never logged into #electrum but doing this just now I was wondering what name my server would use when I don't set a nickname in the config?

edit: Oh, I found myself. It's just some random gibberish name. Maybe I'll go add a proper nick then.
edit2: Hmm. Maybe this is why my https port doesn't show up - not enough space. Isn't there a better way to do this?

Good idea - yes you could implement the irc thread to open multiple connections. It'd need a smart way of reading / iterating this from the server config without having to define lots of defaults. The limit IRC servers place for connections by IP is somewhere around 4-5 and it applies to a single server - connecting to irc.freenode.net will spread the connection to various servers. I'd assume most operators only need at most one secondary nick (currently no one else has this requirement). As for Tor - this would yet again need more thought because publishing a Tor node on public IRC will give people a bad experience by trying to connect to it outside of Tor. I don't really see the necessity either - people can and do connect to public servers from Tor and this works just fine. You could just publish the Tor address in your server info tab.

About the space issue: If you switch to Port 80 and 443 you will save a couple of chars. You're currently lacking 5.  Changing h8080 to h80 gives you two, so you might need to change t50001 or s50002 to a lower port number or try to shorten your hostname. There was the idea to make port numbers implicit - i.e. if they are not published the client assumes it's t50001 for example but this needs to be implemented in the server and all servers need to update their codebase in a relatively short timeframe to make this work.

Edit: Note about Tor address publishing on info tab, server propagation for implicit port names (not client, they don't query IRC)
hero member
Activity: 742
Merit: 500
December 19, 2012, 09:09:09 PM
Does this support reporting multiple different hosts and also multiple ports? Both would be very useful and IMO needed. Reporting a secondary name would be useful for running a Tor hidden service alongside a normal one. Reporting more than one port would be useful for more flexible access. eg. port 80 and 110. Or configuring a tunnel to hop thru a proxy/firewall for certain users, exposing a secondary access location.

Each server joins #electrum with a unique nickname prefixed by E_ and publishes its info in its name field which can be queried /whois . The limit here is the IRC name field - which has a maximum of 50 chars. Already at this time if your hostname is too long the ports for TCP, TLS, HTTP, HTTPS don't fit in.

Adding multiple hostnames and ports would be fairly complicated - moreover the clients would need to decode this and so forth. The KISS approach is one server instance, one user on IRC, one hostname and a specific set of ports.

What could certainly be done (but no priority) is mutliple server instances sharing one leveldb database with one master instance updating the db while the others just use the same and talk to bitcoind to send out tx.
Or couldn't the server code just join IRC as a new user for each different host name? So when parsing the config it joins IRC once for each report line it encounters, with maybe some suffix on nickname.
eg. nick E__1 etc.

I don't know much at all about IRC so maybe there's some limitation preventing that but this seems like fairly KISS as well. I never logged into #electrum but doing this just now I was wondering what name my server would use when I don't set a nickname in the config?

edit: Oh, I found myself. It's just some random gibberish name. Maybe I'll go add a proper nick then.
edit2: Hmm. Maybe this is why my https port doesn't show up - not enough space. Isn't there a better way to do this?
I know some IRC servers have limits on the number of connections allowed from a single IP.
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 19, 2012, 08:27:12 PM
Does this support reporting multiple different hosts and also multiple ports? Both would be very useful and IMO needed. Reporting a secondary name would be useful for running a Tor hidden service alongside a normal one. Reporting more than one port would be useful for more flexible access. eg. port 80 and 110. Or configuring a tunnel to hop thru a proxy/firewall for certain users, exposing a secondary access location.

Each server joins #electrum with a unique nickname prefixed by E_ and publishes its info in its name field which can be queried /whois . The limit here is the IRC name field - which has a maximum of 50 chars. Already at this time if your hostname is too long the ports for TCP, TLS, HTTP, HTTPS don't fit in.

Adding multiple hostnames and ports would be fairly complicated - moreover the clients would need to decode this and so forth. The KISS approach is one server instance, one user on IRC, one hostname and a specific set of ports.

What could certainly be done (but no priority) is mutliple server instances sharing one leveldb database with one master instance updating the db while the others just use the same and talk to bitcoind to send out tx.
Or couldn't the server code just join IRC as a new user for each different host name? So when parsing the config it joins IRC once for each report line it encounters, with maybe some suffix on nickname.
eg. nick E__1 etc.

I don't know much at all about IRC so maybe there's some limitation preventing that but this seems like fairly KISS as well. I never logged into #electrum but doing this just now I was wondering what name my server would use when I don't set a nickname in the config?

edit: Oh, I found myself. It's just some random gibberish name. Maybe I'll go add a proper nick then.
edit2: Hmm. Maybe this is why my https port doesn't show up - not enough space. Isn't there a better way to do this?
newbie
Activity: 46
Merit: 0
December 19, 2012, 07:31:47 PM
Does this support reporting multiple different hosts and also multiple ports? Both would be very useful and IMO needed. Reporting a secondary name would be useful for running a Tor hidden service alongside a normal one. Reporting more than one port would be useful for more flexible access. eg. port 80 and 110. Or configuring a tunnel to hop thru a proxy/firewall for certain users, exposing a secondary access location.

Each server joins #electrum with a unique nickname prefixed by E_ and publishes its info in its name field which can be queried /whois . The limit here is the IRC name field - which has a maximum of 50 chars. Already at this time if your hostname is too long the ports for TCP, TLS, HTTP, HTTPS don't fit in.

Adding multiple hostnames and ports would be fairly complicated - moreover the clients would need to decode this and so forth. The KISS approach is one server instance, one user on IRC, one hostname and a specific set of ports.

What could certainly be done (but no priority) is mutliple server instances sharing one leveldb database with one master instance updating the db while the others just use the same and talk to bitcoind to send out tx.
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 19, 2012, 07:12:10 PM
I've added the report_* config options a while back (see sample config and README.IRC) to be able to have the server report a different port on IRC than it's bound to locally. This is useful to run the server as an unprivileged user and then to NAT, rinetd or haproxy, the standard high port (8081 for example) to 80.
Does this support reporting multiple different hosts and also multiple ports? Both would be very useful and IMO needed. Reporting a secondary name would be useful for running a Tor hidden service alongside a normal one. Reporting more than one port would be useful for more flexible access. eg. port 80 and 110. Or configuring a tunnel to hop thru a proxy/firewall for certain users, exposing a secondary access location.

Or perhaps clients don't support more than one port since currently it doesn't present as a dropdown box for port number. I suppose port # could be manually configured as "special knowledge" but I still see multiple hosts as very useful.
newbie
Activity: 46
Merit: 0
December 19, 2012, 06:35:43 PM
electrum.no-ip.org is listening on 80 and 443 specifically for this reason. Feel free to use it, just select HTTP or HTTPS and the server from the list.

I've added the report_* config options a while back (see sample config and README.IRC) to be able to have the server report a different port on IRC than it's bound to locally. This is useful to run the server as an unprivileged user and then to NAT, rinetd or haproxy, the standard high port (8081 for example) to 80.


Edit: spelling and clarification
hero member
Activity: 742
Merit: 500
December 19, 2012, 04:56:29 PM
Okay, I've been trying out Electrum as a portable solution, but find I seem to be inhibited in many public places.  I presume due to firewalls that prohibit high number/non-standard ports.  Is there a public server that can fake being a standard webserver using port 80?  Can this even ben done?
Theres comments in the config file for doing exactly this and I seem to recall seeing a partial readme for it.  I don't know if any servers have done this though.

Once I get my server up publicly, I'll have it listening on 80 and 443
legendary
Activity: 1708
Merit: 1010
December 19, 2012, 04:39:31 PM
Okay, I've been trying out Electrum as a portable solution, but find I seem to be inhibited in many public places.  I presume due to firewalls that prohibit high number/non-standard ports.  Is there a public server that can fake being a standard webserver using port 80?  Can this even ben done?
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 15, 2012, 03:36:14 PM
My electrum bitcoin wallet 1.4 is saying "Not connected" and my balance isn't showing. I'm a newb to the technology, not transacting.

Can anyone suggest anything?
You can try connecting to a different server. On the "classic" gui there is a round icon bottom right. Try that. It's also fairly likely you will need to upgrade because many recent changes could cause an older version to not connect. Current now I think is 1.5.6.

After changing server you should expect in 5-10 seconds that it starts synchronizing. If not and several servers respond the same then I'd say upgrade.

newbie
Activity: 25
Merit: 0
December 15, 2012, 01:25:01 PM
My electrum bitcoin wallet 1.4 is saying "Not connected" and my balance isn't showing. I'm a newb to the technology, not transacting.

Can anyone suggest anything?
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 09, 2012, 08:01:44 AM
Ok. So I created a cert/key and that seems to be working. No errors yet.

But now when I start electrum (server) it asks me for

Enter username for jsonrpc at localhost:8332: electrum
Enter password for electrum in jsonrpc at localhost:8332:

I've already configured this in /etc/electrum.conf so why is it asking? I also have the same values in bitcoin.conf.

Anyway, when I type in the values again it just keeps asking again... wha?

edit - forget it. I see the problem.

electrum didn't accept a blank user so I made one up and edited bitcoin.conf.
Didn't realize had to stop bitdoind first so it could start with new user name.
Now done and started fine. Now playing catch up.
I can see this will take a while... la di da.
hero member
Activity: 938
Merit: 1000
December 09, 2012, 05:33:27 AM
I used a self signed one and as far as I know it's working fine. Good question though Thomas will probably enlighten us.
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 09, 2012, 04:52:07 AM
This is a new addition in the latest server updates. It means you can run a connection from the client to the server over SSL. Just generate a self-signed certificate and add the config option to /etc/electrum.conf
Will a self signed one work? Presumably the client would need a root cert as well to verify or is it only used for encryption and not identity?

I manage my own root authority with TinyCA so it's easy enough for me to create one but generally in my web apps I always need to give my root to the app so it will accept it.
hero member
Activity: 938
Merit: 1000
December 09, 2012, 04:45:28 AM
This is a new addition in the latest server updates. It means you can run a connection from the client to the server over SSL. Just generate a self-signed certificate and add the config option to /etc/electrum.conf
hero member
Activity: 784
Merit: 1009
firstbits:1MinerQ
December 09, 2012, 04:28:32 AM
I've been trying to setup and run an electrum server using the leveldb backend. I've followed the README.levedb and some details from the HOWTO.md but having a problem that seems to not be explained in anything I've read.

Code:
Warning: it looks like you are using a 32bit system. You may experience crashes caused by mmap
Traceback (most recent call last):
  File "/bin/electrum", line 113, in
    ssl_certfile = config.get('server', 'ssl_certfile')
  File "/usr/lib/python2.7/ConfigParser.py", line 618, in get
    raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'ssl_certfile' in section: 'server'

Obviously it's looking for a certificate but this is the only mention of that I've come across.

I'd like to just test it out first before dealing with a cert if possible. If not I can create a self signed one but where can I get real info, that isn't missing stuff like this, on how to get the server running.

Pages:
Jump to: