Pages:
Author

Topic: [ANN] BitEN - bitcoin erlang node - page 4. (Read 6899 times)

newbie
Activity: 42
Merit: 0
March 24, 2013, 10:07:02 PM
#29
You should check twitcoin.net also implemented a bitcoin wallet in erlang
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 24, 2013, 01:37:22 PM
#28
Awesome! Cheesy code perving now.
jr. member
Activity: 42
Merit: 11
March 24, 2013, 12:13:16 PM
#27
Thank you for your support.
Please check how it works yourself. There is no documentation (and almost no comments), no tests.
There are some lurking bugs, but it mostly works. Codebase is really small (~1000 lines + ~500 lines SHA2 by third-party), so do not expect much.
Some tunable parameters (build-time) in include/config.erl
$ git clone git://github.com/r-willis/biten.git
than check README for instructions.
UPD: here is one-liner for updating stats every 10 sec:
3> T1 = timer:apply_interval(10*1000, stat, print, []).
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 24, 2013, 08:48:47 AM
#26
Thanks for testing. Can you also test if getdata works properly with transasctions?
Also, can you explain about inv and anonymity? For now I send inv to all peers when I get new tx.
i don't know, think its only meaningful to do it when you are also sending your own transactions, blending you own in with others.

the satoshi client sends them in groups.

