请问智能合约为什么要写业务逻辑?

是的,pang 友,这论坛实在太冷了。。

我觉得这问题其实并不简单啊。其实分很多层面来说。

比如:1. demo 的合约里要放逻辑也不并不是暗示这是最好的架构,只是示范而已。
2. 合约要有逻辑我感觉不仅有你说的那一层,就是不放在合约里面也会被绕过,即部署后端会是无用功(其实用户不会有这个意识,但懂工程的人确实会这么绕过)(而且,把逻辑放在合约里有另一个问题,就是别人会抄),还有另一个角度,就是区块链本身是造就计算过程本身的可信性,为了造就这种可信性,只能让这段代码在全球各个计算机上都跑一遍。把逻辑放进合约并不是为了效率,而是为了计算过程的可信性,没有这一点,用不用区块链都没啥区别了。

selfdestruct () 什么时候用呢?

selfdestruct() 是合约的自毁函数。用了之后这个账户就不再具有合约的功能,从功能上来说,相当于你把这个合约从链上移除了,给这个地址发交易它不会再有反应。

但从数据上来说,就像你最后一句说的:Full Node 不会把每一个块时候的状态数据都保留下来,所以自毁之后产生的状态数据就不会有该合约的代码了(当然,因为全节点要保持链数据,所以一开始构造合约的那笔交易中包含的字节码还是会以链数据的形式在全节点中保留下来);但 Archarive 节点会保密每一个块时候的状态数据,而在合约自毁之前的状态数据中有该合约的代码,所以会一直保留下去。

Parity 可以从fast 模式切换到 archive模式吗?

archive 模式跟所有模式都不一样,它不仅会同步链,还会保存每个块时候的状态数据。所以,必须善意提醒一句,请保证你的硬盘有那么大。
fast 模式同步出来的也是全节点,也就是有所谓的区块链数据,但不会有全部的状态数据,估计是同步到最新区块后开始同步状态数据。。

估计两个是不能这么切换的。

可以把问题发到论坛,问问大家。

以太坊确认次数问题

@912036588 对,不同的钱包可能为了用户体验直接在后台做了要求,所以显示的余额是经过确认次数的余额。但还是那句话,需要多少次确认,有时候完全看你自己的需求。你(跟你的交易对手)觉得够了就是够了,当然不能太少就是了。

以太坊确认次数问题

大家默认以太坊需要 15 次到 30 次的确认。也就是交易上链后 3 分 45 秒到 7 分 30 秒左右的确认时间。看你自己对交易确定性的要求有多高了。

API 的话不太清楚,要等懂行的论坛网友了

区块链实验

@anseven 唉。楼主,实话实说,您的问题在于您看的资料太少了,以至于我无法确定在某些要点上您理解了没有。

区块链能存储交易以外的信息吗?纳税信息可以吗,医疗信息可以吗?

上面我已经回答过了,这完全取决于您的问题中交易(transaction)的性质。在现在主流的区块链比如以太坊中,交易的最基本形式是从 A 地址发送非负数额的 ETH 到 B 地址中,A B 可以为同一个地址。与此同时,在这样一笔交易中可以附带任意信息,你写什么都可以。详细内容可以看这篇文章。。你想,既然附加任意信息都可以,那纳税信息可不可以,医疗信息可不可以?当然可以啊,问题是,这些数据上链的过程不可能脱离“交易”这个概念,因为“交易”其实是“合法操作”的意思,你都不发交易(不操作),怎么能让这个数据库起相应变化呢?(因此我也可以说,你其实不能存储交易以外的信息,因为交易以外根本没有别的信息,只不过这里的交易是合法操作的意思,不是资产转移的意思)。
再进一步地说,交易的信息如何解读,不同的区块链可以有不同的定义。所以如果你要做一条专门记录纳税信息的区块链,你需要了解的内容其实不是单区块链这个范畴的知识所能涵盖的,你需要的是一个很完整的解决方案,比如,谁来发送合法操作?(你的区块链要不要限制准入,如果不限制准入,怎么保证发出的合法操作都跟税务有关?)谁来验证这些操作的合法性?(谁来确保上链?)

您问我钢铁能不能造汽车,按实情和逻辑我只能说“能”,但这并不意味着我有完整的解决方案告诉你怎么造;您问我能不能存储医疗信息,它既然可以存储任意信息,我当然得说“能”,但这并不意味着我们已经有成套的解决方案并且这套方案已经足够好了。。之所以出现这种情况,是因为您既不太懂钢铁,也不太懂汽车,所以才会假设两者之间的关联是很简单的。

怎么确定共识机制的实际效果?

我想请问您了,您对共识机制的理解是什么?您知道现在大家在尝试的有几种共识机制?您觉得共识机制是用来解决什么问题的呢?如果您不知道这是用来解决什么问题的,您又怎么知道怎么评价它的效率呢?

您要改进共识算法,最终极的办法当然是让它在生产环境中做压力测试(就跟您说的做实验是一个意思),但这个过程肯定还是要理论指导的,换句话来说,理论上都说明不了你的算法更优的条件,去做实验意思也就不大了。。

你说要用做实验的办法来验证,我难道还能说这是错的吗,实验方法肯定有效啊;但是你有没有完成这个实验的基础?换句话来说,如果你既不懂编程,也不理解共识机制要解决什么问题,根本没有思考相关问题的基础知识,你觉得我们是告诉你先看文献好呢,还是给你瞎指一条路好呢?

你既然要做研究,就不能指望已经有标准答案了一切都放在那里等着你了。你能做的只有不断学习和思考。