首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ethereum为分布式云计算提供资金?

使用ethereum为分布式云计算提供资金?
EN

Ethereum用户
提问于 2017-09-22 08:30:41
回答 1查看 44关注 0票数 0

好的,假设有一个Web,它提供某种服务/计算,并按给定的成本计算。这个API本身依赖于调用另一个也有代价的API。

是否有可能以这样的方式设置付款:第一个API获得ether合同,一旦它成功交付结果,它将被授予一定数量的以太。而第一个API与第二个API创建了一个契约,在第一个合同被支付时,它将自动支付第二个API获得的资金的百分比/固定部分?

如果有可能的话,交易费用到底有多高才能证明是合理的呢?目前的交易费用似乎高得令人望而却步(如果我理解正确的话,是0.21美元)。是否有大幅降低交易费用的计划,还是Ethereum合同不应该用于低价值交易?

EN

回答 1

Ethereum用户

发布于 2017-09-22 10:08:59

一般来说,您可以根据某些结果授予服务所有者( API也不例外)。但是,请记住,不能从合同中检查成功条件,因为合同只能检查区块链中发生的事情,不能收集任何类型的外部数据。

这是块链设计的结果,所有节点都执行相同的计算。想象一下,如果所有节点都连接到一个web服务来评估某种离链状态。这是不可能的。因此,要完成解决方案的设计,您可能需要在链上和链外之间架起一座桥梁。这通常以甲骨文的形式出现,甲骨文是一种软件,可以从网络上读取数据,然后产生有效的交易来解锁合同中的金钱。甲骨文也可以是人类。Oraclize.it是一个软件,也就是所谓的可证明的、诚实的预言实现。

关于问题的第二部分,关于如何与第二个API提供者分割报酬,这是相当简单的,合同可以用很少的指令来管理。我在这里插入了一些代码,但认为它更多的是伪代码而不是实际代码。

代码语言:javascript
复制
contract Reward{
address public api1=0x123;
address public api2=0x124;

bool goalAchieved=false;
address oracle=0x234;

function unlock (){
    //only oracle can unlock
    if (msg.sender !=oracle) throw;
    goalAchieved = true;
}


function () payable {
    //this receives funds from a customer
}

function redeem(){
    //only api1 can redeem
    if (msg.sender != api1)throw;
    if (!goalAchieved)throw;

    api1.send(this.balance / 2);
    api2.send(this.balance / 2);
}

}

关于事务费,GAS需要我的成本超过您的API调用的值。但这确实取决于您的特定用例。每一个API调用的事务都可能会导致过度,请考虑出售N个调用的配额。

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

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

复制
相关文章

相似问题

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