---
# System prepended metadata

title: 第五週實習日誌(9/27-10/1)
tags: [區塊鏈, 實習日誌]

---

# 第五週實習日誌(9/27-10/1)
[TOC]

###### tags: `實習日誌` `區塊鏈`
---
## 2021.09.27(一)
----
* Ｇoal :a: 
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg)
   *  解決storage和memory在gas消耗上問題
   

* Today Finished :100:
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg)
   *  [HyperLedger Fabric文件](https://hackmd.io/NO1UAwKsT3-0-yP6645KTQ)

   
* To be developing :+1:
   * 加速 run 一個 ethereum node
   
---
## 2021.09.28(二)
----
* Ｇoal :a: 
   *  成功 run ethereum node 在 vmware
   *  解決storage和memory在gas消耗上問題
   

* Today Finished :100:
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
       
       * geth---> rpc ipc
      
   *  [成功在公司run ethereum node 也寫了詳細文件](https://hackmd.io/NO1UAwKsT3-0-yP6645KTQ)

   
* To be developing :+1:
  * [私有鏈監控](https://dotblogs.com.tw/explooosion/2018/07/30/200754)
  * 我們一開始有開了兩台 AWS 機器，目前都在其中一台練習，另外一台現在也仿造之前的步驟裝好環境，使用相同的 Genesis.json（一定要一模一樣）檔案建立、開啟 Private Chain，並建立好一個帳號，然後先不要進行挖礦。
 
---
## 2021.09.29(三)
----
* Ｇoal :a: 
    *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
    *   [私有鏈監控](https://dotblogs.com.tw/explooosion/2018/07/30/200754) 
   

* Today Finished :100:
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
       
       
   * 智能合約上已經可以寫kecakk加密,可能不需要另外加密
   * 私有鏈監控開發+文件
   * Struct
一般來講uint size變小 不會省多少gas
但在struct裡 gas fee費用—> uint8 < uint16 < uint32
"“Struct packing more tightly”—>to save gas

   
* To be developing :+1:
  * [私有鏈監控](https://dotblogs.com.tw/explooosion/2018/07/30/200754)

----

## 2021.09.30(四)

----
* Ｇoal :a: 
    *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
    *   [私有鏈監控](https://dotblogs.com.tw/explooosion/2018/07/30/200754) 
   

* Today Finished :100:
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
       
       
   * 智能合約上已經可以寫kecakk加密,可能不需要另外加密
   * 私有鏈監控開發+文件
   

   
* To be developing :+1:
  * NFT寫在私鏈上

----
## 2021.10.01(五)

----
* Ｇoal :a: 
    *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
    *   [私有鏈監控](https://dotblogs.com.tw/explooosion/2018/07/30/200754) 
    *   [web3.0.js開發文件](https://hackmd.io/TDxW3ZYxQkS3osbh3ghvsQ)
   

* Today Finished :100:
   *  [完成solidity開發文件](https://hackmd.io/hECPn0QaQxS9S11ISlO4cg) 
   *    [web3.0.js開發文件](https://hackmd.io/TDxW3ZYxQkS3osbh3ghvsQ)
   
       
       
 

   
* To be developing :+1:
  *    [web3.0.js開發文件](https://hackmd.io/TDxW3ZYxQkS3osbh3ghvsQ)
  *    react.js開發文件
  *    如何讓 nodes 與 blockchain 溝通(read/write in blockchain)
   Ethereum is made up of nodes that all share a copy of the same data
   內部:
   自己set up your own private ethereum node
   host your own Ethereum node as a provider.
   外部:
   Web3 Providers API—>infura
   tells our code which node we should be talking to handle    our reads and writes
   like setting the URL of the remote web server for your      API calls in a traditional web app
  * ABI
     * Web3.js 和 智能合約互動 需 (1)address (2)ABI
     * var myContract = new web3js.eth.Contract(myABI, myContractAddress);
      // Instantiate myContract
  * Dapp後端

     * 撰寫智能合約原始碼(solidity)
     * 智能合約要先compile成bytecode(binary code)—>EVM才可執行
     * deploy合約—>把bytecode(binary code)透過RPC 或 IPC儲存在鏈上(透過一個transaction)—>最後取得獨一無二的transaction address
     * 若要寫程式呼叫這個智能合約,要把資料發送到transaction address
     * Ethereum node會根據輸入資料,決定要執行智能合約中哪一個function和輸入參數
  * Dapp前端
    * web3.js + RPC接上ethereum
  * 將Host在本地端 ethereum node 去讀取智能合約ABI  