getdata seems to work fine.
Code:
__main__ - connecting to 192.210.207.147:8333
__main__ - connected to 192.210.207.147:8333
__main__ - sending version to
__main__ - recvived version from
{'nonce': 3571260833056950700, 'finalblock': 212672, 'sender': {'services': 1, 'ip': '0.0.0.0', 'port': 0}, 'version': 60002, 'time': 1355854353, 'services': 1, 'useragent': '/ebtcd:0.0.1/', 'type': 'version', 'reciever': {'services': 1, 'ip': '0.0.0.0', 'port': 0}}
__main__ - sending verack to
__main__ - recvived verack from
__main__ - recvived addr from
{'type': 'addr', 'addrs': [{'services': 1, 'timestamp': 1364132948, 'port': 8333, 'ip': '192.210.207.147'}]}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '8d9efc6660ca76282198f71a8b21936b98e419630672ad54b51f0e467844c3da'}], 'type': 'inv'}
__main__ - sending getdata to
__main__ - recvived tx from
__main__ - got tx: 8d9efc6660ca76282198f71a8b21936b98e419630672ad54b51f0e467844c3da
{'inputs': [{'script': u'483045022100ceb6b8a311b8a14d3930dc004ce4ff6dda34beda87c21f19046c82361b1604b802200887b99e45626b87e522a0badca447a6c19ee64e9741b6134eb62428df1cf5d00141049a20d6a2eb15336c1622b9498183d18c0c5ab1aa685f1a09612a4c6c242809850321a944ef01b133aceb6022bef2aa16d5d036a75c4b3d601e5b553a32d8f566', 'outpoint': {'index': 0, 'tx': 'a5930653e67df69033299b8fb9570212b07ffb620d02b509c3d220acec793896'}, 'sequence': 4294967295}, {'script': u'493046022100be02b679976e7aebe165b8d4bcd3bbbdbbd45970f8832416e299942cd2280be9022100aa96403e5a93ebebb0508e933d7473414f1a6a5f4c61289fdb51e577f688bc8b0141049a20d6a2eb15336c1622b9498183d18c0c5ab1aa685f1a09612a4c6c242809850321a944ef01b133aceb6022bef2aa16d5d036a75c4b3d601e5b553a32d8f566', 'outpoint': {'index': 1, 'tx': '1211f69fb8ca81ea8e4480e58eb90bb9ef411e02feca506ab8c326311b54d47a'}, 'sequence': 4294967295}, {'script': u'47304402200099e0ee8e79392ccee8e5f26c05ae55f5708962994319f258cd16f1690f5f2d022061bf3e0e9c72180719b5f8bbac840f7ff64ed48de234b6e681cad2fdeb09b73a0141049a20d6a2eb15336c1622b9498183d18c0c5ab1aa685f1a09612a4c6c242809850321a944ef01b133aceb6022bef2aa16d5d036a75c4b3d601e5b553a32d8f566', 'outpoint': {'index': 0, 'tx': 'e52cd1077b757833251292422f5dcf9163f9617dbdeb8e7046afd5bb2693ee7d'}, 'sequence': 4294967295}], 'locktime': 0, 'version': 1, 'outputs': [{'amount': 22230000, 'script': u'76a91465c44378dca92c950c63d4fb6f977af0e5160ceb88ac'}, {'amount': 13624834, 'script': u'76a914e2737bad9136729f77388e07b45fbdf9d796b16288ac'}]}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '56b3b0fff13bf3fee18c895864e2fd8ee14486c81a10fec10f28441e4ebc8597'}], 'type': 'inv'}
__main__ - sending getdata to
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '449c5f1e0a3612099f5cea95957a08bf61ed611ba4f3498742568c6fbb5c56ca'}], 'type': 'inv'}
__main__ - sending getdata to
__main__ - recvived tx from
__main__ - got tx: 56b3b0fff13bf3fee18c895864e2fd8ee14486c81a10fec10f28441e4ebc8597
{'inputs': [{'script': u'47304402205486ae189aeea4eb338881b0c626a4d0eda9f00a5fba31309a75cddb8b3f8b3a02207948a13ba612985f86c2f8189ce2aaffe1df91aab8780c8a9d61f9379ef919080141048cc0b94178715f03ed3d0bceb368191d0fdd7fc16d806567f6f2c45aecafb8f53e5ef849564072189b9b4f8bfe1564da776567ba359cfb0c05e839bcf65371ab', 'outpoint': {'index': 1, 'tx': '43613865df3c6aba0a25e6e5d19681c23f0e84d9246dc75ad8cfe85c9f404689'}, 'sequence': 4294967295}, {'script': u'493046022100fa3f82633d1f581d597949c5ffe80bb9491c7ac3c3c843c8d0ebd1a753782ba0022100addfa96baf88c4f7a5cf951cc691b497e5431ed0f98920e39fefb24c1d34a448014104e9147ece1c26d3319f6b7b5dbad45ab33429f77668857b9b4f3c7422632d6794a826c8e89791c6a2efb7fc4f2e1b3428a10e470315ff096a547f2e3bf91703e6', 'outpoint': {'index': 1, 'tx': '97f979a98c403555d840c70887a9b547671d4666f10b0650b3b7de2475e04c81'}, 'sequence': 4294967295}], 'locktime': 0, 'version': 1, 'outputs': [{'amount': 40076960, 'script': u'76a914d2f0ad0cbbbbca9a9697de43629e38d9a40ebb7688ac'}, {'amount': 125654756, 'script': u'76a914e8c753e1d147dc1594f60033239d982e9e373a4188ac'}]}
__main__ - recvived tx from
__main__ - got tx: 449c5f1e0a3612099f5cea95957a08bf61ed611ba4f3498742568c6fbb5c56ca
{'inputs': [{'script': u'483045022100c823fe360e8ec170d3f7807f779217cc73b4df815114eb20d4ff3501292546f902204f26b4a9995dc591d1d9edd5e08ef643a0ceb3274c4c0de759d32c8bcc7b49bf01210293d3f89b799d0d85ee68753853aba3a8dc9f3eac82ac3f7a002cfac165aeb824', 'outpoint': {'index': 1, 'tx': '1d5a9eb96afb43e69de6e7391910304191742b4b1b517e4bdd5992e8143de07f'}, 'sequence': 4294967295}], 'locktime': 0, 'version': 1, 'outputs': [{'amount': 7950000, 'script': u'76a914e074a32f36dbafe229f8ae8c730615d62f48b40d88ac'}, {'amount': 8000000, 'script': u'76a91406f1b6703d3f56427bfcfd372f952d50d04b64bd88ac'}]}

