首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个平台来托管类似于AWS的API,只是分散的?

是否有一个平台来托管类似于AWS的API,只是分散的?
EN

Ethereum用户
提问于 2017-06-06 14:42:54
回答 1查看 735关注 0票数 2

我正在寻找一个平台,使之能够在没有云服务的情况下为Dapp放置无服务器代码--这样应用程序就可以保持完全的集中化。

EN

回答 1

Ethereum用户

发布于 2017-06-06 17:56:51

你的问题不太清楚。根据定义,任何Dapp都是分散的(分散应用程序)。它由一个或多个契约组成,它们位于Ethereum块链上,可以通过Mist等启用web3的浏览器进行交互。作为最终用户,您的客户端通过web3.js库直接连接到您的Ethereum契约(S),而后者又充当了与Ethereum节点交互的JSON-RPC方法的接口。

就AWS Lambda而言,它的用途与Ethereum完全不同。当您在EVM ()中与Ethereum中的合同交谈时,其他节点唯一关心的工作就是验证合同状态中的更改。这意味着,如果运行一个添加1+1并返回它的函数,则不会更改状态。因此,加法在您的机器上运行客户端。但是,如果要将该值赋值为值为5的无符号32位整数,则会更改状态,该状态必须由网络验证,因此需要用gas作为财务奖励。请考虑以下示例:

代码语言:javascript
复制
Contract myContract {

uint32 i = 5;

    function CalculateSum(){

        // This calcuation is run by the client.
        // j has local scope because it is in the function,
        // meaning assigning to j does not change the contract state, 
        // and therefore this calculation costs no gas:

        uint32 j = 1 + 1;

        // This calculation is also run by the client, 
        // but because i is scoped to the contract
        // by assigning it the client-calculated value of 2,
        // we require the network to verify the change in state.
        // This costs gas:

        i = 1 + 1;

    }
}

另外,如果您正在寻找一个分散的API,如果一个API只公开数据,那么您可以在契约状态中存储少量的数据,并具有人们可以通过web.js库和JSON-RPC方法调用的函数。然后,您可以包含一个用于更新/设置数据的函数,但这需要某种程度的集中化,因为单个或受限的个人组将设置数据。您可以使用oracles来侦听区块链上的事件并对其作出反应,但您仍然只需在oracle硬件脱离链上运行计算。

最后,如果有人连接到您的API,他们很可能信任您公开的数据。如果这是一个不信任数据的问题,那么除了物理地试图确保数据是有效的(因为您正在处理集中式端点)之外,您没有其他选择。例如,英特尔试图实现一个区块链,以跟踪鱼类的供应链,并将区块链与IOT结合起来:

http://www.coindesk.com/intel-demos-seafood-tracking-sawtooth-lake-blockchain/

但是你仍然必须相信IOT设备所报告的数据的真实性和准确性,这需要一个离链解决方案。

基本上,以太不是为了你想要做的事。它不是像Lambda那样的云计算平台。它也不适用于分散存储(请参阅IPFS)。最后,在Ethereum上构建API是没有意义的,因为要这样做,您不可避免地只是从中央或多个集中源公开数据。Ethereum是一个执行合同和条件并验证对其状态的修改的平台。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/17321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档