2 PART TWO 3 PART TWO P 2

  • Slides: 45
Download presentation

2 PART TWO 共识机制

2 PART TWO 共识机制

3 PART TWO P 2 P网络

3 PART TWO P 2 P网络

P 2 P网络的基本组成 Blu P P/I TC IP P/ Linux TC oth eto TCP/IP

P 2 P网络的基本组成 Blu P P/I TC IP P/ Linux TC oth eto TCP/IP P 2021/9/8 HTT XP

Napster原理 insert(X, 1. 2. 3. 4). . . Publish I have X! 1. 2.

Napster原理 insert(X, 1. 2. 3. 4). . . Publish I have X! 1. 2. 3. 4

Napster原理 4. 3. 2. 1 Fetch search(A) --> 4. 3. 2. 1 Query Reply

Napster原理 4. 3. 2. 1 Fetch search(A) --> 4. 3. 2. 1 Query Reply Where is file A? 1. 2. 3. 4

Gnutella原理 I have file A. Reply Query Where is file A?

Gnutella原理 I have file A. Reply Query Where is file A?

Ka. Za. A原理 insert(X, 123. 2. 21. 23). . . Publish I have X!

Ka. Za. A原理 insert(X, 123. 2. 21. 23). . . Publish I have X! 123. 2. 21. 23

Ka. Za. A原理 search(A) --> 123. 2. 22. 50 Query Replies search(A) --> 123.

Ka. Za. A原理 search(A) --> 123. 2. 22. 50 Query Replies search(A) --> 123. 2. 0. 18 Where is file A? 123. 2. 0. 18

Bit. Torrent原理 Tracker A D B C

Bit. Torrent原理 Tracker A D B C

Bit. Torrent原理 A D B C

Bit. Torrent原理 A D B C

4 PART FOUR 智能合约

4 PART FOUR 智能合约

编译合约 智能合约 hello word contract greeter is mortal { //继承mortal string greeting; function greeter(string

编译合约 智能合约 hello word contract greeter is mortal { //继承mortal string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } } var greeter. Source = ' contract greeter is mortal {string greeting; …. . return greeting; }}' var greeter. Compiled = web 3. eth. compile. solidity(greeter. Source) 备注:本节中的所有例子以在Go语言的客户端geth中的操作为例

创建合约 var greeter. Contract = web 3. eth. contract(greeter. Compiled["<stdin>: greeter"]. info. abi. Definition);

创建合约 var greeter. Contract = web 3. eth. contract(greeter. Compiled["<stdin>: greeter"]. info. abi. Definition); abi. Definition是合约的接口说明 老版本中是 greeter. Compiled. greeter. info. abi. Definition 新版本(geth-1. 5. 9)中是 greeter. Compiled["<stdin>: greeter"]. info. abi. Definition 备注:本节中的所有例子以在Go语 言的客户端geth中的操作为例

部署合约的时候,需要支付费用,需要用户输入密码,先执行 personal. unlock. Account(eth. accounts[0]); var greeter = greeter. Contract. new(_greeting, { from: eth.

部署合约的时候,需要支付费用,需要用户输入密码,先执行 personal. unlock. Account(eth. accounts[0]); var greeter = greeter. Contract. new(_greeting, { from: eth. accounts[0], data: greeter. Compiled["<stdin>: greeter"]. code, gas: 1000000 }, function(e, contract){ if(!e) { if(!contract. address) { console. log("Contract transaction send: Transaction. Hash: " + contract. transaction. Hash + " waiting to be mined. . . "); } else { console. log("Contract mined! Address: " + contract. address); console. log(contract); } }}) 日 志

其它的机器调用合约 其它的机器上没有greeter对象,需要根据合约的地址和abi. Definition来创建,然后调用。 var greeter 2 = eth. contract([{constant: false, inputs: [], name: ‘kill’,

其它的机器调用合约 其它的机器上没有greeter对象,需要根据合约的地址和abi. Definition来创建,然后调用。 var greeter 2 = eth. contract([{constant: false, inputs: [], name: ‘kill’, outputs: [], type: ‘function’}, {constant: true, inputs: [], name: ‘gre et’, outputs: [{name: ‘’, type: ‘string’}], type: ‘function’}, {inputs: [{name: ‘_greeting’, type: ‘string’}], type: 'constructor '}]). at(‘ 0 xcde 7 cfdf 234 dfa 63 ba 4 d 7 c 273 a’); greeter 2. greet();

ÐAPPS(去中心化的应用) http: //dapps. ethercasts. com/上面已经有300多个ÐAPPS

ÐAPPS(去中心化的应用) http: //dapps. ethercasts. com/上面已经有300多个ÐAPPS

ÐAPPS

ÐAPPS

5 PART FIVE 区块链应用

5 PART FIVE 区块链应用

Thank you for your attention! Any questions?

Thank you for your attention! Any questions?