暗号通貨-作成方法

私は誰もが暗号通貨とは何かを知っていると確信しており、おそらくあなたはそれが何で食べられているかを知っていて、あなた自身がそれを使用しました。 2009年、 中本Sのおかげで、有名なビットコインは誰もが作成しました。そのおかげで、著者はかなりの財産を獲得しました。



もちろん、イノベーションが成功した直後に、他の同様の製品が市場に登場します。 それで、キノコが新しい暗号通貨になり始めたちょうどその時、ビットコインのアイデアを単純にコピーし、(技術的な観点から)役に立たない代替手段があり、独自のものをもたらしたものもありました。 しかし、奇妙なことに、暗号通貨の誇大広告は沈静化していません。 これまで、通貨を購入/使用することを提案するリソースがインターネット上に表示されます。

そして、論理的な質問は次のとおりです。最初の暗号通貨が2008年に登場した場合、結局のところ、そのようなものを作成するためのガイド、レッスン、および例とともにリソースがインターネット上にすでに存在するはずです。

実際、そのようなことはありますが、残念ながら、すべてのレッスンは「考える、サイトで購入する、実装する」または「考える、ダウンロードする、友人使う」などになります。 そして、詳細な作成プロセスは考慮されません。 一般に、この記事では、現状を修正し、ロシア語圏のコミュニティにそのような情報を伝え、独自の通貨を作成する方法を人々に伝えたいと思います。

暗号通貨を作成する理由は海かもしれません:
1.たとえば、独自のゲームサーバーがあり、この方法で実際のゲーム通貨を作成したい場合。
2.本当にお金を稼ぎたいですか?
3.あなたは興味に支えられ、デジタル通貨の内部を知りたいだけです。

これらが私に最初に生じた理由です。他の理由があれば、コメントに書いてください。

正直に認めますが、インターネット上で仮想通貨を作成するためのガイド付きのページを見つけました。 また、大まかに言って、元の記事には多くの欠点とギャップがあるため、この記事は非常に無料の翻訳と呼ぶことができます。

この記事を執筆する過程で、私は暗号通貨を作成して、より明確にするために、そして自分自身を迷わないようにします。 リポジトリへのリンク

それでは、始めましょう:


基本コードのダウンロード

「最初に最初に」最初の記事に書かれているように、開発のための環境を準備する必要があります。 githubで暗号通貨を見つけた場合、そこに保存されているコードの量を確認できます。 もちろん、すべてをゼロから作成するわけではありません。特に、少なくとも自分でホイールを作成しようとすることはできないため、ホイールを再発明する必要はありません。

また、同じgithubのオープンスペースで暗号通貨の例を簡単に見つけることができます。 もちろん、私はそのようなコードを見つけて自分のリポジトリにコピーしたので、自分でクローンを作成する必要があります。 できる人はこのセクションをスキップし、そうでない人はネタバレを読む:
githubからコードをダウンロードする
githubからソースコードを取得する方法は多数ありますが、最もわかりやすくシンプルな方法について説明します。
リンクをたどり、「ZIPをダウンロード」ボタンを見つけます。 ZIPアーカイブをダウンロードしています。ZIPアーカイブにはすべてのソースコードが含まれています。

それでもgithubとgitのすべての機能を使用する方法を学びたい場合は、この本が役立ちますが、時間がかかることを警告します。



ライブラリと依存関係をインストールする

さらに、ビルドの基礎となるすべての基本コードをダウンロードした後、正しい操作に必要なすべてのライブラリがコンピューターにあることを確認する必要があります。
Linux(Ubuntu)を使用している場合
私自身がUbuntuで作業しているので、これについて話すのが最も簡単です。 依存関係を確立することは難しくありません:
1. Ctrl + Alt + Tを押してターミナルを開きます。
2.次を入力します。
sudo apt-get install build-essential libboost-all-dev libcurl4-openssl-dev libdb5.1-dev libdb5.1++-dev git qt-sdk libminiupnpc-dev 

