真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

以太坊智能合約開發(fā)語言怎么選擇

這篇“以太坊智能合約開發(fā)語言怎么選擇”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“以太坊智能合約開發(fā)語言怎么選擇”文章吧。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、自適應(yīng)網(wǎng)站建設(shè)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!

比特幣

比特幣是第一個真正意義上的區(qū)塊鏈,不過,從嚴(yán)格意義上來講,它對智能合約的開發(fā)者是不友好的。

可以用一種低門檻的編程語言Bitcoin Script在比特幣系統(tǒng)上編寫智能合約。每個比特幣地址都對應(yīng)著一個Bitcoin Script程序??雌饋硎沁@樣:

IF 
    2    3 CHECKMULTISIG
ELSE
    "30d" CHECKSEQUENCEVERIFY DROP
     CHECKSIG
ENDIF

另一種較高級別的語言是Ivy,它可以編譯成Bitcoin Script。Ivy能夠幫助你編寫自定義的比特幣地址,這種地址與隔離見證(SegWit)兼容,在比特幣協(xié)議(包括簽名檢查、hash特征值(commitment)和時間鎖)的支持下,可以執(zhí)行任意條件組合。例如:

contract EscrowWithDeplay{
    sender: PublicKey
    recipient: PublicKey,
    escrow: PublicKey,
    delay: Duration,
    val: Value
}{
    clause transfer(sig1: Signature, sig2: Signature){
        verify checkMultiSig([sender, recipient, escrow],[sig1, sig2])
        unlock val
    }
    clause timeout(sig: Signature){
        verify checkSig(sender, sig)
        verify older(delay)
        unlock val
    }
}

Ivy的github地址:https://github.com/ivy-lang/ivy-bitcoin

比特幣“虛擬機”——協(xié)議中負責(zé)執(zhí)行Bitcoin Script程序的一部分——與以太坊或者Chain Protocol等其它智能合約平臺的虛擬機相比(功能)更加有限,其指令系統(tǒng)甚至不是圖靈完備的。但Bitcoin Script的確提供了一組很有用的基礎(chǔ)原語(primitives)——簽名校驗、哈希計算以及相對和絕對的時間鎖——另外還能對這些原語進行自由組合。

超級賬本fabric

fabric是超級賬本大家庭中最成熟的一個區(qū)塊鏈項目,主要用于行業(yè)鏈、聯(lián)盟聯(lián)或私有鏈,它不需要通過挖礦來形成共識,因此可以達到很高的交易速度。

在fabric中,智能合約被稱為鏈碼(Chaincode),實質(zhì)上是控制區(qū)塊鏈網(wǎng)絡(luò)中的不同實體或相關(guān)方如何相互交互或交易的業(yè)務(wù)邏輯。簡言之,鏈代碼將業(yè)務(wù)網(wǎng)絡(luò)交易封裝在代碼中??梢哉{(diào)用鏈代碼來設(shè)置和獲取賬本或 world state。

超級賬本可以使用go、java或者nodejs來開發(fā)智能合約,不過支持最好的還是go語言。下面是使用go開發(fā)的一個簡單地fabric智能合約:

package main
 
import "fmt"
import "github.com/hyperledger/fabric/core/chaincode/shim"
 
type SampleChaincode struct {
}
 
func (t *SampleChaincode) Init(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {
    return nil, nil
}
 
func (t *SampleChaincode) Query(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {
    return nil, nil
}
 
func (t *SampleChaincode) Invoke(stub shim.ChaincodeStubInterface, function string, args []string) ([]byte, error) {
    return nil, nil
}
 
func main() {
    err := shim.Start(new(SampleChaincode))
    if err != nil {
        fmt.Println("Could not start SampleChaincode")
    } else {
        fmt.Println("SampleChaincode successfully started")
    }
 
}

frabric的智能合約可以使用一個go中的類實現(xiàn),它必須要實現(xiàn)約定的借口Init和Query。

Init 方法 在鏈代碼首次部署到區(qū)塊鏈網(wǎng)絡(luò)時調(diào)用,將由部署自己的鏈代碼實例的每個對等節(jié)點執(zhí)行。而只要在區(qū)塊鏈狀態(tài)上執(zhí)行任何讀取/獲取/查詢操作,就會調(diào)用 Query 方法。

訪問這里了解更多關(guān)于fabric的智能合約開發(fā)的相關(guān)信息:Fabric Chaincode

以太坊

以太坊是第一個提供完善的智能合約開發(fā)框架的區(qū)塊鏈,因此它也被稱為區(qū)塊鏈2.0的代表。事實上,目前絕大多數(shù)的區(qū)塊鏈應(yīng)用,包括ICO代幣發(fā)行,都是基于以太坊來實現(xiàn)的智能合約應(yīng)用。

以太坊有四種專用語言可以用來開發(fā)智能合約:

  • Solidity ,受JavaScript 啟發(fā)

  • Serpent ,受Python啟發(fā)

  • Mutan,受Go 啟發(fā)

  • LLL 受Lisp 啟發(fā)

這四種語言都是為面向合約編程而從底層開始設(shè)計的語言,但從目前的發(fā)展來看,Solidity已經(jīng)稱為以太坊智能合約開發(fā)當(dāng)之無愧的首選語言。

Solidity的語法類似于JavaScript,這降低了學(xué)習(xí)門檻,易于被掌握和使用,因為JavaScript是Web開發(fā)者的常用語言。例如,下面是一個使用Solidity開發(fā)的簡單但完整的智能合約:

pragma solidity ^0.4.21;

contract HelloWorld {
    string hello = "Hello World!!!";
    event say(string _value);
    
    function sayHello() public {
        emit say(hello);
    }   
}

合約代碼第一行指定該合約使用的Solidity版本為0.4.21,不支持高于0.4.21版本的Solidity特性。

在Solidity中,contract關(guān)鍵字包含的代碼段即表示一個智能合約,它擁有一些成員變量和函數(shù),看起來非常類似于傳統(tǒng)的面向?qū)ο箝_發(fā)中的類。

以上就是關(guān)于“以太坊智能合約開發(fā)語言怎么選擇”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:以太坊智能合約開發(fā)語言怎么選擇
本文路徑:http://weahome.cn/article/ijspop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部