Remix部署以太坊智能合约至远程节点

  1. 编写 solidity 代码,选择 Web3 Provider

![](Remix部署以太坊智能合约至远程节点/remix remote deploy 1.png)

  1. Yes

![](Remix部署以太坊智能合约至远程节点/remix remote deploy 2.png)

  1. 节点IP地址

![](Remix部署以太坊智能合约至远程节点/remix remote deploy 3.png)

  1. 点击 Create,部署代码。查看底部 log 成功与否,这里需要花费几秒钟的时间。成功后 copy 合约地址。

![](Remix部署以太坊智能合约至远程节点/remix remote deploy 4.png)

  1. 本地查看调试网页。

![](Remix部署以太坊智能合约至远程节点/remix remote deploy 5.png)

示例源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>

<link rel="stylesheet" type="text/css" href="main.css">

<script src="./node_modules/web3/dist/web3.min.js"></script>

</head>
<body>
<div class="container">
<h1>Coursetro Instructor</h1>

<h2 id="instructor"></h2>

<img id="loader" src="https://loading.io/spinners/double-ring/lg.double-ring-spinner.gif">
<label for="name" class="col-lg-2 control-label">Instructor Name</label>
<input id="name" type="text">

<label for="name" class="col-lg-2 control-label">Instructor Age</label>
<input id="age" type="text">
<button id="button">Update Instructor</button>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>

<script>
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider("http://47.92.53.158:8545"));
}
web3.eth.defaultAccount = web3.eth.accounts[0];

var CoursetroContract = web3.eth.contract([{"constant":false,"inputs":[{"name":"_fName","type":"string"},{"name":"_age","type":"uint256"}],"name":"setInstructor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInstructor","outputs":[{"name":"","type":"string"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"age","type":"uint256"}],"name":"Instructor","type":"event"}]);

var Coursetro = CoursetroContract.at('0x6f57ae4ea0bb4a6bc3c153ced8202217d63d5fca');
console.log(Coursetro);

var instructorEvent = Coursetro.Instructor();
instructorEvent.watch(function(error, result){
if (!error)
{
$("#loader").hide();
$("#instructor").html(result.args.name + ' (' + result.args.age + ' years old)');
} else {
$("#loader").hide();
console.log(error);
}
});
$("#button").click(function() {
Coursetro.setInstructor($("#name").val(), $("#age").val());
$("#loader").show();
});

</script>

</body>
</html>