3. Enterキーを押します。
4.パッケージのインストール中に、インストールなどを許可します。

Mac OSを使用している場合
正直なところ、Mac OSで作業する方法はなかったので、元の記事に書かれた内容を正確に説明します。

基本コードが依存するライブラリをインストールするには、MacPortsまたはHomebrewを使用する必要があります。 記事の著者自身がMacPortsを好んでおり、それはよりシンプルで、すぐに/ optにインストールされ、デフォルトでユニバーサルアセンブリをインストールするためです。 Homebrewを選択した場合、作成者は32ビットの側にフラグを設定することを勧めます。 ただし、インストール例は引き続きMacPortsを介して提供されます。

必要なもののリストは次のとおりです。
  • boost(C ++ライブラリ)
  • db48(バークレーDB 4.8)
  • qt4-mac(オープンソースQT 4.8.4、qmakeを含む)
  • openssl(ssl devライブラリ)
  • git(ソースをリポジトリに移動するため)
  • miniupnpc(UPNP devライブラリ、オプション–正直言って、このがらくたはスキップします)

インストール後、作成者は、コンソールで次のコマンドを実行することをお勧めします。
 sudo port install boost db48 qt4-mac openssl miniupnpc git 


窓がある場合
やばい!

このセクションは少し後で説明します。 一般に、すべてのライブラリと依存関係は、完成した製品を組み立てるときに、後で役立ちます。そのため、あなたと私を混同しないようにしばらく時間がかかります。

準備が完了したので、最も重要なこと、つまりコードを編集することに取り掛かりましょう。

名前の変更

ここで、暗号通貨をどのように呼び出すかを考える必要があります。 思い付く? 素晴らしい。
ダウンロードした基本コードは既製ですが、まだコンパイルされていない暗号通貨であり、この暗号通貨はFooCoinと呼ばれます。 あなたがしなければならないことは、ベースコードのどこでもFooCoin、Fooなどの名前を置き換えることです。 暗号通貨の名前で。 もちろん、10,000行のコードで手動でそれを行うことは、長く意味のないビジネスです。
親切な人々が長い間私たちの仕事を緩和し、ファイル内の行を他の行に大量に置き換えることができるプログラムを作成してくれたのは良いことです。

私の暗号通貨はPuffCoinと呼ばれます。 以下は、私が自分の単語に置き換える単語のリストです。
置換する単語のリスト
FooCoin-PuffCoin
フーコイン-パフコイン
foocoin-パフコイン
foo-パフ
フー-パフ

同様のリストを作成することをお勧めします。

置き換えるプログラムは多数ありますが、ここでいくつかをリストします。

LinuxにはRegexxer (無料)があります。 Mac OSの場合-TextWrangler (元の記事の著者が無料で提供しています)。 たとえば、 検索と置換実際の検索と置換HandyFileの検索と置換NHRPLC など 、Windowsで多くのことが見つかりました。 それらの使用に問題がないことを願っています。

画像

foocoin-qt.proファイルの名前を*** coin-qt.proに変更し、小文字で名前を書き込むことも価値があります。

ネットワークポートを選択して構成する

それでは、最も重要で興味深い部分、つまりコードの技術的な側面に移りましょう。 皆さんの目の前で、基本コードを含むフォルダーを開くことを願っています。

デジタル通貨を使用した操作は何らかのネットワークを介して行われるため、アプリケーションでは、すべての操作が発生するネットワークポートを指定する必要があります。

4つのポートを選択する必要があります。P2PおよびRPC用に2つ、テストP2PおよびRPC(testnet)接続用に2つです。 もちろん、他のアプリケーションで使用されないようにポートを選択する必要があります。 これを行うには、 リンクをたどって、どのポートが空いているかを確認します。 個人的には、元の記事の著者と同じことを行います。RPCでは55883ポート、P2Pでは55884ポート、testnetではRPC-45883、P2P-45884を選択します。

