国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

智能合約設(shè)計(jì)模式--COP

shadowbook / 2423人閱讀

摘要:這樣的模式規(guī)范能保證合約的安全。函數(shù)主體沒有條件判斷例子改進(jìn)后的風(fēng)格擴(kuò)展閱讀

Design by contract

solidity這門語言設(shè)計(jì)思路是什么?
什么是COP?

COP

面向條件的編程(COP)是面向合約編程的一個子域,作為一種面向函數(shù)和命令式編程的混合模式。COP解決了這個問題,通過需要程序員顯示地枚舉所有的條件。邏輯變得扁平,沒有條件的狀態(tài)變化。條件片段可以被正確的文檔化,復(fù)用,可以根據(jù)需求和實(shí)現(xiàn)來推斷。重要的是,COP在編程中把預(yù)先條件當(dāng)作為一等公民。這樣的模式規(guī)范能保證合約的安全。

post-condition
contract PostCheck {

    uint public data = 0;

    // Check that the "data" field was set to the value of "_data".
    modifier data_is_valid(uint _data) {
        _
        if (_data != data)
            throw;
    }

    function setData(uint _data) data_is_valid(_data) {
        data = _data;
    }

}
pre- and post-conditions

"_"

contract PrePostCheck {

    uint public data = 0;

    // Check that the input "_data" value is not the same as the value
    // already stored in "data".
    modifier data_is_valid(uint _data) {
        if (_data == data)
           throw;
        _
    }

    // Check that the "data" field was set to the value of "_data".
    modifier data_was_updated(uint _data) {
        _
        if (_data != data)
            throw;
    }

    function setData(uint _data) data_is_valid(_data) data_was_updated(_data) {
        data = _data;
    }

}
FEATURES

函數(shù)主體沒有條件判斷

例子:

contract Token {
    // The balance of everyone
    mapping (address => uint) public balances;
    // Constructor - we"re a millionaire!
    function Token() {
        balances[msg.sender] = 1000000;
    }
    // Transfer `_amount` tokens of ours to `_dest`.
    function transfer(uint _amount, address _dest) {
        balances[msg.sender] -= _amount;
        balances[_dest] += _amount;
    }
}

改進(jìn)后:

function transfer(uint _amount, address _dest) {
    if (balances[msg.sender] < _amount)
        return;
    balances[msg.sender] -= _amount;
    balances[_dest] += _amount;
}

COP的風(fēng)格

modifier only_with_at_least(uint x) {
    if (balances[msg.sender] >= x) _;
}

function transfer(uint _amount, address _dest)
only_with_at_least(_amount) {
    balances[msg.sender] -= _amount;
    balances[_dest] += _amount;
}
擴(kuò)展閱讀:

Condition-Orientated Programming

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24202.html

相關(guān)文章

  • 智能合約實(shí)施指南

    摘要:在協(xié)議結(jié)束時,智能合約被視為已履行并仍存儲在區(qū)塊鏈網(wǎng)絡(luò)中。這組條件和事件代表了最基本的一次性智能合約。智能合約用例智能合約越來越受歡迎,并已在各種區(qū)塊鏈項(xiàng)目中實(shí)施。 與區(qū)塊鏈技術(shù)一樣,智能合約在商業(yè)領(lǐng)域也非常有價值。 為了讓我們的讀者徹底了解智能合約是什么以及它們?nèi)绾斡绊懍F(xiàn)代商業(yè)的交易方式,我們準(zhǔn)備了本指南。 集中商業(yè)模式正在給去中心化的模式讓路 傳統(tǒng)的商業(yè)關(guān)系模型都是集中式的,始終存...

    meteor199 評論0 收藏0
  • 智能合約實(shí)施指南

    摘要:在協(xié)議結(jié)束時,智能合約被視為已履行并仍存儲在區(qū)塊鏈網(wǎng)絡(luò)中。這組條件和事件代表了最基本的一次性智能合約。智能合約用例智能合約越來越受歡迎,并已在各種區(qū)塊鏈項(xiàng)目中實(shí)施。 與區(qū)塊鏈技術(shù)一樣,智能合約在商業(yè)領(lǐng)域也非常有價值。 為了讓我們的讀者徹底了解智能合約是什么以及它們?nèi)绾斡绊懍F(xiàn)代商業(yè)的交易方式,我們準(zhǔn)備了本指南。 集中商業(yè)模式正在給去中心化的模式讓路 傳統(tǒng)的商業(yè)關(guān)系模型都是集中式的,始終存...

    PumpkinDylan 評論0 收藏0
  • 智能合約實(shí)施指南

    摘要:在協(xié)議結(jié)束時,智能合約被視為已履行并仍存儲在區(qū)塊鏈網(wǎng)絡(luò)中。這組條件和事件代表了最基本的一次性智能合約。智能合約用例智能合約越來越受歡迎,并已在各種區(qū)塊鏈項(xiàng)目中實(shí)施。 與區(qū)塊鏈技術(shù)一樣,智能合約在商業(yè)領(lǐng)域也非常有價值。 為了讓我們的讀者徹底了解智能合約是什么以及它們?nèi)绾斡绊懍F(xiàn)代商業(yè)的交易方式,我們準(zhǔn)備了本指南。 集中商業(yè)模式正在給去中心化的模式讓路 傳統(tǒng)的商業(yè)關(guān)系模型都是集中式的,始終存...

    oogh 評論0 收藏0
  • 智能合約實(shí)施指南

    摘要:在協(xié)議結(jié)束時,智能合約被視為已履行并仍存儲在區(qū)塊鏈網(wǎng)絡(luò)中。這組條件和事件代表了最基本的一次性智能合約。智能合約用例智能合約越來越受歡迎,并已在各種區(qū)塊鏈項(xiàng)目中實(shí)施。 與區(qū)塊鏈技術(shù)一樣,智能合約在商業(yè)領(lǐng)域也非常有價值。 為了讓我們的讀者徹底了解智能合約是什么以及它們?nèi)绾斡绊懍F(xiàn)代商業(yè)的交易方式,我們準(zhǔn)備了本指南。 集中商業(yè)模式正在給去中心化的模式讓路 傳統(tǒng)的商業(yè)關(guān)系模型都是集中式的,始終存...

    yzzz 評論0 收藏0
  • 區(qū)塊鏈學(xué)習(xí)之以太坊(七)

    摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營了一個公開的區(qū)塊鏈平臺以太坊網(wǎng)絡(luò)。主要特點(diǎn)以太坊區(qū)塊鏈底層也是一個類似比特幣網(wǎng)絡(luò)的網(wǎng)絡(luò)平臺,智能合約運(yùn)行在網(wǎng)絡(luò)中的以太坊虛擬機(jī)里。以太坊采用交易作為執(zhí)行操作的最小單位。 以太坊將比特幣針對數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個智能合約的平臺,該平臺支持...

    xiongzenghui 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<