.. _Accessing Contracts and Transactions: ******************************************************************************** 璁块棶鍚堢害鍜屼氦鏄� ******************************************************************************** RPC ================================================================================ 鍦ㄥ墠闈㈢殑绔犺妭涓紝鎴戜滑浠嬬粛浜嗗悎绾︾殑缂栧啓銆侀儴缃插拰浜や簰銆傜幇鍦ㄥ埌浜嗘繁鍏ヤ簡瑙d互澶潑缃戠粶鍜屾櫤鑳藉悎绾︿氦浜掔粏鑺傚埌鏃堕棿銆� 浠ュお鍧婅妭鐐归兘鎻愪緵 `RPC <https://wikipedia.org/wiki/Remote_procedure_call>`_ 鎺ュ彛锛岃繖浜涙帴鍙e悜脨app鎻愪緵璁块棶浠ュお鍧婂尯鍧楅摼鍜岃妭鐐规敮鎸佺殑鍔熻兘锛屼緥濡傜紪璇戞櫤鑳藉悎绾︿唬鐮併€傚畠浣跨敤 `JSON-RPC 2.0 <http://www.jsonrpc.org/specification>`_ 瑙勮寖(涓嶆敮鎸侀€氱煡鎴栧彉閲忓懡鍚�)鐨勫瓙闆嗕綔涓哄簭鍒楀寲鍗忚锛屽苟涓旀敮鎸丠TTP鍜孖PC銆� 濡傛灉浣犲缁嗚妭涓嶅叧蹇冧粎浠呭彧鍏冲績javascript搴撶殑浣跨敤锛岄偅涔堜綘鍙互璺宠繃涓嬮潰鐨勭珷鑺傦紝鐩存帴闃呰锛� :ref:`Using Web3 <using_web3.js>` 銆� 鍗忚 ================================================================================ RPC鎺ュ彛浣跨敤浜嗕竴浜涗笉灞炰簬JSON-RPC 2.0瑙勮寖鐨勫崗璁€� * 鏁板瓧浣跨敤鍗佸叚杩涘埗缂栫爜锛岃繖涓喅瀹氭槸鍥犱负涓€浜涜瑷€涓嶆敮鎸佹垨鏈夐檺鏀寔瓒呭ぇ鏁板瓧绫诲瀷銆傞槻姝㈣繖绉嶇被鍨嬮敊璇殑鍙戠敓锛屾暟鍊艰缂栫爜涓哄崄鍏繘鍒讹紝骞朵笖浜ょ敱寮€鍙戣€呰繘琛屽Ε鍠勫鐞嗭紝璇峰弬鑰僿iki涓婄殑绀轰緥 `hex encoding section <https://github.com/ethereum/wiki/wiki/JSON-RPC#output-hex-values>`_ 銆� * 榛樿鐨勫尯鍧楃紪鍙凤紝涓€浜汻PC鏂规硶鎺ュ彈鍖哄潡缂栧彿锛屽湪涓€浜涙儏鍐典笅锛屼笉鑳借兘鑾峰彇鍖哄潡缂栧彿鎴栬€呴潪甯镐笉鏂逛究鑾峰緱鍖哄潡缂栧彿銆傚湪杩欑鎯呭喌涓嬶紝榛樿鍖哄潡缂栧彿鍙互鏄繖浜涘瓧绗︿覆涓殑鍏朵腑涓€涓� ["earliest", "latest", "pending"] 銆傛煡鐪� `wiki page <https://github.com/ethereum/wiki/wiki/JSON-RPC#the-default-block-parameter>`_ 鏉ヨ幏鍙朢PC鏂规硶鍙敤鐨勯粯璁ゅ尯鍧楀弬鏁板垪琛ㄣ€� 閮ㄧ讲鍚堢害 ================================================================================ 鎴戜滑灏嗛€氳繃涓嶅悓鐨勬楠わ紝浠呬娇鐢≧PC鎺ュ彛鏉ラ儴缃插涓嬬殑鍚堢害銆� .. code:: js contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } } 闇€瑕佸仛鐨勭涓€浠朵簨锛屽氨鏄‘淇滺TTP RPC鎺ュ彛琚惎鐢� 锛岃繖鎰忓懗鐫€鎴戜滑闇€瑕佸湪鍚姩鏃剁粰geth鎻愪緵 ``--rpc`` 鏍囪瘑锛岀粰eth鎻愪緵 ``-j`` 鏍囪瘑銆傚湪杩欎釜渚嬪瓙涓垜浠娇鐢ㄤ竴涓猤eth绉佹湁寮€鍙戣妭鐐癸紝杩欐牱鐨勮瘽鎴戜滑灏变笉闇€瑕佷娇鐢ㄦ寮忕綉缁滀笂鐨勪互澶竵銆� .. code:: bash > geth --rpc --dev --mine --minerthreads 1 --unlock 0 console 2>>geth.log 鎴戜滑鍦ㄨ繖涓鍙e惎鐢℉TTP RPC鎺ュ彛锛� ``http://localhost:8545``銆� .. note:: geth鏀寔 `CORS(璺ㄥ煙璧勬簮鍏变韩) <https://en.wikipedia.org/wiki/Cross-origin_resource_sharing>`_锛屾煡鐪嬪弬鏁� ``--rpccorsdomain`` 鏉ヨ幏鍙栨洿澶氫俊鎭€� 鎴戜滑鍙互閫氳繃 `curl <https://curl.haxx.se/download.html>`_ 鑾峰彇璐︽埛鍦板潃鍜屼綑棰濇潵楠岃瘉鎺ュ彛鏄惁宸茬粡杩愯锛岃娉ㄦ剰涓嬮潰渚嬪瓙涓殑鏁版嵁鍜屼綘鏈湴鐨勮妭鐐逛笉涓€鏍凤紝濡傛灉浣犳兂灏濊瘯濡備笅鐨勫懡浠よ淇敼璇锋眰鐨勫弬鏁般€� .. code:: bash > curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' localhost:8545 {"id":1,"jsonrpc":"2.0","result":["0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a"]} > curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "latest"], "id":2}' localhost:8545 {"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"} 杩樿寰楁垜浠墠闈㈣杩囨暟瀛楅兘鏄互鍗佸叚杩涘埗缂栫爜鐨勫悧锛熷湪杩欎釜鎯呭喌涓处鎴蜂綑棰濊繑鍥炰互wei涓哄崟浣嶇殑鍗佸叚杩涘埗缂栫爜瀛楃涓诧紝濡傛灉鎴戜滑鎯冲緱鍒颁互ether涓哄崟浣嶇殑鏁板€兼垜浠彲浠ラ€氳繃鍛戒护鍙颁娇鐢╳eb3銆� .. code:: js > web3.fromWei("0x1639e49bba16280000", "ether") "410" 鐜板湪鎴戜滑鍦ㄧ鏈夊紑鍙戦摼涓婃湁浜嗕竴浜涗互澶竵锛屽彲浠ヨ繘琛屽悎绾︾殑閮ㄧ讲浜嗭紝绗竴姝ラ渶瑕侀獙璇乻olidity缂栬瘧鍣ㄥ浜庡彲鐢ㄧ姸鎬侊紝鎴戜滑鍙互閫氳繃 ``eth_getCompilers`` 杩欎釜RPC鏂规硶鏉ヨ幏鍙栧綋鍓嶅彲鐢ㄧ殑缂栬瘧鍣ㄣ€� .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_getCompilers", "id": 3}' localhost:8545 {"id":3,"jsonrpc":"2.0","result":["Solidity"]} 鎴戜滑鐪嬪埌solidity缂栬瘧鍣ㄥ彲鐢紝濡傛灉涓嶅彲鐢ㄨ鍙傝€� `鐩稿叧鏂囨。 <http://solidity.readthedocs.org/en/latest/installing-solidity.html>`_ 璇存槑銆� 涓嬩竴姝ユ妸Multiply7鍚堢害缂栬瘧涓哄彲浠ュ彂閫佺粰浠ュお鍧婅櫄鎷熸満鐨勫瓧鑺傜爜銆� .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_compileSolidity", "params": ["contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } }"], "id": 4}' localhost:8545 {"id":4,"jsonrpc":"2.0","result":{"Multiply7":{"code":"0x6060604052605f8060106000396000f3606060405260e060020a6000350463c6888fa18114601a575b005b60586004356007810260609081526000907f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da90602090a15060070290565b5060206060f3","info":{"source":"contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } }","language":"Solidity","languageVersion":"0.2.2","compilerVersion":"0.2.2","compilerOptions":"--bin --abi --userdoc --devdoc --add-std --optimize -o /tmp/solc205309041","abiDefinition":[{"constant":false,"inputs":[{"name":"input","type":"uint256"}],"name":"multiply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"uint256"}],"name":"Print","type":"event"}],"userDoc":{"methods":{}},"developerDoc":{"methods":{}}}}}} 鐜板湪鎴戜滑宸茬粡缂栬瘧瀹屾垚浜嗕唬鐮侊紝鎴戜滑闇€瑕佸喅瀹氳姳璐瑰灏戠摝鏂潵閮ㄧ讲瀹冿紝RPC鎺ュ彛鐨� ``eth_estimateGas`` 鏂规硶鍙互缁欐垜浠彁渚涗竴涓弬鑰冨€笺€� .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_estimateGas", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "data": "0x6060604052605f8060106000396000f3606060405260e060020a6000350463c6888fa18114601a575b005b60586004356007810260609081526000907f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da90602090a15060070290565b5060206060f3"}], "id": 5}' localhost:8545 {"id":5,"jsonrpc":"2.0","result":"0xb8a9"} 鏈€缁堬紝鎴戜滑閮ㄧ讲濂戒簡鍚堢害銆� .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "gas": "0xb8a9", "data": "0x6060604052605f8060106000396000f3606060405260e060020a6000350463c6888fa18114601a575b005b60586004356007810260609081526000907f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da90602090a15060070290565b5060206060f3"}], "id": 6}' localhost:8545 {"id":6,"jsonrpc":"2.0","result":"0x3a90b5face52c4c5f30d507ccf51b0209ca628c6824d0532bcd6283df7c08a7c"} 浜ゆ槗琚妭鐐规帴鍙楀苟涓斾氦鏄撶殑鍝堝笇琚繑鍥烇紝鎴戜滑鍙互閫氳繃杩欎釜鍝堝笇鏉ヨ拷韪氦鏄撱€� 涓嬩竴姝ユ潵鍐冲畾鎴戜滑閮ㄧ讲鍚堢害鐨勫湴鍧€锛屼氦鏄撶殑姣忎竴娆℃墽琛岄兘浼氬垱寤轰竴涓敹鎹紝杩欎釜鏀舵嵁鍖呭惈浜ゆ槗鐨勫悇绉嶄俊鎭紝渚嬪浜ゆ槗鍖呭惈鍦ㄥ摢涓尯鍧椾腑銆佷氦鏄撹繃绋嬭姳璐逛簡澶氬皯鐡︽柉绛夈€傚鏋滀竴涓氦鏄撳垱寤轰簡涓€涓悎绾︼紝瀹冧篃浼氬寘鍚悎绾︾殑鍦板潃锛屾垜浠彲浠ラ€氳繃RPC鎺ュ彛鐨� ``eth_getTransactionReceipt`` 鏂规硶鏉ヨ幏鍙栨敹鎹€� .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_getTransactionReceipt", "params": ["0x3a90b5face52c4c5f30d507ccf51b0209ca628c6824d0532bcd6283df7c08a7c"], "id": 7}' localhost:8545 {"id":7,"jsonrpc":"2.0","result":{"transactionHash":"0x3a90b5face52c4c5f30d507ccf51b0209ca628c6824d0532bcd6283df7c08a7c","transactionIndex":"0x0","blockNumber":"0x4c","blockHash":"0xe286656e478a1b99030e318d0f5c3a61a644f25e63deaa8be52e80da1e7b0c47","cumulativeGasUsed":"0xb8a9","gasUsed":"0xb8a9","contractAddress":"0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d","logs":[]}} 鎴戜滑鍙互鐪嬪埌鍚堢害鍒涘缓浜� ``0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d`` 锛屽鏋滀綘鑾峰彇鍒皀ull鏀舵嵁锛岄偅涔堣鏄庝氦鏄撹繕娌℃湁琚墦鍖呰繘鍖哄潡涓紝璇锋鏌ヤ綘鐨勭熆宸ヨ繕鍦ㄥ伐浣滃苟涓旂瓑寰呬竴浼氬啀閲嶆柊纭銆� 涓庢櫤鑳藉悎绾︿氦浜� ================================================================================ 鎴戜滑鐨勫悎绾﹀凡缁忛儴缃插畬姣曪紝鍙互涓庝箣杩涜浜や簰浜嗐€傚墠闈㈠凡缁忚杩囷紝鎴戜滑鏈� `涓ょ鏂规硶 <interacting_with_a_contract>` 鍙互涓庡悎绾﹁繘琛屼氦浜�: `sendTransaction` 鍜� `call` 銆傚湪涓嬮潰鐨勪緥瀛愪腑锛屾垜浠皢浣跨敤sendTransaction鐨勬柟寮忔潵涓庡悎绾︿腑鐨刴ultiply鏂规硶浜や簰銆� 閫氳繃闃呰 `eth_sendTransaction <https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction>`_ 鐨勬枃妗o紝鎴戜滑鍙戠幇闇€瑕佹彁渚涗竴浜涘弬鏁帮紝鍒嗗埆闇€瑕佹寚瀹氾細``from`` 锛� ``to`` 鍜� ``data`` 銆俙from` 鏄垜浠彂璧蜂氦鏄撹处鎴风殑鍏紑鍦板潃锛� `to` 鏄悎绾︾殑鍦板潃锛� `data` 鍙傛暟鏈変竴鐐瑰鏉傦紝瀹冪殑鍐呭鍖呭惈浜嗗摢涓嚱鏁板皢琚皟鐢ㄥ苟涓旇瀹氫簡璋冪敤鐨勫弬鏁帮紝杩欐槸閫氳繃ABI杩涜瀹炵幇鐨勶紝ABI瀹氫箟浜嗗浣曚负浠ュお鍧婅櫄鎷熸満(EVM)瀹氫箟鍜岀紪鐮佹暟鎹紝浣犲彲浠ラ槄璇� `ABI缁嗚妭wiki <https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI>`_ 銆� `data` 鐨勫瓧鑺傚簭鍒楁槸涓€涓嚱鏁伴€夋嫨鍣紝瀹氫箟浜嗗摢涓嚱鏁板皢浼氳璋冪敤锛屽畠鏄€氳繃Keccak鍝堝笇璁$畻鍑芥暟鍚嶇О鍜岃皟鐢ㄥ弬鏁帮紝鐒跺悗鍙栧叾鍝堝笇鍊肩殑鍓�4瀛楄妭骞剁敤鍗佸叚杩涘埗杩涜缂栫爜锛屾垜浠墠闈㈠畾涔夌殑涔樻硶鍑芥暟鎺ュ彈涓€涓�256浣嶇殑鏁村瀷鏁帮紝杩欒鎴戜滑鏈夛細 .. code:: js > web3.sha3("multiply(uint256)").substring(0, 8) "c6888fa1" 鏇村缁嗚妭锛岃鐐瑰嚮 `鍑芥暟閫夋嫨鍣� <https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI#function-selector>`_ 銆� 涓嬩竴姝ユ槸瀵瑰弬鏁拌繘琛岀紪鐮侊紝鎴戜滑鐨勫弬鏁板彧鏈変竴涓猽int256锛屾垜浠亣璁捐繖涓€间负6锛� `鍙傛暟缂栫爜瑙勫垯 <https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI#argument-encoding>`_ 涓殑濡備笅绔犺妭鎸囧嚭浜嗘垜浠簲璇ュ浣曠紪鐮乽int256銆� `int<M>: enc(X) 鏄疿鐨勫ぇ绔簩杩涘埗琛ョ爜缂栫爜锛�0xff濉厖鍦ㄨ礋鏁扮殑楂樹綅(宸︿晶)锛岀敤闆跺~鍏呬娇寰楅暱搴︿负32瀛楄妭銆俙 杩欐牱缂栫爜缁撴灉涓� ``0000000000000000000000000000000000000000000000000000000000000006`` 銆� 灏嗗嚱鏁扮紪鐮佸拰鍙傛暟缂栫爜杩涜缁勫悎锛屽氨寰楀埌鎴戜滑鐨� ``data`` 锛屼篃灏辨槸 ``0xc6888fa100000000000000000000000000000000000000000000000000000006``. 鎴戜滑鏉ュ皾璇曡皟鐢細 .. code:: bash > curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "to": "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", "data": "0xc6888fa10000000000000000000000000000000000000000000000000000000000000006"}], "id": 8}' localhost:8545 {"id":8,"jsonrpc":"2.0","result":"0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74"} 璋冪敤瀹屾瘯鍚庢垜浠緱鍒颁氦鏄撶殑鍝堝笇锛屽鏋滄垜浠幏鍙栨敹鎹垜浠彲浠ュ緱鍒板涓嬪唴瀹癸細 .. code-block:: js :emphasize-lines: 7 { blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", blockNumber: 268, contractAddress: null, cumulativeGasUsed: 22631, gasUsed: 22631, logs: [{ address: "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", blockNumber: 268, data: "0x000000000000000000000000000000000000000000000000000000000000002a", logIndex: 0, topics: ["0x24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da"], transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", transactionIndex: 0 }], transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", transactionIndex: 0 } 鏀舵嵁涓寘鍚棩蹇楋紝杩欎釜鏃ュ織鏄互澶潑铏氭嫙鏈哄湪浜ゆ槗鎵ц鐨勮繃绋嬩腑鍒涘缓鐨勶紝骞朵笖琚寘鍚湪鏀舵嵁涓€傚鏋滄垜浠煡鐪嬩箻娉曞嚱鏁帮紝浼氬彂鐜癙rint浜嬩欢灏嗚緭鍏ョ殑鍙傛暟涔樹互7锛岄€氳繃ABI缂栫爜瑙勫垯锛屾垜浠彲浠ヨВ鐮佸緱鍒伴鏈熺殑缁撴灉42銆傞櫎浜哾ata瀛楁涔嬪锛屽€煎緱娉ㄦ剰鐨勬槸topics瀛楁锛岄€氳繃瀹冨彲浠ュ緱鐭ユ槸鍝釜浜嬩欢鍒涘缓浜嗘棩蹇椼€� .. code:: js > web3.sha3("Print(uint256)") "24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da" 浣犲彲浠ラ槄璇绘洿澶氭湁鍏砮vent銆乼opics鐨勫唴瀹癸紝鍙互鏌ョ湅 `Solidity鏁欑▼ <http://solidity.readthedocs.org/en/latest/contracts.html#events>`_ 銆� 杩欓噷鎴戜滑浠呬粎鍋氫簡绠€鍗曠殑浠嬬粛锛屾兂瑕佹煡鐪嬪畬鏁村彲鐢ㄧ殑RPC鏂规硶鍒楄〃璇锋煡鐪嬶細 `RPC鐨剋iki椤甸潰 <https://github.com/ethereum/wiki/wiki/JSON-RPC#json-rpc-methods>`_ 銆� .. _using_web3.js: Web3.js ================================================================================ 浠庝笂闈㈢殑渚嬪瓙涓垜浠湅鍒癑SON-RPC鎺ュ彛鐨勪娇鐢ㄦ槸闈炲父浜戦暱涔忓懗骞朵笖瀹规槗鍑洪敊鐨勶紝鐗瑰埆鏄垜浠渶瑕佷娇鐢ˋBI鏃讹紝Web3.js鏄竴涓湪浠ュお鍧奟PC鎺ュ彛涓婂伐浣滅殑javascript搴擄紝瀹冪殑鐩爣鏄彁渚涗竴涓洿鍙嬪ソ鐨勪氦浜掔晫闈紝鍚屾椂鍑忓皯鍑洪敊鐨勬鐜囥€� 浣跨敤web3鏉ラ儴缃茶緭鍏ヤ箻7鐨勫悎绾﹀皢浼氭槸濡備笅鐨勬牱瀛愶細 .. code:: js var source = 'contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } }'; var compiled = web3.eth.compile.solidity(source); var code = compiled.Multiply7.code; var abi = compiled.Multiply7.info.abiDefinition; web3.eth.contract(abi).new({from: "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", data: code}, function (err, contract) { if (!err && contract.address) console.log("deployed on:", contract.address); } ); deployed on: 0x0ab60714033847ad7f0677cc7514db48313976e2 鍔犺浇涓€涓凡缁忛儴缃茬殑鍚堢害骞朵笖閫氳繃浜ゆ槗鏉ヨ繘琛屼氦浜掞細 .. code:: js var source = 'contract Multiply7 { event Print(uint); function multiply(uint input) returns (uint) { Print(input * 7); return input * 7; } }'; var compiled = web3.eth.compile.solidity(source); var Multiply7 = web3.eth.contract(compiled.Multiply7.info.abiDefinition); var multi = Multiply7.at("0x0ab60714033847ad7f0677cc7514db48313976e2") multi.multiply.sendTransaction(6, {from: "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a"}) 娉ㄥ唽涓€涓悕涓� ``Print`` 鐨勪簨浠舵潵鍒涘缓鏃ュ織銆� .. code:: js multi.Print(function(err, data) { console.log(JSON.stringify(data)) }) {"address":"0x0ab60714033847ad7f0677cc7514db48313976e2","args": {"":"21"},"blockHash":"0x259c7dc07c99eed9dd884dcaf3e00a81b2a1c83df2d9855ce14c464b59f0c8b3","blockNumber":539,"event":"Print","logIndex":0, "transactionHash":"0x5c115aaa5418118457e96d3c44a3b66fe9f2bead630d79455d0ecd832dc88d48","transactionIndex":0} 鏇村淇℃伅璇锋煡鐪� `web3.js鐨剋iki椤甸潰 <https://github.com/ethereum/wiki/wiki/JavaScript-API>`_ 銆� 鍛戒护琛� ================================================================================ geth鐨� `鍛戒护琛� <https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console>`_ 鎻愪緵javascript杩愯鏃跺懡浠よ鎺ュ彛锛屽畠鍙互杩炴帴鍒版湰鍦版垨杩滅▼鐨刧eth鎴杄th鑺傜偣锛岃繍琛屾椂浼氬姞杞絯eb3.js搴撲緵鐢ㄦ埛浣跨敤锛岃繖灏变娇寰楃敤鎴峰彲浠ラ€氳繃web3.js鍛戒护鏉ラ儴缃插拰璋冪敤鏅鸿兘鍚堢害锛屼簨瀹炰笂锛屽墠闈� :ref:`Web3.js <using_web3.js>` 涓殑浠g爜鍙互鐩存帴鎷疯礉鍒板懡浠よ涓繘琛岃繍琛屻€� 鏌ョ湅绾夸笂鍚堢害鍜屼氦鏄� ================================================================================ 浣犲彲浠ラ€氳繃澶氱鏂瑰紡鏉ユ煡鐪嬩互澶潑鍖哄潡閾句笂鐨勫悎绾﹀拰浜ゆ槗锛岀偣鍑绘煡鐪� :ref:`鍖哄潡閾炬煡璇� <blockchain_explorers>`銆� .. _blockchain_explorers: 鍖哄潡閾炬煡璇㈢綉绔� -------------------------------------------------------------------------------- - `EtherChain <https://www.etherchain.org/>`_ - `EtherCamp <https://live.ether.camp/>`_ - `EtherScan <http://etherscan.io/>`_ (and for `Testnet <http://testnet.etherscan.io>`_) 鍏朵粬璧勬簮 -------------------------------------------------------------------------------- * `EtherNodes <http://ethernodes.org/>`_ - 鑺傜偣鐨勫湴鐞嗕綅缃拰瀹㈡埛绔被鍨嬪垝鍒� * `EtherListen <http://www.etherlisten.com>`_ - 瀹炴椂鏌ョ湅浠ュお鍧婁氦鏄撲俊鎭