I knew one girl in my life who was a stripper. I also knew one girl in my life who had herpes. They were one and the same.
|
|
|
Hackerspace party is sick. The hackerspace is holding a party and everyone came here. All night long
|
|
|
People keep asking me about conference videos:
/topic in #bitconconsultancy
"Conference videos: we've decided on high quality after conference videos vs low quality difficult-to-setup webcasts. Videos should be out during next few weeks."
|
|
|
Drama. OK, I'm a scammer too since I was involved in the conference also. Add me to your hit list.
kthxbai
|
|
|
If you'll be lurking around after the conference with me and slush then I wouldn't stress it. A conference is meant to be fun. It should be good. The hackerspace people are affable.
|
|
|
slush i'm at the hackerspace staying at prusnak's house. cya tomorrow
BTW i will be selling bitcoins since i need CZK. dont like to pay the scammy money changers.
i'll be in prague for a week hanging around the hackerspace. we're planning on doing a bunch of after conference events and workshops here.
|
|
|
Patrick Strateman = phantomcircuit. He's the CTO for Intersango and a member of Bitcoin Consultancy
|
|
|
Iran's government is totally insane and universally hated within Iran. Nobody likes them. However there are many conflicting forces within this corrupted government- it isn't a monolithic dictatorship. There is even limited dissent which has been continually pushing successfully over the last decades inch by inch to reform the country. Going to war with Iran would be extremely bad. It would rally people around a hated, deeply unpopular and resented regime. I'm also skeptical about sanctions which is simply isolating and hurting Iranian people; the government is religious and doesn't give a shit about running the country to the ground in pursuit of their dogma. For those interested in what day to day life in Iran is like, check my pictures: http://www.flickr.com/photos/genjix/page10/http://www.flickr.com/photos/genjix/page9/http://www.flickr.com/photos/genjix/page8/They are just normal people like you or me in the west. Before the religious people seized control during the power vacuum of the revolution (which was for democratic reform), Iran was a westernised secular country. According to that map, Iran is less religious than Turkey or Poland. I'd harbour that the results are skewed from the repression even and that the results are much more favourable in private.
|
|
|
jim, I love you. That was a snappy heart-warmer that made me feel good about free software
|
|
|
There hasn't been much hype for Bitcoin lately. Are there any interesting developments to be announced at this conference?
Yes.
|
|
|
That's cool But beware that they're a total experimental hack since I don't know what I'm doing when it comes to bindings. If you need to ask me questions, I'm on Freenode IRC in #bitcoinconsultancy as genjix
|
|
|
I've made experimental alpha bindings for libbitcoin. Caveat emptor. Program which connects to a bitcoin node and downloads the first 500 blocks. from bitcoin import * import time
net = network() chandle = None
def receive_inv(inv_packet): print inv_packet for inventory in inv_packet.invs: print inventory.type, inventory.hash
def handle_send_getblocks(ec): if ec: # do something print ec
def create_getblocks_message(): packet = getblocks() gen_block = genesis_block() print 'c' packet.locator_start_hashes.append(hash_block_header(gen_block)) packet.hash_stop.nullify() return packet
def handle_handshake(ec, host_id): if ec: # do something print ec return chandle = host_id net.subscribe_inv(chandle, receive_inv) net.send_getblocks(chandle, create_getblocks_message(), handle_send_getblocks)
if __name__ == '__main__': handshake_connect(net, "localhost", 8333, handle_handshake) time.sleep(2)
Another hacked up example just to test everything: from bitcoin import * import time i = net_addr() i.ip_addr = [1, 2, 3] print i.ip_addr print inv_type.block h = hash_digest([1, 2, 3]) h[12] = 110 print h[12] vers = version() vers.version = 100 vers.sub_version_num = "abc" print vers # from block 170 pubkey = data_chunk([0x04, 0x11, 0xdb, 0x93, 0xe1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0f, 0x8c, 0x53, 0xbc, 0x1e, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48, 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9a, 0x5c, 0xb2, 0xe0, 0xea, 0xdd, 0xfb, 0x84, 0xcc, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0b, 0xfa, 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3]) print len(pubkey) print pubkey print pubkey_to_address(pubkey) print genesis_block().merkle print 'Only', max_money(), 'bitcoins will ever exist' print original_dialect() s = script() o = operation() o.code = opcode.special s.push_operation(o) o.code = opcode.nop o.data = data_chunk([0xde, 0xad, 0xbe, 0xef]) s.push_operation(o) o = operation() o.code = opcode.hash160 s.push_operation(o) print s tx = transaction() print tx
n = network()
def foo(ec, hostid): if ec: print ec print 'connected', hostid
handshake_connect(n, "localhost", 8333, foo)
time.sleep(10)
I'm not too knowledgeable on making bindings, so consider this an experiment. https://gitorious.org/libbitcoin/python-bitcoinThere's also subvertx command line utilities (proof of concept using libbitcoin) for those looking for some more general utilities.
|
|
|
Thanks both. We'll correct those things. I've made experimental alpha bindings for libbitcoin. Caveat emptor. Program which connects to a bitcoin node and downloads the first 500 block hashes. from bitcoin import * import time
net = network() chandle = None
def receive_inv(inv_packet): print inv_packet for inventory in inv_packet.invs: print inventory.type, inventory.hash
def handle_send_getblocks(ec): if ec: # do something print ec
def create_getblocks_message(): packet = getblocks() gen_block = genesis_block() print 'c' packet.locator_start_hashes.append(hash_block_header(gen_block)) packet.hash_stop.nullify() return packet
def handle_handshake(ec, host_id): if ec: # do something print ec return chandle = host_id net.subscribe_inv(chandle, receive_inv) net.send_getblocks(chandle, create_getblocks_message(), handle_send_getblocks)
if __name__ == '__main__': handshake_connect(net, "localhost", 8333, handle_handshake) time.sleep(2)
Another hacked up example just to test everything: from bitcoin import * import time i = net_addr() i.ip_addr = [1, 2, 3] print i.ip_addr print inv_type.block h = hash_digest([1, 2, 3]) h[12] = 110 print h[12] vers = version() vers.version = 100 vers.sub_version_num = "abc" print vers # from block 170 pubkey = data_chunk([0x04, 0x11, 0xdb, 0x93, 0xe1, 0xdc, 0xdb, 0x8a, 0x01, 0x6b, 0x49, 0x84, 0x0f, 0x8c, 0x53, 0xbc, 0x1e, 0xb6, 0x8a, 0x38, 0x2e, 0x97, 0xb1, 0x48, 0x2e, 0xca, 0xd7, 0xb1, 0x48, 0xa6, 0x90, 0x9a, 0x5c, 0xb2, 0xe0, 0xea, 0xdd, 0xfb, 0x84, 0xcc, 0xf9, 0x74, 0x44, 0x64, 0xf8, 0x2e, 0x16, 0x0b, 0xfa, 0x9b, 0x8b, 0x64, 0xf9, 0xd4, 0xc0, 0x3f, 0x99, 0x9b, 0x86, 0x43, 0xf6, 0x56, 0xb4, 0x12, 0xa3]) print len(pubkey) print pubkey print pubkey_to_address(pubkey) print genesis_block().merkle print 'Only', max_money(), 'bitcoins will ever exist' print original_dialect() s = script() o = operation() o.code = opcode.special s.push_operation(o) o.code = opcode.nop o.data = data_chunk([0xde, 0xad, 0xbe, 0xef]) s.push_operation(o) o = operation() o.code = opcode.hash160 s.push_operation(o) print s tx = transaction() print tx
n = network()
def foo(ec, hostid): if ec: print ec print 'connected', hostid
handshake_connect(n, "localhost", 8333, foo)
time.sleep(10)
I'm not too knowledgeable on making bindings, so consider this an experiment. https://gitorious.org/libbitcoin/python-bitcoin
|
|
|
Yeah don't pay fees. They're a fucking scam and totally not needed. We already have measures in place to stop flooding such as prioritisation of txs. This whole fee business is the mainline client trying to set network policy instead of the miners who run the hardware.
|
|
|
You need to send it straight to a miner who is accepting no fee transactions. Your transaction didn't get propagated by the nodes who experienced it. Doesn't mean it can't get into the blockchain.
|
|
|
This is really good stuff.
Would I be able to query the database and get unspent outs for an address ?
Yeah
|
|
|
Sed mi timas ke la oficialeco de la angla kiel konferenca lingvo fortimigus ilin.
Plue, mi timas ke multaj esperantistoj estas tro 'maldekstraj' por shati la ideon de bitcoin (aux bitmono, mi ne estas certe pri kiel nomi gxin). Mia sperto kun esperantistoj kaj bitmono kauxzas min pensi ke ili ne komprenas la grandan grandecon de kial bitmono gravegas. Ili rigardas gxin kiel lud-mono. Jen mi konstruas ilojn por permesi multajn eblecojn kiel senkonekta spezado, duktigi (angle. piping) spezado al multaj sendoj, pezeta interfaco, duktigi spezojn pri retpartoj al unu bitcoind kaj io ajn aliaj ideoj, kiun vi pensas. Fidu la TTY. - Elsxuti blokcxeno al SQL datumbazo. - Demandi al SQL datumbazo trovi la saldo de bitmon-adreso. - Krei novajn privatajn sxlosilojn. - Skribi kaj legi kriptografie datumojn pre tiujn privatjn sxlosilojn. - Preni bitmon-adreso de privatajn sxlosilojn. - Krei kaj savi spezotajxo al dosiero, dukto, retparto, USB aux io aliaj. - Sxargi kaj sendi spezadon al nodo de bitmono. Ligilo por subvertxDankon, amikoj
|
|
|
I've built a bunch of tools that allow us all the whizz-bang toys like offline transactions, piping a transaction to multiple sends, a flyweight client, piping transactions over network shares to a single bitcoind and whatever guile schemes you can imagine. In shell we trust. - Download blockchain into an SQL database. - Query SQL database to find the balance of a bitcoin address. - Create new private keys. - Sign and verify data using those private keys. - Get bitcoin address from private key. - Create and save a transaction to a file, pipe, network share, USB stick, whatever. - Load and send a transaction to a bitcoin node. Link to subvertx
|
|
|
You don't copy paste though. You write to a file then read it in.
i.e
mktx send < /tmp/serialised-tx
And that file can just as easily be a named pipe (which are faster and not really files).
Or you can run it through a base64 decoder:
echo ... | openssl base64 -d | mktx send
|
|
|
Thanks for thinking of me, genjix How do I put the serialized transaction into the stdin? raw binary characters? Would it be: echo "<binary junk>" | mktx send It's a tad easier if I can pass around hex instead. On the other hand, I will probably just pick apart your code, adapt to my client, and integrate it into my codebase Until then, I'll probably use it for experimenting until I get to that point. Looks really good, thanks for releasing this! OK! But why do you need hex? Just use "openssl base64 ..." to base64 decode your stream and pipe it on. Also I don't think you can use echo ..., you'd need to use cat to read until EOF. You can create a named pipe then open the mktx send with that pipe in bash. Good intro to named pipes: http://www.linuxjournal.com/article/2156
|
|
|
|