r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 20, 2013, 06:28:09 PM Last edit: March 24, 2013, 05:47:39 PM by r.willis |
|
Hello all! For some time I was working on bitcoin daemon implementation in erlang. Now it's in the early stage of development. I'm trying to implement protocol not looking into bitcoind source, but using specification from https://en.bitcoin.it/wiki (found one bug so far), original paper and looking at the protocol messages which I get from peers. My goal is to make scalable bitcoin daemon, capable of serving many thousands of peers on relatively low-end servers. At current state it's capable of connecting and parsing messages from 3000+ peers on 256M RAM VPS without swap. It does not do much besides protocol parsing and peer discovery now, but it's only several days old. Chances are that it connected to your machine - check for /ebtcd:0.0.1/ user-agent in logs. Short term pans: accept incoming connections, announce own address via addr message. Mid term plans: add validation and routing (test on testnet), release source under open license (AGPL sounds good). Long term: full-featured daemon. P.S. In case someone wants to encourage me with some BTC, I set up donation adress: 1GVmS56pvVL7YZA7YqMBXmaDedCoputKuJ UPD: git clone git://github.com/r-willis/biten.git
|
|
|
|
gweedo
Legendary
Offline
Activity: 1498
Merit: 1000
|
|
March 20, 2013, 06:30:03 PM |
|
Any chance you going to put it on gihub?
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 20, 2013, 06:33:23 PM |
|
please make the source public, og remove [ANN] from the thread subject... i was expecting to see awesome code, but was disappointed.
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 20, 2013, 06:48:44 PM |
|
please make the source public, og remove [ANN] from the thread subject... i was expecting to see awesome code, but was disappointed.
You are right, so [ANN] gone for now. Code is in no way awesome now. It's a bunch of loosely connected modules and processes. Current code is proof-of-concept that you can make "very-well-connected" node on low-end virtual server. Right now I'm converting code to OTP (Erlang framework for robust, industrial-grade applications). I'd expect code release in a week or two. Why I (we) want node with many peers? Because it greatly reduces network "diameter", reduces propagation times, helping miners and makes many attacks not feasible. But if it does not verify transactions/blocks it relays, I effectively becomes threat to network, as if there is many such nodes, spammers can use them to amplify their abilities to flood nodes with malformed/fraudulent transactions.
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 20, 2013, 06:56:39 PM |
|
But if it does not verify transactions/blocks it relays, I effectively becomes threat to network, as if there is many such nodes, spammers can use them to amplify their abilities to flood nodes with malformed/fraudulent transactions.
i don't think so... the satoshi client have some ban system, if your node began to send malformed txs they would just disconnect from your node.
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
grau
|
|
March 20, 2013, 07:16:21 PM |
|
Now it's in the early stage of development. I'm trying to implement protocol not looking into bitcoind source, ...
From this I can tell that this must be really early stage. Keep up, but be prepared for a very long trip. Unfortunately documentation available is very far from being sufficient input for an implementation, and in Bitcoin world there is no half-way compatibility.
|
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 20, 2013, 07:56:24 PM |
|
i don't think so... the satoshi client have some ban system, if your node began to send malformed txs they would just disconnect from your node.
Of course it has, but it but before it kicks in, you can spend several megs of some someone's bandwidth. Multiply by some thousands peers, and by number of servers (whatever it is). I just not very comfortable with this. Keep up, but be prepared for a very long trip.
Yes, I read your thread about bitsofproof. I hope it will be interesting journey.
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 20, 2013, 07:59:45 PM |
|
i don't think so... the satoshi client have some ban system, if your node began to send malformed txs they would just disconnect from your node.
Of course it has, but it but before it kicks in, you can spend several megs of some someone's bandwidth. Multiply by some thousands peers, and by number of servers (whatever it is). I just not very comfortable with this. and you should not be, but its still safe to experiment, the bitcoin network is robust(at least the satoshi client is...) i am also devloping a bitcoin client, pycoin. although i have not done much lately on it.
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 20, 2013, 08:08:00 PM |
|
If you think so, I can implement routing and release code. Let's stress-test network. I think on 8Gb (right now, without optimisations) machine daemon can connect to every connectable node in network (I estimate it's around 60k peers) + some incoming connections.
|
|
|
|
jgarzik
Legendary
Offline
Activity: 1596
Merit: 1100
|
|
March 21, 2013, 02:14:40 AM |
|
i am also devloping a bitcoin client, pycoin. although i have not done much lately on it.
If you like python, check out https://github.com/jgarzik/python-bitcoinlib/ and the bitcoin client that uses it, https://github.com/jgarzik/pynode/I'm trying to encourage everyone to use python-bitcoinlib for their python projects. It fully verifies the blockchain, and passes many reference client tests.
|
Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own. Visit bloq.com / metronome.io Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
|
|
|
meowmeowbrowncow
|
|
March 21, 2013, 02:17:50 AM |
|
And that Python, generally, is cool.
|
"Bitcoin has been an amazing ride, but the most fascinating part to me is the seemingly universal tendency of libertarians to immediately become authoritarians the very moment they are given any measure of power to silence the dissent of others." - The Bible
|
|
|
aantonop
Full Member
Offline
Activity: 196
Merit: 116
Entrepreneur, coder, hacker, pundit, humanist.
|
|
March 21, 2013, 03:09:27 AM |
|
Very interesting.
You should open source even if it is early stage, please! I'd love to
I've done some Erlang and OTP and I'm looking at core-daemon (full node) implementations.
Don't be shy, open it!
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 21, 2013, 06:45:54 AM |
|
i have been looking at thats python codes before. but it does not seem 'pythonic', but the script parts of the code i have found helpful.
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 21, 2013, 11:38:21 PM |
|
Conversion to OTP mostly done. Plans for tomorrow: limit rate at which outgoing connections are created. After this, accept incoming connections and advertise own address via addr message.
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 22, 2013, 06:53:00 AM |
|
Conversion to OTP mostly done. Plans for tomorrow: limit rate at which outgoing connections are created. After this, accept incoming connections and advertise own address via addr message.
and then: github
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 22, 2013, 07:41:20 AM |
|
Before github, I need cool name for project. Any ideas?
|
|
|
|
kokjo
Legendary
Offline
Activity: 1050
Merit: 1000
You are WRONG!
|
|
March 22, 2013, 10:58:27 AM |
|
Before github, I need cool name for project. Any ideas?
"The first and only true bitcoin erlang deamon" or TFAOTBED?
|
"The whole problem with the world is that fools and fanatics are always so certain of themselves and wiser people so full of doubts." -Bertrand Russell
|
|
|
meowmeowbrowncow
|
|
March 22, 2013, 01:14:14 PM |
|
Before github, I need cool name for project. Any ideas?
"The first and only true bitcoin erlang deamon" or TFAOTBED? How about: The Committee for the Liberation and Integration of Terrifying Organisms and their Rehabilitation Into Society CLITORIS (had to, sorry )
|
"Bitcoin has been an amazing ride, but the most fascinating part to me is the seemingly universal tendency of libertarians to immediately become authoritarians the very moment they are given any measure of power to silence the dissent of others." - The Bible
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 22, 2013, 03:00:55 PM |
|
It's hilarious... I'll consider it.
|
|
|
|
r.willis (OP)
Jr. Member
Offline
Activity: 42
Merit: 11
|
|
March 22, 2013, 10:32:20 PM Last edit: March 23, 2013, 06:11:13 AM by r.willis |
|
System is live at 192.210.207.147:8333 Accepts connection and does handshake. Nothing fancy yet. Transaction routing and block download/serving are next.
|
|
|
|
|