前に書かれた言葉:この記事を読んでいる読者は、ブロックチェーンについて聞いたことがあるはずであり、ブロックチェーンは将来有望で破壊的な技術であると信じているはずです。しかし、混乱を感じることもあるかもしれません。ブロックチェーンについての一般的な概念は理解できても、ブロックチェーン技術の適用方法やブロックチェーンのプログラミング方法となると、それほど簡単ではないことがわかります。それではおめでとうございます!あなたは正しい場所に来ました。このチュートリアルでは、主にブロックチェーン技術の主要な分野である Ethereum プログラミングを紹介します。この本を読んだ後、読者はイーサリアムとそのスマートコントラクトのプログラミングを学習して習得し、実際のプロジェクト開発にブロックチェーン技術を実装できるようになることが期待されます。 最後に、自己紹介をさせてください。私のオンライン名は「Nebula」です。私は、インターネットのベテラン実践者であり、長年ブロックチェーン技術を探求し、Ethereum Chinese Network の創設者でもあります。ブロックチェーン分野で新しい世界を創ることに興味のある友人同士、ぜひコミュニケーションを取り合い、一緒に前進してください。 はい、余談はここまでにして、本題に入りましょう! ブロックチェーン入門ブロックチェーンとは一体何でしょうか?ブロックチェーン(英訳:Blockchain)は、ビットコインから生まれた分散型データベースです。ブロックチェーンは、暗号化手法を使用して生成されたデータ ブロックの文字列です。各データ ブロックには、複数の Bitcoin ネットワーク トランザクションに関する情報が含まれており、情報の有効性 (偽造防止) を検証し、次のブロックを生成するために使用されます。 (ウィキより) ブロックチェーン技術の定義:ブロックチェーンは分散型台帳であり、分散型で信頼できない方法で信頼性の高いデータベースを集合的に維持するための技術的ソリューションです。 データの観点から:ブロックチェーンは、変更がほぼ不可能な分散型データベースです。 「分散」には 2 つの意味があります。1 つは分散ストレージであり、もう 1 つはすべての参加者が共同でそれを維持することです。 ブロックチェーン技術のいくつかの特徴
引用元 ビットコインシステムは、上記の利点を踏まえ、数十億の取引量を誇る自律的な取引システムを実現し、長年にわたり世界中で24時間安定的に稼働しています。 2 つのアカウント間で行われたビットコインの購入または売却は、大規模に冗長化された元帳に忠実に記録されます。 ビットコイン ネットワークでは、すべてのアカウントは匿名であり、アカウント間の取引は改ざんできず、すべてのノードに記録されます。そして、ビットコインのマイニングインセンティブメカニズムを通じて、ネットワークは中央集権的な取引システムを必要とせずに自律的に動作できるようになります。 イーサリアムでは、イーサリアムとは何でしょうか?Ethereum は、スマート コントラクト機能を備えたオープン ソースのパブリック ブロックチェーン プラットフォームです。専用の暗号通貨イーサを通じてピアツーピア契約を処理するための分散型仮想マシン(EVM)を提供します(ウィキペディアより) 最も簡単に言えば、ブロックチェーン技術 + スマートコントラクトです。 Ethereum はブロックチェーン技術を継承し、スマートコントラクトのサポートを実装しているため、ブロックチェーン技術を商用アプリケーションと組み合わせてプロジェクトの実装を実現できます。 Ethereum ネットワークでは、スマート コントラクトも特別なアカウントとして扱われるため、ユーザーはアカウントでトランザクションを実行することで、アカウント内のプロパティとメソッドを呼び出すことができます。これは、基盤となるテクノロジーからのスマート コントラクトの実装をサポートします。 技術アーキテクチャ図スマートコントラクトとは何ですか?以前、ブロックチェーン技術の5つの特徴について説明しました。 Ethereum は上記のすべてのブロックチェーン技術を継承し、スマートコントラクトのサポートを提供します。これにより、ブロックチェーン技術は、本来のアカウント間の取引機能から、スマートコントラクトを実装できるプラットフォームへと拡張されます。このスマート コントラクトは、クラウドファンディング コントラクト、数式、または完全にランダムな数字にすることができます。 スマート コントラクトが Ethereum ネットワークに展開されている限り、ブロックチェーン テクノロジーの 5 つの特性が本質的に備わっています。同時に、JavaScript のような言語で記述されているため、多くの複雑なビジネス ロジックを実装できます。 このチュートリアルでは、主にスマート コントラクトのプログラミングについて説明します。独自のビジネスロジックに準拠したスマートコントラクトを記述することで、さまざまなブロックチェーンベースのプロジェクトを簡単に実装できます。次の章では、最も単純なスマート コントラクトから始めて、スマート コントラクトがどのようなものかを簡単に紹介します。最もシンプルなスマートコントラクトプラグマ ソリディティ 0.4.9; 契約デモタイプ { 関数f(uint a)は(uint b)を返します{ uint 結果 = a * 8; 結果を返します。 } } 上記は最も単純なスマート コントラクトです。このスマート コントラクトは、N を入力して 8 * N を返すという最も基本的な機能を実装します。 公式アドレス: https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.9+commit.364da425.js
上記のコードを貼り付けると、以下のような結果が表示されます。 この時点で、赤い作成ボタンをクリックします この最もシンプルなスマートコントラクトをブロックチェーンネットワーク(メモリ上)にデプロイできます。 ここでいくつかのことがわかります
今回は100を入力し、fボタンをクリックすると結果が表示されます。 結果は明らかです。
上記では、最も単純なスマート コントラクトを紹介しています。次の章では、スマート コントラクト言語 Solidity を紹介します。それは本全体の焦点でもあります。 堅実性前の記事では、 ここでの Solidity は、Ethereum スマート コントラクトのコア言語である Solidity であり、このチュートリアルの焦点でもあります。 Solidityとは何ですか?Solidity は、Ethereum スマート コントラクトのプログラミング言語です。スマート コントラクトをコンパイルしてデプロイすることで、スマート コントラクトを作成、実行、表示し、特定の商用アプリケーションを実現できます。 いくつかの簡単なSolidityの例以下のスマート コントラクトを通じて、いくつかのビジネス アプリケーションを適切にブロックチェーン化できるため、分散型で信頼性が高く、透明性の高いビジネス モデルを実現できます。 次のチュートリアルでは、Solidity プログラミングを段階的に分析し、Solidity 言語を素早く習得し、フロントエンド Web ページにブロックチェーンを実装できるようにします。 1+2+3+..+nの合計関数を実装します。プラグマ ソリディティ 0.4.9; 契約デモ1 { /*1からNまでの合計を計算します*/ 関数 f(uint n) は (uint sum) を返します { (n == 0) の場合は throw; uint 結果 = 0; (uint i=0; i<=n; i++) の場合 { 結果 +=i; } 結果を返します。 } } II はトークン機能を実装し、トークンのマイニングと転送の機能を備えています。プラグマ solidity ^0.4.0; 契約コイン{ // キーワード「public」はこれらの変数を // 外部から読み取り可能。 パブリックミントアドレス; マッピング (アドレス => uint) パブリック残高; // イベントにより、軽量クライアントは // 効率的に変更します。 イベント送信(送信元アドレス、送信先アドレス、uint 量); // これはコードが // 契約が作成された場合にのみ実行されます。 関数Coin() { minter = msg.sender; } 関数 mint(アドレス受信者、uint 金額) { if (msg.sender != minter) return; 残高[受取人] += 金額; } 関数 send(アドレス 受信者, uint 金額) { 残高[msg.sender] < 金額の場合、戻り値は; 残高[msg.sender] -= 金額; 残高[受取人] += 金額; 送信済み(msg.sender, received, amount); } } III クラウドファンディングのスマートコントラクトを実装し、各ユーザーが資金を調達し、資金調達が成功した場合は収益を受益者に送金し、各クラウドファンディング参加者がトークンを取得できるようにします。プラグマ ソリディティ ^0.4.2; 契約トークン { 関数 transfer(address received, uint amount){ } } 契約クラウドセール4 { 公的受益者への対応; uint 公的資金目標; uint パブリック amountRaised; uint 公開期限; uint 公開価格; トークン public tokenReward; マッピング(アドレス => uint256) パブリックbalanceOf; bool 公共資金目標到達 = false; イベント GoalReached(address beneficiary, uint amountRaised); イベント FundTransfer(アドレス backer, uint amount, bool isContribution); bool パブリック クラウドセール終了 = false; /* キャンペーン寄付者に関する情報を保持するデータ構造 */ /* 初期化時に所有者を設定します */ 機能クラウドセール4( アドレスifSuccessfulSendTo、 uint fundingGoalInEthers、 uint 期間(分単位)、 uint イーサコストオブ各トークン、 報酬として使用されるトークンのアドレス ){ 受益者 = ifSuccessfulSendTo; fundingGoal = fundingGoalInEthers * 1 ether; 期限 = 現在 + 所要時間 (分) * 1 分; 価格 = etherCostOfEachToken * 1 ether; トークン報酬 = token(報酬として使用されるトークンのアドレス); } /* 名前のない関数は、誰かがコントラクトに資金を送るたびに呼び出されるデフォルトの関数です */ 関数()支払可能{ (crowdsaleClosed) の場合は throw; uint 量 = msg.値; balanceOf[msg.sender] += 金額; 調達額 += 調達額; tokenReward.transfer(msg.sender, 金額 / 価格); FundTransfer(msg.sender, 金額, true); } 修飾子 afterDeadline() { if (now >= 期限) _; } /* 目標または時間制限に達したかどうかを確認し、キャンペーンを終了します */ 関数 checkGoalReached() afterDeadline { (調達額 >= 資金調達目標)の場合{ 資金調達目標到達 = true; GoalReached(受益者、調達額); } クラウドセール終了 = true; } 関数 safeWithdrawal() afterDeadline { 資金調達目標に到達した場合 uint 金額 = balanceOf[msg.sender]; バランス[msg.sender] = 0; (金額>0)の場合{ if (msg.sender.send(金額)) { FundTransfer(msg.sender, 金額, false); } それ以外 { balanceOf[msg.sender] = 金額; } } } if (fundingGoalReached && beneficiary == msg.sender) { if (beneficiary.send(amountRaised)) { FundTransfer(受益者、調達額、false); } それ以外 { // 受取人への送金に失敗した場合は、資金残高のロックを解除します 資金調達目標到達 = false; } } } } Solidity の紹介はこれで終わりです。これらの契約の謎については後ほど詳しく分析します。 前述したように、スマート コントラクトは Ethereum ネットワーク上に展開されます。したがって、Ethereum ネットワークを構築するには、公式ツール Geth が必要です。次の章で詳しく説明します。 |
<<: 金融サービス大手がブロックチェーン企業に投資する方法
>>: BTCC CEO 李其源: なぜ一部の中国マイナーは孤立した検証を嫌うのか?
ロシア第3位の銀行の子会社でチューリッヒに拠点を置くガスプロムバンクは、ビットコインの売買、取引、保...
ブロックの種類の紹介1. 通常ブロックブロック報酬(コインベース)に加えて、トランザクションのパッケ...
4兆ドル規模の貿易金融業界に対する詐欺のリスクにより、銀行はビットコインの基盤となっているものと同様...
エネルギー研究者でピッツバーグ大学の電気・コンピュータ工学研究助手であるカトリーナ・ケリー・ピトウ博...
ビットコインの価格が今後12か月以内に10万ドルから20万ドルに達するだろうという予測は、かなり一般...
この記事は元々IPFS Force Zoneによって書かれました私を殺さないものは私を強くするだけだ...
11月25日。 11月19日、中国市場におけるビットコインの最高取引価格は8,000元近くに達した。...
ビットコインは数日連続で下落しており、現在は27,500ドルを下回っています。 Bitpush Te...
2016 年 4 月、新しい世界クラスの金融テクノロジー イベント Money20/20 がヨーロ...
クレイジーな解説:ロシア財務省当局はついにビットコインなどのデジタル通貨の使用に関する姿勢を緩和した...
まとめビットコイン投資家は景気低迷時に大きな損失を被り、BTC 価格は 93,000 ドルまで下落し...
先週、ナスダックトークン取引所に上場されている米ドル建てステーブルコインである暗号資産テザーが上場廃...
EOS メインネットが立ち上げられてから48時間も経たない6月16日午後6時頃、EOS メインネット...
投機の世界では、無敵は決して絶対的なものではなく、相対的なものである。結局のところ、東方不敗と独孤秋...
2018年に始まった「KAWS: HOLIDAY」ワールドツアー展は、ソウルを皮切りに台北、香港、...