田辺  亮介

田辺 亮介

1659455820

如何在 Solidity 和 Truffle 中創建您的第一個智能合約

如何在 Solidity 中創建您的第一個智能合約?在本教程中,我們將學習如何使用Solidity 編程語言編寫智能合約並將其部署到本地以太坊區塊鏈。如果您是區塊鏈世界的新手,請查看我之前的教程 Ethereum Blockchain Tutorial From Scratch

區塊鏈如何運作?

區塊鏈應用程序的工作方式與 Web 應用程序完全不同。在 Web 應用程序中,數據存儲在中央數據庫服務器上。客戶端與 Web 應用程序通信,Web 應用程序寫入和讀取數據庫,然後根據它進行響應。在區塊鏈技術中,所有的客戶端都是節點,沒有中央數據庫這樣的東西。數據是完全不可變的,創建後就無法再改回來。所以區塊鏈提供了高端的安全性。所以我們的應用程序完全分散在 區塊鏈上。 數據最終分佈在多個節點上。

區塊鍊是對等節點的網絡。他們互相交流。一旦你連接到 區塊鏈, 現在你就是區塊鏈的一部分。你是區塊鏈的節點之一。

你可以總結為區塊鍊是數據庫和網絡。以太坊區塊鏈允許我們編寫可以將其部署到區塊鏈的代碼,並且網絡的節點可以執行此代碼。

 

智能合約

以太坊區塊鏈允許我們編寫在帶有智能合約的以太坊虛擬機上執行的代碼。這意味著我們應用程序的所有業務邏輯都駐留在智能合約上。它將讀取和寫入數據、傳輸價值並執行我們在區塊鏈上編程的任何業務邏輯。

堅固性

Solidity是一種語言,我們可以用它來編寫我們的智能合約。然後這些智能合約部署在區塊鏈上。所有的讀寫數據邏輯都是在這個 Solidity 語言中定義的。它就像一個存在於區塊鏈上的微服務。

 

如何在 Solidity 中創建您的第一個智能合約

我們將通過安裝依賴項來啟動我們的項目,以構建這個小型去中心化應用程序。

如果您尚未在機器上安裝 Node.js ,則可以使用以下命令安裝它。

brew install node

它還帶有NPM,它是節點包管理器。

接下來,我們需要安裝的是 Ganache它可以快速啟動個人以太坊區塊 ,您可以使用它來運行測試、執行命令和檢查狀態,同時控制鏈的運行方式。轉到此鏈接。您可以根據您的操作系統安裝它。安裝後,你可以看到類似這樣的東西。

Ganache 區塊鏈教程

安裝松露框架

接下來,安裝 Truffle 框架。Truffle是以太坊最受歡迎的開發框架,其使命是讓你的生活變得更輕鬆。使用以下命令安裝。

sudo npm install -g truffle

松露框架功能

  • 內置智能合約編譯、鏈接、部署和二進制管理。
  • 用於快速開發的自動化合同測試。
  • 可編寫腳本的部署和遷移框架。
  • 用於部署到公共和專用網絡的網絡管理。
  • 在 truffle 環境中執行腳本的外部腳本運行器。
  • 訪問數百個外部包。
  • 為速度而生。

安裝 Metamask Chrome 擴展程序。

您可以使用此鏈接安裝它。

在 Visual Studio Code 上安裝 Solidity 擴展。

如果您還沒有安裝 Visual Studio Code ,那麼請安裝它,我認為它是迄今為止最好的編輯器。您可以查看我關於 如何在 Mac 上安裝 Visual Studio Code的文章。

Solidity 示例教程

不要關閉 甘納許。 保持開放。它是本地區塊鏈,其中已經有 10 個用戶。你可以看到他們的地址。 

現在,我們需要創建項目來用Solidity語言編寫智能 合約。我們已經安裝了 Truffle 框架,所以我們可以使用它來為我們的項目生成樣板文件。因此,轉到您的常規項目目錄並鍵入以下命令來創建項目文件夾。進入那個文件夾。

mkdir blocksol
cd blocksol

好的,現在使用以下代碼生成 truffle 樣板。

truffle unbox pet-shop

使用以下命令在編輯器中打開項目。我有VScode所以,

code .

您可以看到我們的主文件夾結構如下所示。

 

松露框架教程

創建智能合約。

在文件夾結構中,您可以看到有一個名為 contracts 的文件夾。 我們將在該文件夾中創建所有合約。讓我們創建一份名為 Football.sol 的合約。 這裡的文件擴展名是 .sol ,因為我們使用 Solidity 語言 對合約進行編碼。在裡面寫下下面的代碼。

pragma solidity ^0.4.2;

contract Football {

    string public team;

    function Football () public {
        team = "Real Madrid";
    }
}

