我是一个初学者。学习了几天 ETH Truffle。
官方 DEMO:
https://solidity-cn.readthedocs.io/zh/develop/solidity-by-example.html里面的投票 DEMO 和盲拍 DEMO,都将业务逻辑写在了里面。
我就产生了一个疑问,为何要将业务逻辑写在里面呢?(业务逻辑不包含:msg.sender 是否有足够的钱、发送者是否有足够的钱、发送者是否是接收者等这些基础判定)
为什么不能是简单的接受、发送、判定呢?
为了实现一套 DApp,中间件或者说后端是少不了的,由 PHP、JAVA、GO、Nodejs 实现。那为什么业务逻辑不放在这些后端程序里判断呢?这个疑惑主要来源于当我看到官方投票 DEMO 代码里,将投票人(多)的枚举、记录、计算、判断都放在了代码里,最终计算出谁获得的投票最多然后返回。同样的,在盲拍里也有这个疑惑。
是为了模拟真实吗?
是因为合约内容(即合约代码)可以被看见吗?
我隐约有个想法,是为了解决不同的中间件(或者说后端)在开发时缺少对关键交易的统一性吗?