jr. member
Activity: 42
Merit: 11
March 24, 2013, 08:03:42 AM
#25
Thanks for testing. Can you also test if getdata works properly with transasctions?
Also, can you explain about inv and anonymity? For now I send inv to all peers when I get new tx.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 24, 2013, 05:08:54 AM
#24
my log:
Code:
__main__ - connecting to 192.210.207.147:8333
__main__ - connected to 192.210.207.147:8333
__main__ - sending version to
__main__ - recvived version from
{'nonce': 11750267548999325335L, 'finalblock': 212672, 'sender': {'services': 1, 'ip': '0.0.0.0', 'port': 0}, 'version': 60002, 'time': 1355854353, 'services': 1, 'useragent': '/ebtcd:0.0.1/', 'type': 'version', 'reciever': {'services': 1, 'ip': '0.0.0.0', 'port': 0}}
__main__ - sending verack to
__main__ - recvived verack from
__main__ - recvived addr from
{'type': 'addr', 'addrs': [{'services': 1, 'timestamp': 1364119710, 'port': 8333, 'ip': '192.210.207.147'}]}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '8b8f619892f0c673947721ac850a82739abe7e7908a76519af1ca373e72a0e5e'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'd0db4c6499740c10cf7e5b39fe5d92d1983bc53f0c25ffbcab92636d4d73f6a1'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '6a05170eb01f8bcacf42ccec6a397f1fdc160fa152859d9cfe450ab32954c5bc'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'e4564170c2bbb448934184643cac1aacb0113befe0f0be46db1c06f346959e36'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '97108906ba10ee3ba04eebb8af465dccec3412fdd88be6e8c3bc812f396a8a67'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'b5ecd365f85b9850310e14848d5d139545243d5f34a12dc4fc92b9a22d83edb9'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '98aa22cdadeb60ab539a1e99225a39117d068f70f2c64f869edb0f2d20c55faf'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '1fc9cf75c25f0f669331cb5acaea00f6daafea2f9bde43e4033723957a63f380'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'da14d97f6c95bff17e693b0f87fe2caf1c56b1cda2f1a93170cbf56efed8fc93'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'a883d7aa04e0db9539ef0631795277bf983ed78e1aa0b9d3aad922a4a14e566f'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'e32ebbae43fc0d7dd665a9d8e71b893a16393a2e35b5995078d45c7c87f8a8d8'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'a9ee0df7375396834bb9fd78adbb93a024127feddd4aa0c8f12bf03b54bde1e3'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'f7cc5a5011c1ad73310eb010989d64a3970f1e2b96520997c051a7de5275f7c4'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '107ff21c6a6d69ac9f3208084e9fcfdbb96d6917169371dd0314bb6575e2aaf4'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': 'acd3dcd564cdc7c4dde43cd0b69a5fbf4fd6f702167d957dfcee9432c6b89478'}], 'type': 'inv'}
__main__ - recvived inv from
{'objs': [{'objtype': 1, 'hash': '8a936cad5c3d820627d8e7eb6caf0a31fe8c36202acbf1963f148c1133411211'}], 'type': 'inv'}

you should group your invs to improve anonymity and save bandwidth. only sending a inv once a 5 second.
jr. member
Activity: 42
Merit: 11
March 24, 2013, 02:22:00 AM
#23
I really like BITTEN/BITEN. Release is coming.
Can anybody check 198.23.147.4:8333 and tell me if tx relaying works ok?
After handshake, host wll notify peers with inv and respond to getdata (type 1 (tx) only).
full member
Activity: 121
Merit: 100
March 22, 2013, 07:39:07 PM
#22
Maybe the name Erlnode
full member
Activity: 196
Merit: 116
Entrepreneur, coder, hacker, pundit, humanist.
March 22, 2013, 05:40:32 PM
#21
Bite  BITcoin Erlang

BED = Bitcoin Erlang Daemon, nice and simple.
Usage: "Hey Carla, we're running "BED", are you using bitcoin-js at your startup?"


BITTEN : BITcoin Erlang Node

without acronyms:

The Bitscale Node - Makes Bitcoin Scale


CoinOTP



jr. member
Activity: 42
Merit: 11
March 22, 2013, 05:32:20 PM
#20
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.
jr. member
Activity: 42
Merit: 11
March 22, 2013, 10:00:55 AM
#19
It's hilarious... I'll consider it.
sr. member
Activity: 322
Merit: 250
March 22, 2013, 08:14:14 AM
#18
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 Cheesy)
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 22, 2013, 05:58:27 AM
#17
Before github, I need cool name for project. Any ideas?
"The first and only true bitcoin erlang deamon" or TFAOTBED?
jr. member
Activity: 42
Merit: 11
March 22, 2013, 02:41:20 AM
#16
Before github, I need cool name for project. Any ideas?
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 22, 2013, 01:53:00 AM
#15
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
jr. member
Activity: 42
Merit: 11
March 21, 2013, 06:38:21 PM
#14
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.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
March 21, 2013, 01:45:54 AM
#13
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.


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.
full member
Activity: 196
Merit: 116
Entrepreneur, coder, hacker, pundit, humanist.
March 20, 2013, 10:09:27 PM
#12
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!
sr. member
Activity: 322
Merit: 250
March 20, 2013, 09:17:50 PM
#11
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.





And that Python, generally, is cool.


Wink
legendary
Activity: 1596
Merit: 1100
March 20, 2013, 09:14:40 PM
#10
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.

Pages:
Jump to: