TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: bitcoin-akka – a btcwallet client, written in Scala and built on akka

49 pointsby goldmarabout 11 years ago

4 comments

eric_bullingtonabout 11 years ago
Cool project. btcd is going to make projects like this so much easier in the future, I think.<p>The old school way of doing something like serving notifications over websockets without using a hacky solution like bitcoind&#x27;s walletnotify to a script, or new, well-engineered solution like btcd, is to create an actual lightweight Bitcoin node in the language of your websocket server. Traditionally, people have used artforz&#x27;s old Python half-a-node for this purpose[1].<p>I recently updated this old half-a-node, also using code from jeffgarzik&#x27;s python-bitcoinlib, to run on Python 3&#x27;s new asyncio instead of the old asyncore. I have then have it tapping into PyZMQ to scale up and serve websockets on multiple Tornado servers. I&#x27;ve open sourced the asyncio part and may open source the rest soon[2]. In the full project, Tornado provides the main event loop for asyncio, but also smoothly integrates the ZMQ event loop using eventloop.ioloop.<p>I used this to create a backend for a realtime Bitcoin POS application, but I&#x27;m not convinced there&#x27;s a real market yet for it, so I&#x27;ve not yet moved forward with it. Fun stuff.<p>1. <a href="https://github.com/jgarzik/pynode/tree/mini-node" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jgarzik&#x2F;pynode&#x2F;tree&#x2F;mini-node</a><p>2. <a href="https://github.com/esbullington/pynode-asyncio" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;esbullington&#x2F;pynode-asyncio</a>
rtpgabout 11 years ago
I had the luck of working on a Scala-akka project recently, and enjoyed it enough, wouldn&#x27;t mind playing with it again.<p>It is odd that something based on the actor model could be so overengineered though. This is in spite of the fact that messages are untyped!<p>The library did feel very solid though, our project was deployed on a pretty big network and we had no issues on the akka side concerning messaging, and this was with some extremely heavy traffic message-wise.
评论 #7720097 未加载
评论 #7721502 未加载
mappumabout 11 years ago
The README for the btcwallet library says that it needs to decrypt the root key every time it needs to derive a new address. With hierarchical deterministic keys, you can derive a public-only key, which lets you derive new public keys without needing to enter the password every time.<p>This has the benefit of less time for the unencrypted key to be vulnerable in memory and also ease-of-use since it can automatically search the blockchain for keys generated by the user. For application servers this adds a huge layer of security since you can accept money with the private keys fully airgapped.
评论 #7721715 未加载
conformalabout 11 years ago
nice to see btcd getting more usage, goldmar :)<p>for the related blog entry with some more details, check out<p><a href="http://markgoldenstein.com/building-websocket-client-btcwallet-using-scala-akka/" rel="nofollow">http:&#x2F;&#x2F;markgoldenstein.com&#x2F;building-websocket-client-btcwall...</a><p>we just recently released a small library that makes using the JSON-RPC much easier, and it should work with both bitcoind and btcd<p><a href="https://github.com/conformal/btcrpcclient" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;conformal&#x2F;btcrpcclient</a><p>this makes some of the things mark mentioned a bit less painful, e.g. marshal&#x2F;unmarshaling the JSON, error handling, async replies. it is in go, so it might not be immediately useful to scala devs.
评论 #7721457 未加载