Lập trình smart contracts: Phần 1 — Lời mở đầu

Dũng Trần
tradahacking
Published in
3 min readOct 17, 2017

Công nghệ thay đổi rất nhiều thứ, kể cả nhận thức của chúng ta, công nghệ mới thay thế công nghệ cũ. Blockchain cũng vậy, tuy không phải là công nghệ mới nhưng nó là sự kế thừa và đặt nền tảng để ta hiện thực những ý tưởng mà trước đây là không thể. Smart contracts một khái niệm không còn mới mẽ nhưng với Ethereum lần đầu tiên nó được hiện thực hóa nó bằng cách ứng dụng công nghệ blockchain.

Nếu các chính phủ chấp nhận giá trị pháp lý của các smart contracts nó sẽ mở ra những triển vọng rất lớn và sự chuyển dịch trong khối hành chính sự nghiệp cũng như khối doanh nghiệp. Smart contracts và digital signature hoàn toàn có thể thay thế hoàn toàn các hợp đồng dân sự và điều này sẽ tiết kiệm hằng tấn tiền để in các hợp đồng, xét xử, kiện cáo…

Và điều này cũng có nghĩa lập trình smart contracts sẽ trở thành một kỹ năng cần thiết trong cuộc sống. Thế giới đầy những điều không tưởng xẩy ra, và nếu không chuẩn bị ta có thể trở thành những kẻ thất bại của xã hội.

Những platform nào thực thi smart contracts?

Ethereum không phải là platform duy nhất cho phép thực hiện smart contracts, có rất nhiều và hằng hà sa số các platform hướng tới việc lập trình smart contract và xây dựng các decentralized applications. Tiêu biểu là:

LSK: https://docs.lisk.io/docs/the-lisk-protocol

RSK: http://www.rsk.co/

Tại sao Ethereum và Solidity?

Ethereum và solidity là platform và ngôn ngữ phổ biến và dễ học nhất, bạn sẽ không mất quá nhiều công sức để xây dựng tất cả mọi thứ.

Những bước làm quen với smart contracts

Nắm vững những hạn chế của Ethereum

  • Thời gian confirm một transaction (10–13s)
  • Gas limit của một block (4,000,000–6,000,000)
  • Gas estimate cho mỗi transaction (nếu không đủ gas thì toàn bộ estimate gas của bạn sẽ bị consume hết và EVM throw INVAILD out of gas)
  • Cách điều chỉnh gas price
  • Các BIP liên quan tới HD wallet (BIP32), và mnemonic words (BIP39)
  • Hiểu biết về platform là lợi thế chính yếu

Sử dụng thành thạo NodeJS & GNU Toolchain

  • Rất nhiều thư viện như EthereumJS được viết trên JavaScript. Bạn sẽ không mất công làm lại cái bánh xe
  • Sử dụng các GNU toolchain cũng cần thiết, nó sẽ giúp các bạn khi biên dịch cách packages được thuận lợi

Sử dụng thành thạo command line

  • Bạn phải làm việc với command line khá nhiều nếu không muốn nói là 24/7
  • Nếu bạn dùng GNU/Linux hoặc macOS thì thuận tiện hơn rất nhiều so với Windows.
  • Dùng được truffle thì điều kiện tiên quyết là rành command line

Học solidity

Chúng ta sẽ tiếp tục trong:
Phần 2 —Viết smart contracts đầu tiên
Mình sẽ cố gắng duy trì một tuần một bài.

--

--