在第一行,我們定義了solidity的版本,在0.4.2以上。然後我們就建立了足球合同。 另外,我採用了稱為團隊的變量,它是public。現在,我們可以使用該公共變量作為返回其值的方法。因此,在合約中定義為公共的變量,我們也可以作為函數調用以獲取該變量的值。

創建 Football Contract 的遷移。

在遷移 文件夾中創建一個 名為 2_football_migration.js 文件的文件。

// 2_football_migration

var Football = artifacts.require("./Football.sol");

module.exports = function(deployer) {
  deployer.deploy(Football);
};

好的,現在使用以下命令將合約部署到區塊鍊網絡。

truffle network

不用擔心編譯警告;沒關係。

與區塊鏈互動。

您可以使用以下命令與我們的應用程序進行交互。

truffle console

現在,在終端中輸入以下內容。

Football.deployed().then(function(instance) {app = instance})

智能合約返回一個 Promise,它主要是一個 JavaScript 概念,是一種異步行為。就像我們需要等待某些進程完成它一樣,它可以向我們發送承諾,該承諾要么解決,要么拒絕。現在,完成事件後,它會給我們一個結果,那就是 app。 所以我們可以像這樣進一步查詢。

app.address

現在,作為回報,您可以在字符串中看到地址。

我們也可以通過下面的函數獲取團隊名稱。

app.team()

它將返回皇家馬德里。但是等等,我們還沒有定義任何名為 team 的函數,它仍然會返回一個值。

因為公共變量本身就是一個 getter 函數。所以我們可以把它作為一個函數來調用,作為回報,我們可以得到它的值。

帶有 Pragma Solidity 教程的智能合約

所以,最後,我們在 Solidity 中部署了我們的第一個智能合約。 

這就是今天的 如何在 Solidity 中創建您的第一個智能合約 教程。未來我們將使用以太坊區塊鏈構建完全去中心化的應用程序。

鏈接:https ://appdividend.com/2018/04/09/how-to-create-your-first-smart-contract-in-solidity/

#smartcontract #solidity #blockchain

What is GEEK

Buddha Community

如何在 Solidity 和 Truffle 中創建您的第一個智能合約
田辺  亮介

田辺 亮介

1659455820

如何在 Solidity 和 Truffle 中創建您的第一個智能合約

如何在 Solidity 中創建您的第一個智能合約?在本教程中,我們將學習如何使用Solidity 編程語言編寫智能合約並將其部署到本地以太坊區塊鏈。如果您是區塊鏈世界的新手,請查看我之前的教程 Ethereum Blockchain Tutorial From Scratch

區塊鏈如何運作?

區塊鏈應用程序的工作方式與 Web 應用程序完全不同。在 Web 應用程序中,數據存儲在中央數據庫服務器上。客戶端與 Web 應用程序通信,Web 應用程序寫入和讀取數據庫,然後根據它進行響應。在區塊鏈技術中,所有的客戶端都是節點,沒有中央數據庫這樣的東西。數據是完全不可變的,創建後就無法再改回來。所以區塊鏈提供了高端的安全性。所以我們的應用程序完全分散在 區塊鏈上。 數據最終分佈在多個節點上。

區塊鍊是對等節點的網絡。他們互相交流。一旦你連接到 區塊鏈, 現在你就是區塊鏈的一部分。你是區塊鏈的節點之一。

你可以總結為區塊鍊是數據庫和網絡。以太坊區塊鏈允許我們編寫可以將其部署到區塊鏈的代碼,並且網絡的節點可以執行此代碼。

 

智能合約

以太坊區塊鏈允許我們編寫在帶有智能合約的以太坊虛擬機上執行的代碼。這意味著我們應用程序的所有業務邏輯都駐留在智能合約上。它將讀取和寫入數據、傳輸價值並執行我們在區塊鏈上編程的任何業務邏輯。

堅固性

Solidity是一種語言,我們可以用它來編寫我們的智能合約。然後這些智能合約部署在區塊鏈上。所有的讀寫數據邏輯都是在這個 Solidity 語言中定義的。它就像一個存在於區塊鏈上的微服務。

 

如何在 Solidity 中創建您的第一個智能合約

我們將通過安裝依賴項來啟動我們的項目,以構建這個小型去中心化應用程序。

如果您尚未在機器上安裝 Node.js ,則可以使用以下命令安裝它。

brew install node

它還帶有NPM,它是節點包管理器。

接下來,我們需要安裝的是 Ganache它可以快速啟動個人以太坊區塊 ,您可以使用它來運行測試、執行命令和檢查狀態,同時控制鏈的運行方式。轉到此鏈接。您可以根據您的操作系統安裝它。安裝後,你可以看到類似這樣的東西。

Ganache 區塊鏈教程

安裝松露框架

