Эта библиотека стремится иметь нулевую зависимость, кроме стандартной библиотеки C, что делает его маленьким и легко переносимым. Это не означает, что я буду изобретать колесо в каждом отдельном случае. Есть множество реализаций с открытым исходным кодом вещей моей библиотеке будет нужна. Я могу адаптировать эти наработанные алгоритмы для удовлетворения конкретных потребностей этой библиотеки. В некоторых случаях это может быть более или менее копирования и вставки, а в других случаях может потребоваться щипки или существенные изменения.
На данный момент я реализации функций специалиста, которые включают операции между в bignum и 8 битное целое число. Это для базовых 58 кодера / декодера. Если кто-нибудь знает лучшее решение вещи база-58, скажите, пожалуйста, или свободно работать на нем самостоятельно. Когда я буду идти операции между двумя bignums она должна быть простой, чтобы получить свой код из bignum библиотек, а затем я могу получить код криптографии с открытым исходным кодом библиотеки, такими как OpenSSL тоже.
Если ему удается осуществить это без зависимости от OpenSSL, его код будет иметь возможность работать на моей кредитной карты машин.
Ну не было бы интересно. Вы должны были бы реализация стандартных функций библиотеки, включая динамическое выделение памяти, но я не планирую абсолютно никаких дополнительных, кроме стандартной библиотеки C зависимостей. Из-конечно, не стесняйтесь вносить что-либо, в том числе идеи.
Я полностью одобряю эти усилия. Многие говорили мне, что это была пустая трата времени переописать Bitcoin, но нет лучшего способа узнать
все чем делать это самостоятельно. Это не всегда приятно (особенно, что проклятый порядок байт!), Но это чрезвычайно образовательное и полезное время вы получите его. Я чувствую, что любой, кто собирается участвовать в серьезных дискуссиях по поводу протокола, дизайн клиента / функций, или внести свой вклад в любой проект Bitcoin на всех, должны иметь такой опыт.
Я начал около 10 месяцев назад, и сделал немного документации, как я пошел. Я ожидаю, что вы найдете это полезным
Не стесняйтесь PM мне, если у вас есть какие-либо вопросы реализации. Я через почти все это теперь. Половина его в C ++, половина в Python ...
(Хотя я никогда не беспокоил с bignum / base58 в C ++ ... Я отслеживать все по значениям hash160 и пусть дело Python с Base58, используя его родную возможность bignum).
Благодарю. Я делаю это в основном, чтобы узнать, как создать что-то функциональное. Изображения, которые Вы сделали довольно хорошо. Смогу ли я использовать их в своей документации? Я надеюсь построить хорошую документацию для моей библиотеки.
В течение следующих нескольких дней я буду занят с другими вещами, но я, когда я вернулся в эту библиотеку, я надеюсь разобраться кода базы-58, а также модифицировать ООП, так что таблицы виртуальных функций инициализируется при компиляции время, которое имеет больше смысла.
Похоже, ваши письма, чтобы это работало на 8-разрядных процессоров? Это может быть очень полезно, если вы можете сохранить его C-только и 8-бит, совместимая ... Single чип встроен Bitcoin клиента кого-нибудь?
Библиотека должна быть компилируются с компиляторами C, обеспечивающих C99 со стандартной библиотекой поддерживаются (по крайней мере, все, что библиотека использует). Возможно, библиотека будет нуждаться в небольших правок для компиляторов, которые не совместимы с некоторыми особенностями в C99, но это не будет вызывать много головной боли я уверен. Самая большая головная боль была бы реализовать стандартные функции библиотеки для микроконтроллеров, не имеющий отказа от стандартной коробки поддержки библиотеки C.
Но вы говорите, некоторые 8-битные архитектуры приходят с компиляторами, которые разрешают только 8 типов бит? Это было бы довольно мусор. Составители должны поддерживать вплоть до 64-разрядного целого числа типов (int64_t). Я считаю, что длинные длинные типы должны быть по крайней мере 64 бит таким образом компилятор, который поддерживает спецификацию C должным образом должен поддерживать его.
Если кто-то понимает, микроконтроллеры хорошо и может посоветовать, как библиотека может быть разработана с микроконтроллером портативность в виду, пожалуйста, поделитесь своими знаниями.