从现在起,每当我试图通过调用契约的任何方法来执行任何操作时,它都会解锁帐户。现在,用于执行交易的帐户必须支付进行交易的代价。
所以在一个生活环境中,想要了解它是如何工作的。
假设有一个图书借阅DApp,其中一个用户可以通过调用DApp方法借出书籍。希望DApp的web接口能够托管在服务器上,合同将部署在块链上。契约实例被初始化,地址在DApp内部使用。
我们知道,块链节点的主机名和端口是在web应用程序中配置的。
问题:
我肯定漏掉了一些很明显的东西。
发布于 2017-03-22 18:14:20
Q1:您可以配置通用web接口,以便在本地主机上查找RPC :8545(默认)和/或检查浏览器(isMist?)考虑在前端使用特殊功能。
Q2:你可以审问钱包:
var account;
web3.eth.getAccounts(function(err, accounts) {
var account = accounts[0];
});..。甚至让用户从可用帐户中选择。
Q3:大多数(D)应用程序都是从后台系统读取的,而不是写的。您可以使用关键字constant“硬连线”只读契约函数,表示该函数不会更改合同状态。或者,您可以通过在.call()中添加web3,将任何契约调用转换为只读的“试运行”。这意味着您的用户可以浏览Dapp,但是钱包帐户必须被解锁才能达到sendTransaction(),即做一些改变状态的事情。
https://ethereum.stackexchange.com/questions/13401
复制相似问题