Công cụ cho phát triển DApps trên Ethereum + HelloWorld demo

testprc

Dùng để test RPC dưới localhost.
Cài đặt:

npm install -g ethereumjs-testrpc

Truffle

Truffle là framework để phát triển ứng dụng phi tập trung trên Ethereum. Các chức năng bao gôm: Complie and build, testing, deployment, intergration.

github: https://github.com/trufflesuite/truffle

Cài đặt: npm install -g truffle

Demo Hello World

Open Power Shell trên Windows.

Tạo folder helloworld.

Khởi tạo truffle template với command:

truffle init

Mở project trong Visual Studio Code bằng command:

code .

Tạo file helloworld.sol trong thư mục contact với nội dung:

pragma solidity ^0.4.4;
contract HelloWorld {
    function SayHello() returns (string) {
        return ("Hello World!");
    }
}

Mở file 1_initial_migration.js trong thư mục migrations, import và thêm code như sau:

var Migrations = artifacts.require("./Migrations.sol");
var HelloWorld = artifacts.require("./helloworld.sol");
module.exports = function(deployer) {
  deployer.deploy(Migrations);
  deployer.deploy(HelloWorld);
};

Lưu ý đường dẫn import file, nó không phải là địa chỉ tương đối của cấu trúc project, mình phải import từ root "./helloworld.sol"

Mở Power Shell và sử dụng command sau để start server:

testrpc

Mặc định sẽ chạy ở localhost:8545

Mở file truffle.js để cấu hình network:

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    }
  }
};

Mở thêm 1 Power Shell khác, dùng lệnh sau để compile:

truffle compile

Tiếp tục dùng lệnh sau dể migrate:

truffle migrate

Dùng truffle console bằng lệnh:
truffle console

Gõ từng lệnh sau:

var hw

HelloWorld.deployed().then(function(deployed) { hw=deployed; });

hw.SayHello.call();

alt text

Một số lỗi thường gặp:

No network specified. Cannot determine current network.

Cách khắc phụ:
Mở file truffle.js để cấu hình network:

module.exports = {
  networks: {
    development: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    }
  }
};

... has not been deployed to detected network:

Lỗi này thường xuất hiện kèm với lỗi trên do chúng ta không thay đổi code nên khi migrate, nó không thể hiểu được network mới. Cách khắc phục, chạy 2 lệnh:
truffle compile
truffle migrate --reset

...

Be better yesterday!
vani 04-02-2018

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Vani

12 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 0
Merkle tree, cũng như được biết đến là cây hash nhị phân, là một dạng cấu trúc dữ liệu sử dụng để lưu trữ hash của các thông tin cá nhân trong bộ d...
Vani viết 14 ngày trước
2 0
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
12 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!