Легко сказать "давайте просто переместить десятичную точку", Но эта часть Bitcoin необычна тем, что она не была хорошо продумана Satoshi заранее. Учитывая, что он отсутствует, я предполагаю, что это до нас, чтобы придумать хороший план.
Что это значит? Фактически, это означает, что нам нужно глобальный консенсус относительно того, где десятичная точка должна быть. Если некоторые люди переезжают его, а другие нет, то становится трудно торговать, потому что цены и платежи безнадежно запутанным.
Bitcoin уже очень хорошо на создание глобального консенсуса в отношении вещей. Так как об этом плане:
1) bitcoind получает новый RPC под названием "getNanosPerCoin" или что-то подобное тому, которое возвращает число nanocoins, составляющие произвольную единицу мы называем "Bitcoin",
2) Каждый, кто мины могут настроить свою копию Bitcoin, чтобы сказать, где они думают, что десятичная точка должна быть. Эти данные могут быть встроены в coinbase сделки. Я должен тщательно проверить код, но я
думать что можно запихнуть произвольные дополнительные данные на конец coinbase ТХ и не клиент жалуется или отклонить блок. Добавление регулярного нового поля означает натыкаясь номер версии, и я думаю, что может быть трудно, так что я хотел бы предложить, если мы начать добавление материала к coinbase.in [0] .scriptSig, что это будет буфер протокола или какой-либо другой бинарная структура данных, которая поддерживает управление версиями встраивается. в противном случае мы могли бы сделать это позже, и найти его трудно.
3) В конце каждого периода перестройки две недели, клиент просматривает в обратном направлении, чтобы вычислить новый nanosPerCoin на основе коллективных голосов от сети. Если >80% сети согласны на новое значение для nanosPerCoin тогда клиент Bitcoin принимает это и начинает сообщать об этом в RPC.
4) Существующее программное обеспечение, что делает "X.Y BTC" Строки типа должны быть изменены, чтобы принести текущее значение nanosPerCoin с сервера где-то. Чтобы сделать это проще, возможно, порт JSON-RPC может принять неавторизованный запрос HTTP как
HTTP: // сервер: 1234 / renderAmount nanocoins = 15000000,300000&стиль = юникодаи вернуть отформатированную строку, как "Ⓑ15.00 \ nⒷ0.03" как текст / обычный UTF-8 ответ. Этот HTTP вызов может быть просто заворачивают в библиотеки функций в большинстве языков так рендеринга количество Bitcoin не будет слишком сложно, и это может быть экспонируется через bitcoin.org так сайты могли бы просто сказать,
<Сценарий SRC ="http://www.bitcoin.org/render-amounts.js"> скрипт>
Это будет стоить вам <скрипт>bitcoin.render (15000000) скрипт>
и было бы распечатать суммы, согласованные на консенсусе. Если о том, "истинные цены" в сроках nanocoins слишком неудобные, цены могут быть указаны в качестве естественной суммы и дат:
Это будет стоить вам <скрипт>bitcoin.render (1,50, "2011-02-10 17:00:00 UTC") скрипт>
Поэтому, когда десятичная точка движется это, то будет визуализируется как Ⓑ15.00 автоматически.