接下來,安裝 Truffle 框架。Truffle是以太坊最受歡迎的開發框架,其使命是讓你的生活變得更輕鬆。使用以下命令安裝。

sudo npm install -g truffle

松露框架功能

  • 內置智能合約編譯、鏈接、部署和二進制管理。
  • 用於快速開發的自動化合同測試。
  • 可編寫腳本的部署和遷移框架。
  • 用於部署到公共和專用網絡的網絡管理。
  • 在 truffle 環境中執行腳本的外部腳本運行器。
  • 訪問數百個外部包。
  • 為速度而生。

安裝 Metamask Chrome 擴展程序。

您可以使用此鏈接安裝它。

在 Visual Studio Code 上安裝 Solidity 擴展。

如果您還沒有安裝 Visual Studio Code ,那麼請安裝它,我認為它是迄今為止最好的編輯器。您可以查看我關於 如何在 Mac 上安裝 Visual Studio Code的文章。

Solidity 示例教程

不要關閉 甘納許。 保持開放。它是本地區塊鏈,其中已經有 10 個用戶。你可以看到他們的地址。 

現在,我們需要創建項目來用Solidity語言編寫智能 合約。我們已經安裝了 Truffle 框架,所以我們可以使用它來為我們的項目生成樣板文件。因此,轉到您的常規項目目錄並鍵入以下命令來創建項目文件夾。進入那個文件夾。

mkdir blocksol
cd blocksol

好的,現在使用以下代碼生成 truffle 樣板。

truffle unbox pet-shop

使用以下命令在編輯器中打開項目。我有VScode所以,

code .

您可以看到我們的主文件夾結構如下所示。

 

松露框架教程

創建智能合約。

在文件夾結構中,您可以看到有一個名為 contracts 的文件夾。 我們將在該文件夾中創建所有合約。讓我們創建一份名為 Football.sol 的合約。 這裡的文件擴展名是 .sol ,因為我們使用 Solidity 語言 對合約進行編碼。在裡面寫下下面的代碼。

pragma solidity ^0.4.2;

contract Football {

    string public team;

    function Football () public {
        team = "Real Madrid";
    }
}

在第一行,我們定義了solidity的版本,在0.4.2以上。然後我們就建立了足球合同。 另外,我採用了稱為團隊的變量,它是public。現在,我們可以使用該公共變量作為返回其值的方法。因此,在合約中定義為公共的變量,我們也可以作為函數調用以獲取該變量的值。

創建 Football Contract 的遷移。

在遷移 文件夾中創建一個 名為 2_football_migration.js 文件的文件。

// 2_football_migration

var Football = artifacts.require("./Football.sol");

module.exports = function(deployer) {
  deployer.deploy(Football);
};

好的,現在使用以下命令將合約部署到區塊鍊網絡。

truffle network

不用擔心編譯警告;沒關係。

與區塊鏈互動。

您可以使用以下命令與我們的應用程序進行交互。

truffle console

現在,在終端中輸入以下內容。

Football.deployed().then(function(instance) {app = instance})

智能合約返回一個 Promise,它主要是一個 JavaScript 概念,是一種異步行為。就像我們需要等待某些進程完成它一樣,它可以向我們發送承諾,該承諾要么解決,要么拒絕。現在,完成事件後,它會給我們一個結果,那就是 app。 所以我們可以像這樣進一步查詢。

app.address

現在,作為回報,您可以在字符串中看到地址。

我們也可以通過下面的函數獲取團隊名稱。

app.team()

它將返回皇家馬德里。但是等等,我們還沒有定義任何名為 team 的函數,它仍然會返回一個值。

因為公共變量本身就是一個 getter 函數。所以我們可以把它作為一個函數來調用,作為回報,我們可以得到它的值。

帶有 Pragma Solidity 教程的智能合約

所以,最後,我們在 Solidity 中部署了我們的第一個智能合約。 

這就是今天的 如何在 Solidity 中創建您的第一個智能合約 教程。未來我們將使用以太坊區塊鏈構建完全去中心化的應用程序。

鏈接:https ://appdividend.com/2018/04/09/how-to-create-your-first-smart-contract-in-solidity/

#smartcontract #solidity #blockchain

How to Build a Todo App with Solidity, Nextjs & Truffle

Build a Todo App with Solidity, Next.js & Truffle

In this tutorial, you'll learn how to build a Todo app with Solidity, Nextjs & Truffle. Kickstart your Blockchain Development career or take it to the next level with this course. This course is perfect for Beginners as well as Intermediate Developers.

#blockchain #solidity #web3 #nextjs #truffle

Solidity Code Examples on Truffle and Ganache TestNet

Solidity-Examples

  • Make sure Node.js & npm package manager is installed and accessible from the command line along with truffle.
    • Node.js
    • Truffle

Contracts

