Осмотрев разговор Майк Хирн на конференции я хотел бы играть немного с некоторыми из этих вещей, так что я начал работать над контракты по обеспечению доказательство концепции.
Использование Bitcoin 0.7 и сырьевая транзакции API я получил эту работу на testnet-в-коробке. Я не пробовал это на главной сети Bitcoin.
Это небольшой питон скрипт, который делает три вещи:
1) Создание нового договора гарантии.
Код:
$ Питон pledge.py createcontract miA6bqrz9thieUpd5rZmHe1XpTmY6DLjot 7500000000
ТЙ контракт:
Сумма: 75
To: miA6bqrz9thieUpd5rZmHe1XpTmY6DLjot
01000000000100eb08bf010000001976a9141cf69384eb6b27a8161b59577f41310a93b9c14388ac00000000
ТЙ контракт:
Сумма: 75
To: miA6bqrz9thieUpd5rZmHe1XpTmY6DLjot
01000000000100eb08bf010000001976a9141cf69384eb6b27a8161b59577f41310a93b9c14388ac00000000
2) Добавление обязательства (это должно быть сделано с помощью различных людей, которые хотят закладывать некоторые биткойна):
Код:
$ Питон pledge.py залог 01000000000100eb08bf010000001976a9141cf69384eb6b27a8161b59577f41310a93b9c14388ac00000000 5000000000
Направлено 50BTC обратиться n21Nw4ikZrURVxaydZwYrPmdDyd8J8ZdQw
(Закрытый ключ: cVNe9DSbZPe71pzwWpRbiR1n4NQ2Bdqi67g7HGiJCzARtX66nefY)
TXID: 0ae14dc7c016d8bce090cfaa2eb88ce1e2818f24d3372c5682118ff5a68e8200
TXOut: 0ae14dc7c016d8bce090cfaa2eb88ce1e2818f24d3372c5682118ff5a68e8200: 0
Подписание сделки ...
Подпись ввода:
00828ea6f58f1182562c37d3248f81e2e18cb82eaacf90e0bcd ...
Направлено 50BTC обратиться n21Nw4ikZrURVxaydZwYrPmdDyd8J8ZdQw
(Закрытый ключ: cVNe9DSbZPe71pzwWpRbiR1n4NQ2Bdqi67g7HGiJCzARtX66nefY)
TXID: 0ae14dc7c016d8bce090cfaa2eb88ce1e2818f24d3372c5682118ff5a68e8200
TXOut: 0ae14dc7c016d8bce090cfaa2eb88ce1e2818f24d3372c5682118ff5a68e8200: 0
Подписание сделки ...
Подпись ввода:
00828ea6f58f1182562c37d3248f81e2e18cb82eaacf90e0bcd ...
3) Человек, который сделал этот контракт должен собрать все входы от всех и поместить их в один текстовый файл.
Если есть достаточное количество объявленных взносов они могут быть объединены и окончательная транзакция посылается в сеть Bitcoin.
Код:
$ Питон pledge.py завершить 01000000000100eb08bf010000001976a9141cf69384eb6b27a8161b59577f41310a93b9c14388ac00000000 входы
Отправка необработанный ТХ ...
010000000200828ea6f58f11 ...
Отправка необработанный ТХ ...
010000000200828ea6f58f11 ...
Это по-прежнему очень много доказательство концепции: приложения командной строки, имеющим разделить входы, большие строки, которые должны быть скопированы вокруг ... Но это работает
Код на https://github.com/titeuf87/btcassurance
Части него копируются из Bitcoin-питона, pynode и pywallet.
Я думаю, что следующая вещь для этого, чтобы разделить его на сервер / клиент модель: сервер, который содержит контракты обеспечения и клиентом, что позволяет людям закладывать биткойны к одному из этих договора и отправить подписанный вход через.