Django web框架的比特币应用集成
项目描述
简介
django-bitcoin是一个用于构建比特币Web应用的Django web框架应用程序。
功能
简单的比特币钱包管理
比特币支付处理
比特币市场信息
安装
要安装,只需将应用添加到settings.py的INSTALLED_APPS中,如下所示
INSTALLED_APPS = [ ... 'django_bitcoin', ... ] ```
此外,您还需要运行本地bitcoind实例,并在设置中指定连接字符串
BITCOIND_CONNECTION_STRING = "http://bitcoinuser:password@localhost:8332"
使用
教程
使用“钱包”模型的钱包网站、担保服务
您可以使用Wallet类进行不同的比特币移动应用程序。一个典型的例子是一个市场风格网站,其中有多位卖家和买家。或者一个自由职业网站,其中需要担保。甚至可以使用这个抽象(但需要一些额外的类)来进行交易所。
请注意,当您在钱包对象之间移动比特币时,只需要需要的比特币交易是收入和支出交易。系统“钱包”对象之间的交易不会生成“真实”的比特币交易。每个交易(除收入交易外)都会记录到WalletTransaction对象中,以便于会计。
这也意味着支出比特币交易是“混合”的
from django_bitcoin import Wallet, currency class Profile(models.Model): wallet = ForeignKey(Wallet) outgoing_bitcoin_address = CharField() class Escrow(models.Model): wallet = ForeignKey(Wallet) buyer_happy = BooleanField(default=False) buyer=Profile.objects.create() seller=Profile.objects.create() purchase=Escrow.objects.create() AMOUNT_USD="9.99" m=currency.Money(AMOUNT_USD, "USD") btc_amount=currency.exchange(m, "BTC") print "Send "+str(btc_amount)+" BTC to address "+buyer.wallet.receiving_address() sleep(5000) # wait for transaction if p1.wallet.total_balance()>=btc_amount: p1.send_to_wallet(purchase, btc_amount) sleep(1000) # wait for product/service delivery if purchase.buyer_happy: purchase.wallet.send_to_wallet(seller.wallet) seller.wallet.send_to_address(seller.outgoing_bitcoin_address, seller.wallet.total_balance()) else: print "WHY U NO HAPPY" #return bitcoins to buyer, 50/50 split or something
交易通知
要启用比特币交易通知,请在您的 settings.py 中设置以下标志
BITCOIN_TRANSACTION_SIGNALING = True
之后,您需要设置一个每分钟运行的 cron 任务,如下所示
* * * * * (cd $APP_PATH && python manage.py python manage.py CheckTransactions >> $APP_PATH/logs/email_sends.log 2>&1)
之后您可以定义您的balance_changed和balance_changed_confirmed信号
from django_bitcoin.models import balance_changed, balance_changed_confirmed from django.dispatch import receiver @receiver(balance_changed) def balance_changed_handler(sender, **kwargs): pass # try: # print "balance changed", sender.id, kwargs["changed"], sender.total_balance() @receiver(balance_changed_confirmed) def balance_changed_confirmed_handler(sender, **kwargs): pass
社区
目前 django-bitcoin 在以下生产环境中使用
更多即将到来!
如果您有使用django-bitcoin的网站,请给我发邮件,我会在这里链接到它。
支持和源代码
变更日志
0.2 (2013-05-14)
README.rst,变更日志和发布流程更新 [miohtama]
处理历史价格数据 [Jeremias Kangas]
0.1
初始发布
项目详情
关闭
django-bitcoin-0.2.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c594557a567edf9a6dd170c30117f0e5dad6044eeeebef5f8fe4d40187f800a1 |
|
MD5 | 22f1f2e69b97abe0b12d94c9cdc6de68 |
|
BLAKE2b-256 | 925005b375d9819fb57c87ba12c1c54dd203c805a3b3336699348ad6d9618835 |