The running examples and vulnerable contracts are in contract-samples folder. See README.md Other folders contains token or full project examples that can be run for better understanding.

Running Examples

Make sure you have Ganache test blockchain running locally in your machine. Run *.AppImage with chmod a+x from the download site.

$ cd ballot-example

$ truffle compile
    ...
    Compiling your contracts...
    ===========================
    ✔ Fetching solc version list from solc-bin. Attempt #1
    > Compiling ./contracts/Address.sol
    > Compiling ./contracts/Ballot.sol
    > Compiling ./contracts/Migrations.sol

$ truffle migrate
    ...
    Compiling your contracts...
    ===========================
    ✔ Fetching solc version list from solc-bin. Attempt #1
    > Everything is up to date, there is nothing to compile.

    Network up to date.

$ truffle deploy
    ...

# For testing
$ truffle test
    ...
    Using network 'development'.


    Compiling your contracts...
    ===========================
    ✔ Fetching solc version list from solc-bin. Attempt #1
    > Compiling ./test/4_Ballot_test.sol
    ✔ Fetching solc version list from solc-bin. Attempt #1
    > Artifacts written to /tmp/test--288401-NgXp0VWd8kTu
    > Compiled successfully using:
    - solc: 0.7.6+commit.7338295f.Emscripten.clang



    Contract: Address
    [
    '0x53756d6974000000000000000000000000000000000000000000000000000000',
    '0x5261766900000000000000000000000000000000000000000000000000000000',
    '0x52616a616e000000000000000000000000000000000000000000000000000000',
    '0x5261676875000000000000000000000000000000000000000000000000000000',
    '0x45746865724b696e670000000000000000000000000000000000000000000000',
    '0x5368656b68617200000000000000000000000000000000000000000000000000',
    '0x436f6e74726163746f7200000000000000000000000000000000000000000000',
    '0x50756c75626b0000000000000000000000000000000000000000000000000000',
    '0x426974636f696e4b696e67000000000000000000000000000000000000000000',
    '0x44616f4865636b65720000000000000000000000000000000000000000000000'
    ]
        ✓ Should return 10 addresses (43ms)


    1 passing (184ms)

Other Commands

Smart contract functions to run on the MetaCoin-example folder.

$ truffle exec src/getAddress.js --network development --compile
$ truffle console
...
$ truffle(development)> let instance = await MetaCoin.deployed()
...
$ truffle(development)> let accounts = await web3.eth.getAccounts()
$ truffle(development)> instance.sendCoin(accounts[1], 10, {from: accounts[0]})
...
...
$ truffle(development)> .exit

Running Script

Logging and running each command from truffle console can be tedious. We can use a script (written in JavaScript) to execute on development network. See (truffle-run.js)

$ truffle exec ./example_run.js --network development
...

Using network 'development'.

0xdAd324Ac3f539785b8E02329fFd34e7657a16064
99713108700000000000
...

Useful Links

Download details:

Author:  lahiri-phdworks
Source code: https://github.com/lahiri-phdworks/Solidity-Examples

#solidity #smartcontract #blockchain #web3 #ethereum #dapp #truffle #ganache 

Hans  Marvin

Hans Marvin

1659426768

How to Create Your First Smart Contract in Solidity & Truffle

Ethereum Blockchain allows us to write the code that gets executed on Ethereum Virtual Machine with Smart Contracts. That means all of the business logic of our application resides on the smart contract. It will read and write the data, transferring value and execute any business logic that we program on the blockchain.

In this tutorial, We will learn how to write the Smart Contract in Solidity Programming Langauge and deploy it to the local ethereum blockchain. If you are new to Blockchain world, then please check out my previous tutorial Ethereum Blockchain Tutorial From Scratch

See more at: https://appdividend.com/2018/04/09/how-to-create-your-first-smart-contract-in-solidity/

#smartcontract #solidity #blockchain #truffle 

Solidity Ethereum Tutorial: Truffle, Atom and TestRPC

Truffle is a world-class development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier. Truffle is widely considered the most popular tool for blockchain application development with over 1.5 million lifetime downloads.

Ethereum IDE plugin for hackable Atom editor. Compile smart contracts, deploy them to Ethereum networks. Efficient contract management interface. Integrated test suite for smart contracts.

testrpc is a Node. js based Ethereum client for testing and development. It uses ethereumjs to simulate full client behavior and make developing Ethereum applications much faster. It also includes all popular RPC functions and features (like events) and can be run deterministically to make development a breeze.

NPM: https://www.npmjs.com/get-npm
Atom: https://atom.io/
Truffle: http://truffleframework.com/
Test RPC: https://github.com/ethereumjs/testrpc

Source code : https://github.com/willitscale/learning-solidity

#solidity  #blockchain  #ethereum #truffle #TestRPc #atom