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 |