これらのポートを使用する必要があることを示すには、以下の例に従っていくつかのファイルのいくつかの行を置き換える必要があります。

ファイルsrc / bitcoinrpc.cpp :( RPCポート
行2893:
 ip::tcp::endpoint endpoint(bindAddress, GetArg("-rpcport", 55883)); 

行3169:
 if (!d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", "55883"))) 


ファイルsrc / init.cpp :( P2Pポート+テストネットP2P + RPCポート
235行目:
 " -port= " + _("Listen for connections on (default: 55884 or testnet: 45884)") + "\n" + 

271行目:
 " -rpcport= " + _("Listen for JSON-RPC connections on (default: 55883)") + "\n" + 


ファイルsrc / protocol.h :( testnet P2P + P2Pポート
22行目:
 return testnet ? 45884 : 55884; 


次の行では、追加のアドレスを確認できる初期アドレスを指定できます。 正直なところ、私はそれが何のためにあるのか理解できませんでしたが、すべてが私なしで機能したので、これは必須パラメーターではありません。 誰でも説明できる場合は、コメントの購読を停止します。 事前に感謝します!
Src / net.cppファイル
1000行目:
 {"some website name", "somewebsite.org or ip xxxx"}, 


通貨生成のセットアップ


次に、独自の通貨を生成するための設定に移りましょう。 各通貨はブロックで生成され、各ブロックには一定量の通貨があります。

次の行では、1つのブロックの生成のために発行される通貨の量を変更できます。 これを行うには、変更するだけです。
Src / main.cppファイル:
831行目
 int64 nSubsidy = 1 * COIN; 


次に、ブロックを生成する間隔を指定する必要があります。 時間は秒単位で測定されます。
Src / main.cppファイル:
行837:
 static const int64 nTargetSpacing = 120; // PuffCoin:   


次に、「問題の修正」が発生する間隔を指定する必要があります。 繰り返しますが、私はそれが何であるかを理解せず、そのままにしておきました。
Src / main.cppファイル:
行836:
 static const int64 nTargetTimespan = 1 * 24 * 60 * 60; // PuffCoin: 1  


次に、一般的に可能な通貨の量を変更します。
ファイルsrc / main.h
43行目:
 static const int64 MAX_MONEY = 10000 * COIN; //     


そして、1日に最大限に生成されたブロックの数
ファイルsrc / main.h
550行目:
 return dPriority > COIN * 720 / 250; // 720    . 



通貨は「暗号」であるため、すべてのトランザクションは閉じられ、キーのみを使用して行われます。 各通貨ユーザーには公開鍵と秘密鍵があります。 コードでは、公開キーの最初のバイトをどのようにするかを自分で決定する機会があります。 文字または数字を使用できます。 から数字または記号を選択できます。 文字「文字」の左側には、数値「値」があります。 文字を選択し、その数値を覚えておいてください。 私の暗号通貨はPuffCoinと呼ばれるので、私は自分でP記号を選択しました。その値は22です。

ここで、次の行を自分の値に置き換える必要があります。
ファイルsrc / base58.h
280行目:
 PUBKEY_ADDRESS = 22, //      


アイコンと画像の置き換え

出力には、ユーザー向けの既製のGUIアプリケーションと、サーバーとクライアントの両方に使用されるコンソールアプリケーションがあります。

GUIの場合、src / qt / resフォルダーにあるリソースもあります。 アプリケーションのアイコンはそこに保存されます。 任意のアイコンを自分のアイコンに置き換えることができます。主なものは同じ名前と解像度です。

画像

また、元の記事の著者は、アイコンを変換するための特別なユーティリティの使用を提案しています。

これで、ガイドの最初の部分は終わりました。 私はすぐに2番目のものが現れることを願っています 私はそれをより速くしようとします。

Source: https://habr.com/ru/post/J263367/


All Articles