<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          智能合約開(kāi)發(fā)實(shí)戰(zhàn)(附源碼),30 個(gè)開(kāi)發(fā)案例助你年薪 60 萬(wàn)!

          共 2693字,需瀏覽 6分鐘

           ·

          2018-11-23 00:08

          本文準(zhǔn)備了30個(gè)編程挑戰(zhàn)案例,涉及簡(jiǎn)單智能合約、測(cè)試和去中心化應(yīng)用等。

          主要包含以下主題:

          1)Solidity智能合約: lottery(彩票),ICO(首次代幣發(fā)行),DAO(去中心化自制組織)

          2)Tokens: ERC20, ERC721

          3)測(cè)試 :Solidity 測(cè)試,JavaScript 測(cè)試

          4)安全: Re-entry attack(重入攻擊)

          5)DAPPs & deployment:Truffle(以太坊Solidity編程語(yǔ)言開(kāi)發(fā)框架),Web3

          6)外部服務(wù):Oraclize(以太坊預(yù)言機(jī)),Infura(一個(gè)托管的以太坊節(jié)點(diǎn)集群)

          7)存儲(chǔ):IPFS(星際文件系統(tǒng)),Swarm(以太坊去中心化存儲(chǔ)網(wǎng)絡(luò))

          切記,一定要自己動(dòng)手做一遍!動(dòng)手做一遍!做一遍!

          (源碼鏈接,建議碼完再對(duì)照)

          鏈接:https://pan.baidu.com/s/1UVhLAsG167WC74jp5g9CRg

          密碼:i6td

          Now,挑戰(zhàn)開(kāi)始!

          01_say_hello

          在創(chuàng)建時(shí)設(shè)置問(wèn)候語(yǔ)并允許所有者(合約創(chuàng)建者)進(jìn)行更改

          向每個(gè)調(diào)用sayHello方法的人返回問(wèn)候語(yǔ)

          將Hello Daddy返回給創(chuàng)建者


          02_balance_address_checker

          返回合約地址

          返回合約創(chuàng)建者的地址

          返回發(fā)送人的地址

          返回合約的余額

          返回合約制定者的余額(僅在你為該合約所有者的前提下)

          返回發(fā)送人的余額


          03_basic_random

          返回0-99之間的隨機(jī)數(shù)

          計(jì)算中的“財(cái)務(wù)重要性”小于礦工挖掘單一區(qū)塊得到的

          如何將BLOCKHASH安全地用于隨機(jī)數(shù)?


          04_lottery_10_users

          限制為10個(gè)用戶

          用戶必須支付0.1ETH才能加入以太坊彩票

          同一用戶只能加入一次

          合約創(chuàng)建者可以加入以太坊彩票

          第10個(gè)用戶進(jìn)入后,選擇獲勝者

          贏家收走所有的錢(qián)

          選出獲勝者之后,開(kāi)始下一輪


          05_lottery_no_limit

          用戶支付0.1以太即可加入lottery

          不限用戶數(shù)量

          同一用戶可以多次加入

          合約所有人亦可以加入

          合約所有人決定何時(shí)選出贏家

          贏家將得到所有獎(jiǎng)金

          選出贏家即可開(kāi)始新一輪lottery


          06_lottery_multiple_winners

          對(duì)用戶無(wú)限制

          用戶須支付0.1 ETH和并從1-100中挑選一個(gè)數(shù)字

          合約所有者決定何時(shí)生成隨機(jī)數(shù)(1-100)

          選擇生成數(shù)字的用戶獲勝

          所有獎(jiǎng)勵(lì)將分配給所有贏家


          07_fundraising

          有籌款目標(biāo)的(創(chuàng)立時(shí)設(shè)定數(shù)額)

          籌資有時(shí)間限制(創(chuàng)立時(shí)設(shè)定時(shí)間)

          任何人都可以增加任何金額,直到時(shí)間結(jié)束或目標(biāo)達(dá)到為止。

          時(shí)間到了,但目標(biāo)尚未完成,用戶可以撤回他們的資金。

          當(dāng)目標(biāo)達(dá)到時(shí),所有者可以取出所有錢(qián)


          08_basic_token

          創(chuàng)造時(shí)設(shè)定代幣的初始供應(yīng)量

          合約創(chuàng)建者獲得初始Token

          Token可以轉(zhuǎn)移到任何帳戶

          有保護(hù)措施以防止溢出

          任何人可檢查余額


          09_ERC_20_token

          基于EIP規(guī)范實(shí)現(xiàn)ERC 20 token


          10_ERC20_usage

          使用OpenZeppelin創(chuàng)建你自己的ERC 20令牌

          繼承“標(biāo)準(zhǔn)token”

          添加自定義名稱、符號(hào)、小數(shù)和初始供應(yīng)


          11_ERC_721_usage

          使用OpenZeppelin創(chuàng)建自己的ERC 721令牌

          繼承“ERC 721 Token”

          添加自定義名稱和符號(hào)


          12_string_converter

          創(chuàng)建函數(shù),將字符串轉(zhuǎn)換為bytz 32

          為該函數(shù)添加可靠性測(cè)試


          13_route_manager

          合約內(nèi)必須存儲(chǔ)公交車(chē)站的列表。

          每個(gè)公共汽車(chē)站都有id、名稱和坐標(biāo)(例如:czn 1、PKS Cieszyn、10.123222, 33.212345)

          所有者能夠添加新的站點(diǎn)

          合約必須有測(cè)試范圍


          14_testing_route_manager

          增加Solidity試驗(yàn)

          添加JavaScript測(cè)試


          15_shared_wallet

          合約有且只有一位所有者

          所有者可以添加和刪除管理員

          管理員可以提取所有資金

          合約具有接收轉(zhuǎn)帳的應(yīng)付款回退功能


          16_multisig_wallet

          創(chuàng)建一個(gè)多簽名錢(qián)包

          進(jìn)行轉(zhuǎn)移須有3名管理員簽署交易


          17_crowdsale

          制造可鑄造硬幣(使用Open Zeppelin)

          創(chuàng)建簡(jiǎn)單的眾包銷(xiāo)售(使用Open Zeppelin)

          設(shè)定開(kāi)啟和關(guān)閉時(shí)間

          固定費(fèi)率和錢(qián)包地址

          18_roles_management

          創(chuàng)建繼承自己的合約(Open Zeppelin)

          合約須有管理員名單

          所有者可以添加/更新/刪除管理員

          合約所有者也是管理員

          僅管理員可添加修飾符


          19_the_dao_attack

          增加非常簡(jiǎn)化的DAO合約(押金,提款)

          添加攻擊者合約


          20_lpg_price

          利用Oraclize API獲取LPG價(jià)格


          21_random_oraclize

          使用Oraclize API獲取隨機(jī)數(shù)


          22_raffle_oraclize

          用戶可以參與一次抽獎(jiǎng)

          所有者不能參與

          使用Oraclize的RNG選出贏家


          23_ipfs_oraclize

          向IPF中添加一個(gè)簡(jiǎn)單的json文件

          使用Oraclize讀取該文件

          將一個(gè)json屬性的結(jié)果存儲(chǔ)在字符串變量中


          24_election

          每一次選舉創(chuàng)建一個(gè)合約,為每個(gè)候選人提供一個(gè)簡(jiǎn)短的名字和地址

          合約創(chuàng)建者有權(quán)對(duì)每個(gè)地址單獨(dú)投票

          每個(gè)投票參與者可以投票一次

          投票參與者不能為自己投票


          25_faucet

          添加回退函數(shù)以接受付款

          增加退出功能,每人最多能得到1ETH

          使用事件記錄兩個(gè)金額(已支付、轉(zhuǎn)移)


          26_swarm_oraclize

          將文本文件添加到Swarm public gateway (https://swarm-gateways.net

          通過(guò)Oraclize API讀取合約中的文件


          27_dapp_pet_shop

          創(chuàng)建DApp(https://truffleframework.com/tutorials/pet-shop

          允許所有者取消收養(yǎng)

          編寫(xiě)取消收養(yǎng)的測(cè)試(TDD)

          在SMART合約中添加取消功能


          28_infura_deployment

          使用Infura添加Ropsten部署設(shè)置


          29_tic_tac_toe

          為2名玩家添加基本的tic tac toe

          3x3 board

          無(wú)需人工智能


          30_web3_DAO_deploy

          從?http://ethereum.org/dao復(fù)制DAO代碼

          將其更新為Solity0.4.24并編譯

          使用 web3 和ethereumjs-tx發(fā)送已簽名的交易

          使用 Infura將編譯好的合同部署到Ropsten網(wǎng)絡(luò)

          ?

          ? ? ? ? ? ? ? ??


          ? ? ? ? ? ? ? ? ? ? ? ? ?獲取更多實(shí)用開(kāi)發(fā)工具/教程敬請(qǐng)關(guān)注BinSTD公眾號(hào)

          ?

          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄片乱伦 | 中国女人操逼 | 国产精品一二二区 | 久热精品在线观看视频 | 五月天婷婷色亚洲丁香 |