在确定部署智能合约前,需要定义业务逻辑和需求,即相关各方定义智能合约的具体业务条件,由开发人员作为最后的接收方。开发人员再来根据业务逻辑设计合约的体系结构,包含设计智能合约中数据的结构,以及合约中数据状态改变与之相关的方法代码。
智能合约可以被看作是自动执行的法律合同,因为它们是由计算机代码实现的,所以不存在人为操作的可能性。这使得智能合约具有可信度和公平性的优势,同时还能够极大地简化交易流程。
智能合约通常运行在区块链网络上,这意味着它们的执行是透明的,不可更改的,并且可以被任何人查询。这使得智能合约非常适合用于执行重要的、复杂的或需要可信度的交易。
智能合约本身无法获取有关“现实世界”事件的信息,因为它们无法从链下来源检索数据。这意味着它们无法对现实世界中的事件作出响应。这是设计使然。因为依赖外部信息可能会影响共识,而共识对安全性和去中心化而言十分重要。
然而,对于区块链应用来说,能够使用链下数据非常重要。解决方案是预言机,它们是将链下数据引入并使其可供智能合约使用的工具。
// 获取solidity的接口和字节码
const abi = fs.readFileSync("./SimpleStorage_sol_SimpleStorage.abi", "utf8"); const binary = fs.readFileSync( "./SimpleStorage_sol_SimpleStorage.bin", "utf8" );