базовый код для криптовалюты
Простая алхимия. Как выпустить свою криптовалюту
Однако конкуренция на крипторынке действительно велика, выжить в цифровой индустрии и тем более пробиться в топ-100 рейтинга крупнейших по капитализации цифровых монет могут лишь те проекты, которые имеют реальные рабочие инструменты и продукты. Поэтому прежде чем выпускать очередную монету, необходимо понять, для кого она предназначена, какую пользу будет нести и какими преимуществами обладать. От цели зависит и способ создания криптовалюты.
Способы создания цифрового токена
В основу каждой монеты заложен программный код. В нем прописаны технические характеристики и параметры работы сети. Создавая криптовалюту, код можно прописать с нуля или, взяв исходный код биткоина или другого альткоина, переделать его под себя.
Первый вариант — наиболее сложный, подходит для команды опытных разработчиков, которые обладают большим запасом денежных средств и готовы потратить на выпуск криптовалюты от нескольких месяцев до нескольких лет.
Второй вариант — выпуск форка какой-либо цифровой монеты. Это, по сути, создание клона известного токена, но с исправлением критических ошибок и с добавлением нового функционала. К примеру, сегодня на рынке больше 50 форков биткоина, наиболее известные монеты: Bitcoin Cash, Bitcoin Gold, Bitcoin Diamond.
Чаще всего, создавая внутренний токен для какого-либо сервиса или проведения ICO, разработчики используют специальные блокчейн-платформы, такие как Ethereum, NEO, NEM, Ripple или Waves. Существуют и особые фреймворки для создания криптовалют.
Обычно такие сервисы содержат только структуру блокчейна и его базовые модули, а все дополнительные компоненты разработчики добавляют самостоятельно. Плюсы фреймворков в том, что они позволяют бесплатно применять готовые наработки. В отличие от использования других платформ для создания цифровых токенов, фреймворки позволяют не перегружать проект лишним функционалом.
Популярные ресурсы для создания криптовалюты
GitHub.com — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. На нем можно подобрать подходящий код и найти нужное ПО, к примеру пакет программного обеспечения Open-Transactions, который позволяет создавать цифровые монеты.
Ethereum — блокчейн-платформа, на которой создано большинство токенов для проектов, вышедших на ICO.
The World Exchange — платформа, созданная командой Ripple. Сервис позволяет не только пополнять кошелек, покупать и продавать монеты XRP, но и создавать собственные токены.
Hyperledger Fabric — фреймворк для создания смарт-контрактов и криптовалют, поддерживаемый Linux Foundation.
Exonum — еще один фреймворк с открытым исходным кодом для создания приложений на основе блокчейна.
WAVES — российская блокчейн-платформа для разработки цифровых монет, не соответствующих стандарту ERC20.
Сколько придется заплатить за создание криптовалюты
За самостоятельный запуск токена c помощью измененного программного кода известной цифровой монеты, к примеру, на блокчейне Ethereum, придется заплатить около 2 ETH (около 27 тыс. рублей по курсу на данный момент). Создание уникального альткоина при наличии специализированных знаний обойдется в 0,5-1 BTC (300-600 тыс. рублей).
Стоит учитывать, что зачастую различные программы и сервисы по созданию криптовалют берут дополнительную плату за выбор алгоритма консенсуса, хеширования и изменение сложности майнинга, тестовой сети, а также премайн, оповещения о проблемах. За создание пула для майнинга и кранов для раздачи монет оплата отдельная.
Сегодня существует немало компаний, которые готовы создать криптовалюту под ключ. Мы запросили прайсы в некоторых фирмах и выяснили, что средняя стоимость варьируется от 3 до 8 млн рублей. Первичный этап проектирования и прототипирования криптовалюты оплачивается отдельно, он стоит приблизительно 600-800 тыс. рублей. Можно создать и свою команду, чтобы разрабатывать криптовалюту вместе. Средняя заработная плата блокчейн-разработчиков в Москве составляет 80-150 тысяч рублей.
Криптовалюта — как её создавать?
Я уверен, все знают, что такое криптовалюта, и возможно вы даже знаете, с чем её едят, и сами пользовались. В 2009 году благодаря Satoshi Nakamoto была создана всем известная Bitcoin, благодаря которой её автор заработал приличное состояние.
И следует логичный вопрос: если первая криптовалюта появилась в 2008 году, то ведь давно уже в сети Интернет должны существовать ресурсы с гайдами, уроками и примерами создания таких вещей.
Действительно, такое есть, но, к сожалению, все уроки сводятся к: “Придумай, купи на сайте, внедри” или “Придумай, скачай, пользуйся с друзьями” и так далее. И никогда не рассматривается подробный процесс создания. В общем-то, данной статьёй я и хотел бы исправить настоящее положение вещей и всё-таки привнести в русскоговорящее комьюнити такую информацию и рассказать людям, как же всё-таки можно создать свою валюту.
Причин создания криптовалюты может быть море:
1. Например, у вас есть свой игровой сервер, и, вы хотите таким образом создать реальную игровую валюту;
2. Вы действительно хотите на этом заработать;
3. Вас подогревает интерес и вы хотите просто знать нутро цифровой валюты;
Это первые причины, которые пришли мне в голову, если у вас есть и другие причины — пишите их в комментарии.
Признаюсь честно, всё же одна страничка с гайдом по созданию виртуальной валюты в Интернете мною была найдена. И, грубо говоря, эту статью можно назвать очень вольным переводом, только с дополнениями и тому подобное, так как в оригинальной статье много недочётов и пробелов.
По ходу написания статьи я также буду создавать криптовалюту для пущей наглядности, да и чтобы самому не сбиться. Ссылка на репозиторий.
Итак, начнём:
Скачивание базового кода
“First things first”, как написано в оригинальной статье, мы должны подготовить окружение для разработки. Если найти на github-е любую криптовалюту, то вы можете увидеть, какое огромное количество кода там храниться. Конечно же, мы не будем писать всё с нуля, не нужно изобретать велосипед, тем более мы и не сможем, пока сами хотя бы не попробуем сделать для него руль.
И пример криптовалюты мы легко можем найти на просторах того же github. Конечно же, такой код я нашёл и скопировал в свой репозиторий, и вам нужно склонировать его к себе. Кто умеет, те пропускают этот раздел, а кто не умеет, те читают спойлер:
Есть много способов получить исходный код с github, но я расскажу про самый понятный и простой:
Переходите по ссылке и находите кнопку “Download ZIP”. У вас скачивается ZIP-архив, внутри которого находится весь исходный код.
Если же вы всё-таки хотите научиться использовать все возможности github и git, то в помощь вам вот эта книга, но предупреждаю, что это затратно по времени.
Установка библиотек и зависимостей
Об этом говорить мне проще всего, так как сам работаю на Ubuntu. Установить зависимости не составляет труда:
1. Открываете терминал нажатием Ctrl+Alt+T;
2. Вводите следующее:
3. Жмёте Enter;
4. По ходу установки пакетов разрешаете установку и прочее-прочее.
Честно говоря, на Mac OS поработать возможности не было, так что я приведу вам ровно то, что было написано в оригинальной статье:
Чтобы установить библиотеки, от которых зависит базовый код, вам нужно воспользваться MacPorts или Homebrew. Сам автор статьи предпочитает MacPorts, объясняя это тем, что он проще, сразу устанавливает в /opt и потому что он устанавливает универсальные сборки по умолчанию. Если же вы выберите Homebrew, то автор советует установить флаг напортив 32-bit. Но пример по установке всё же приведён через MacPorts.
Этот раздел будет чуть позже. В общем-то, все библиотеки и зависимости пригодятся нам позже — при сборке готового продукта, так что с этим я повременю, дабы не путать вас и себя.
Теперь, когда подготовка закончена, подойдём к самому главному — к редактированию кода.
Замена названия
Сейчас вы должны задуматься, как бы вы хотели, чтобы ваша криптовалюта называлась. Придумали? Отлично.
Базовый код, который вы скачали, является готовой, но ещё не скомпилированной криптовалютой, и эта криптовалюта называется FooCoin. Всё, что вам нужно сделать: это заменить везде в базовом коде названия FooCoin, Foo и т.д. на название вашей криптовалюты. Конечно, делать это вручную в 10 000 строках кода – дело долгое и бессмысленное.
Хорошо, что добрые люди давно облегчили нам задачу и сделали программы, которые позволяют массово заменять строки в файлах на другие.
Моя криптовалюта называется PuffCoin. Вот список тех слов, которые я буду заменять на свои:
Советую и вам составить подобный список.
Для замены есть множество программ, я сейчас перечислю некоторые.
Для Linux есть Regexxer (бесплатно). Для Mac OS — TextWrangler (её предлагает автор оригинальной статьи, бесплатно). Для Windows нашёл много, например: Search and Replace, Actual Search & Replace, HandyFile Find and Replace, NHRPLC. Надеюсь, проблем с их использованием не будет.
Также стоит переименовать файл foocoin-qt.pro на ***coin-qt.pro, написав название нижним регистром.
Выбор и настройка сетевых портов
Отлично, теперь перейдём к самому важному и интересному — технической стороне кода. Надеюсь, что сейчас перед вами открыта папка с базовым кодом.
Так как любые операции с цифровой валютой так или иначе происходят через какую-либо сеть, то для нашего приложения нужно указать сетевые порты, через которые все операции будут происходить.
Вам нужно выбрать 4 порта: два для P2P и RPC, и два для тестовых P2P и RPC (testnet) соединений. Конечно, порты нужно выбрать такие, чтобы они точно не использовались каким-нибудь другим приложением. Для этого можете перейти по ссылке и посмотреть, какие порты свободны. Лично я сделаю так же, как и автор оригинальной статьи, и для RPC выберу 55883 порт, для P2P выберу 55884 порт, а для testnet: RPC — 45883, P2P — 45884.
Для указания того, что нужно использовать именно эти порты, нужно заменить несколько строчек в некоторых файлах по примеру, приведённому ниже:
Файл src/bitcoinrpc.cpp: (RPC порт)
В следующей строке вы можете указать любой первоначальный адрес, по которому вы можете проверить дополнительные адреса. Если честно, то я не понял, для чего это, но у меня работало всё и без этого, так что это не обязательный параметр. Если кто может объяснить, то отпишитесь в комментариях. Заранее спасибо!
Файл src/net.cpp:
Строка 1000:
Настройка генерации валюты
Теперь перейдём к настройкам самой генерации вашей валюты. Каждая валюта генерируется в блоках, а в каждом блоке находится какое-то количество валюты.
В следующей строке вы можете изменить количество валюты, которое выдаётся за генерацию одного блока. Для этого вам просто нужно изменить:
Файл src/main.cpp:
Так как наша валюта является “крипто-”, значит, все транзакции происходят закрыто и только с использованием ключей. У каждого пользователя валюты есть публичный и приватный ключи. В коде у нас есть возможность самим установить, какой первый байт публичного ключа у нас будет. Это может быть символ или цифра. Выбрать цифру или символ можно из таблицы. Слева от символов “Character” стоят их числовые значения “Value”. Выберите символ и запомните его числовое значение. Так как моя криптовалюта называется PuffCoin, то я выбрал себе символ P, а его значение — 22.
Теперь нужно заменить на ваше значение следующую строку:
Файл src/base58.h:
Замена иконок и изображений
На выходе у нас будет готовое GUI приложение для пользователя и консольное приложение, используемое как для сервера, так и для клиента.
Для GUI тоже есть ресурсы, которые находятся в папке src/qt/res. Там хранятся иконки для приложения. Вы можете заменить какие-нибудь иконки своими, главное – это такое же имя и разрешение.
Также автор оригинальной статьи предлагает воспользоваться специальной утилитой для конвертирования иконок.
На этом первая часть гайда закончена. Надеюсь, что вскоре появится и вторая. Постараюсь сделать это побыстрее.
Код — не главное. Как создать свою криптовалюту
Сейчас множество организаций предлагают разработать криптовалюту «под ключ». Обычно в эту услугу входит не только создание полноценной цифровой монеты, а и полное юридическое сопровождение, вплоть до регистрации юридического лица и создания оператора криптовалюты. Также разработчики занимаются интеграцией созданной монеты на различные биржи и обменники, однако стоимость создания цифровой монеты «под ключ» исчисляется несколькими миллионами долларов. Еще большую сумму нужно будет вложить в раскрутку криптовалюты.
Просто и недорого
Если найм целой команды программистов, юристов и маркетологов не по карману, то можно прибегнуть к более простому способу — скопировать уже готовую монету и создать форк. Форком называют клон оригинальной цифровой монеты. Например, Litecoin является форком биткоина, поскольку за основу был взят исходный код флагманской криптовалюты. Исходный код многих цифровых монет располагается в открытом доступе на GitHub, однако для работы с ним также нужны элементарные знания языков программирования.
Обычно при создании форка в исходном коде заменяют только основную информацию: название монеты, настройку портов, параметры генерации криптовалюты и прочие аспекты. На этом техническая сторона вопроса закончена и созданная цифровая монета готова к дистрибуции.
На грани провала
Любые разработки с открытым исходным кодом можно очень легко скопировать и изменить, однако сообщество с большой долей вероятности не оценит очередной криптовалютный «клон», поскольку он не несет в себе никакой ценности и уникальности. Об этом рассказал основатель платформы стабильных криптовалют STASIS Григорий Клумов.
«Если вы скопируете код, это будет просто скопированный продукт, в котором нет ценности для построения нового комьюнити — в нем нет мотивации присоединяться к вам», — отмечает эксперт.
Клумов добавил, что сегодня компании создают свои усовершенствованные блокчены, однако тратят десятки миллионы долларов, чтобы вывести их на рынок и привлечь пользователей. В пример он привел Flow, Graph, Near и Avalanche. По его словам, сейчас в мире криптовалют наблюдается самая большая конкуренция за всю историю его существования, которую можно сравнить с «пузырем доткомов» в 2000 году.
Стоит ли пробовать
Запустить собственный проект сейчас гораздо проще, чем когда-либо, утверждает сооснователь Zerion Вадим Колеошкин. По его словам, в открытом доступе находятся готовые инструменты, пользовательская база и необходимая инфраструктура. Он привел в пример фреймворки Polkadot и Cosmos, которые позволяют создать собственный блокчейн без знаний в области криптографии. Колеошкин отмечает, что в любом случае все будет сводиться к созданию собственной компании и благоприятных условий для роста коммьюнити.
«Если кто-то хочет запустить свой токен или криптовалюту, то это стоит рассматривать как запуск отдельной компании», — добавил он.
Также эксперт посоветовал не выходить на рынок с очередным форком уже существующей цифровой монеты, поскольку подобный проект не имеет смысла и обречен на провал. Колеошкин посоветовал проанализировать рынок и дать пользователям возможности, которых они пока не имеют, но очень нуждаются.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Что такое исходный код криптовалюты?
Исходный код криптовалюты: что это
Термин «исходный код» применяется среди программистов, составляющих ПО на разных языках программирования. В общем понимании это входные сведения для транслятора, который отражает код до запуска программы или сразу выполняет ее с применением интерпретатора. По информации, изложенной в исходных данных, легко понять логику поведения программы или цифровых монет (для криптовалюты). Для обоснования данных применяются комментарии или выпускается документация с пояснениями.
В общей практике исходный код применяют программисты для внесения изменений, изучения или совершенствования ПО. Его также используют специалисты в качестве инструмента для общения. На практике исходный код может разбиваться на блоки и использоваться в различных проектах.
Отвечая на вопрос, что такое код криптовалюты, можно сказать следующее — это наиболее важный элемент (основа) цифровой монеты, обеспечивающая ее работу внутри криптовалютной платформы. Без исходного кода исправление или внесение изменений в работу системы становится невозможным.
Исходный код криптовалюты бывает двух видов:
Организация и требования к исходному коду криптовалюты
Исходный код в зависимости от сложности состоит из одного или группы файлов. Язык написания может быть различным с возможностью «смешивания» разных вариантов. К примеру, допускается написание основной части на C++ с дополнительными вставками на Assembler. Известны случаи составления модулей с помощью разных языков, после чего составляющие элементы собираются в единый документ.
При разработке крупных проектов могут использоваться от 2 и более файлов с исходными кодами. В этом случае создатели выпускают отдельный документ с пояснением принципов работы каждого элемента и пояснением зависимости между ними. В состав файлов могут входить разные показатели для компилятора и программируемой среды. В зависимости от ситуации документы могут выполняться в текстовом виде или поддерживать другие форматы. Разработка и внесение правок в файлы осуществляется с применением особого софта.
Иными словами, исходный код (в том числе криптовалюты) — это набор файлов, в составе которых содержится разная информация. Для упрощения взаимодействия с создателями, как правило, применяют системы управления.
При оценке качества исходного кода криптовалюты не применяются термины плохой или хороший. Здесь учитывается несколько параметров:
Важность открытости исходного кода криптовалюты
Проекты с открытым исходным кодом — разработки, позволяющие другим участникам сети проверять корректность информации, вносить изменения (по желанию) или расширять возможности системы. Открытость исходного кода ценится не только в криптовалютах, но и в мире программного обеспечения. Стоит отметить, что большая часть цифровых монет построена именно на открытом коде.
Некоторые разработчики ПО и криптовалют скрывают исходный код. В этом случае поддержкой, разработкой и устранением ошибок занимается ограниченный круг лиц. К примеру, в криптовалютах NEM, Stellar и ряде других монет доступ посторонних к исходному коду закрыт. Это касается и многих программ, к примеру, Facebook или Adobe. Такое ПО носит название «несвободного», с ограниченным доступом. Внесение правок или изменений доступно авторам, имеющим юридически обоснованное право.
Открытость исходного кода делает его доступным для всех желающих. Любой человек сможет выполнять разные функции с программой — делать копии, смотреть, вносить правки, отправлять друзьям или проходить обучение. Некоторые разработчики открывают доступ к исходнику, но ограничивают его применение. К примеру, смотреть можно, а вот делать копии и использовать в других проектах нельзя.
Открывая код для пользователей, создатели криптовалюты повышают уровень децентрализации сети. К развитию платформы привлекаются опытные программисты и знающие пользователи, способные дать полезные рекомендации, а иногда и самостоятельно внести правки. Кроме того, сообщество держит под контролем открытый код и оперативно выявляет имеющиеся ошибки. Все это повышает надежность сети и ускоряет ее развитие.
Сегодня наиболее крупные криптовалюты, торгуемые на крупных биржах и востребованные на рынке (к примеру, Bitcoin, Ethereum и другие), построены на открытом исходном коде. При этом регулирующие организации и уполномоченные органы, пытающиеся понять сущность виртуальных денег, уверены в разработке таких ПО какой-то одной или группой предприятий. Такое мнение в отношении криптовалют ошибочно.
И правда, исходный код многих программ разрабатывается и поддерживается специальными компаниями. Для открытого ПО работает иной принцип. Здесь ключевую роль играет участие каждого человека в развитии сети. В процессе создания исходного кода криптовалют участвуют сотни тысяч людей. Информация бесплатно распространяется в Сети, скачивается на компьютеры и изучается пользователями. Сведения публичны, поэтому замечания относительно работы кода или его слабых мест появляются в сжатые сроки.
Благодаря такому подходу, исходный код криптовалюты никому не принадлежит, на него нет прав, запрещающих применение другими людьми. К примеру, не существует предприятия, которое бы владело Bitcoin или Monero. Такая децентрализация несет ряд преимуществ для системы, ее продвижения и развития. В программной среде одним из наиболее успешных примеров является операционная система Linux, имеющая открытый исходный код и при этом обладающая много большей надежностью, чем Windows.
Преимущества открытого исходного кода криптовалюты
Открытость исходного кода в криптовалютной сфере и секторе программного обеспечения несет ряд позитивных моментов:
Преимущества | Недостатки |
Высокая вероятность создания качественного продукта. | Доступность исходного кода для злоумышленников, которые могут использовать информацию для поиска багов и возможностей взлома сети. |
Тесное взаимодействие основных разработчиков и членов сообщества. | |
Высокая скорость устранения багов и слабых мест. | |
Упрощение и оптимизация кода, а, следовательно, повышение надежности криптовалюты. | |
Отсутствие временных рамок в развитии проекта. |
Анализируя, что такое исходный код криптовалюты с позиции открытости, можно сделать вывод о пользе такого подхода. В результате работы сотен тысяч людей появляется надежный и качественный продукт, который постоянно совершенствуется. При появлении малейших багов или проблем в работе опытные программисты с удовольствием берутся за решение проблемы для внесения посильного вклада в развитие проекта.
Остальное сообщество, не участвующее во внесении правок, пользуется качественным продуктом. Бесплатное ПО как бы появляется из воздуха и доступно всем желающим до момента, пока группа экспертов заинтересована в развитии проекта.
Законодательство и исходный код криптовалюты
Позиция многих стран относительно виртуальных денег и возможности их применения находится под вопросом. Одни полностью легализовали криптовалюту (к примеру, Япония, Беларусь), другие разрешили ее применение частично (Китай, Южная Корея, некоторые страны ЕС), третьи запретили (Эквадор, Непал и другие).
Что касается открытости исходного кода, здесь позиция правительств крупных государств в большей части одинаковая. Такой подход поддерживается, ведь это стимулирует создание более совершенного и надежного программного обеспечения. Разработка защищена авторским правом, но пользователи могут использовать и даже изменять код без получения разрешения или внесения платежей.
В ряде лицензий прописываются требования, подразумевающий выпуск ответвлений ПО с учетом аналогичных правил. В результате спрос на программы с открытым кодом увеличивается.
Источник исходного кода криптовалюты — где скачать
Как отмечалось, ярким примером ПО с открытым кодом — Linux, а в сфере криптовалют — Биткоин, Эфир. Сегодня большинство блокчейн-проектов выбирают открытую схему развития, понимая перспективы и возможности таких разработок. В результате на рынок выпускаются сети, взаимодействующие на базе согласия.
ПО, позволяющее пользователю подключиться к сети, носит название клиента, а сама программа имеет открытый код. При создании софта участвует множество людей, которые скачивают программу со специальных сайтов и создают нечто новое. К примеру, в сфере криптовалют это может быть кошелек, биржевая площадка или другое совместимое ПО.
Необходимая информация содержится на сайте github.com. Эта удобная платформа, в основе которой лежит GLt. Сервис контролирует процесс изменения исходных кодов и хранит в базе историю внесения изменений. Здесь же указывается дата внесения правок, человек, который это сделал, и время внесения правок.
Хранилище носит название репозиторий, а правки в исходный код делаются с помощью коммитов. Последние — набор правок в документах, объединенных в один перечень (для каждого предусмотрено индивидуальное обоснование). Изменения вносятся после получения соответствующих запросов.
Принцип действия можно рассмотреть на примере:
Иными словами, репозиторий контролирует форки для оригинального (первоначального) программного обеспечения. После выставления первичный проект можно усовершенствовать, после чего изменения сохранятся на сайте. К примеру, по ссылке github.com/ethereum можно найти 181 репозиторий для криптовалюты Эфириум. Каждый из них акцентирует внимание на определенном нюансе проекта — умных контрактов, совместимости с сетью и так далее. При этом код Эфириума доступен для просмотра и скачивания в полном объеме.
Что касается Bitcoin Core, здесь актуальна ссылка github.com/bitcoin/bitcoin. На 6 декабря 2018 года в этой сети отражено 18,893 тысячи коммитов и 209 релизов. Для получения доступа к репозиториям криптовалюты можно перейти по ссылке github.com/bitcoin/. По аналогичному принципу легко найти исходный код почти для любой интересующей криптовалюты. К примеру, для Zcash предусмотрено 14 репозиториев, а ссылка для скачивания — github.com/Zcash, для Litecoin — github.com/litecoin-project.
Как исходный код криптовалюты используется при создании новых монет?
В основе любой виртуальной монеты лежит программный код, где прописаны технические параметры коина и функционирования сети. В результате у создателей цифровых денег имеется два пути:
Если говорить в общем, создание криптовалюты проходит в несколько этапов: