> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/cloud/blockchain/create-eth.md).

# สร้าง Blockchain ใช้เองกัน !

## 😢 ปัญหา

หลังจากที่เราได้เข้าใจเรื่องราวความเป็นมาทั้งหมดของ Blockchain แล้วเพื่อนๆหลายๆคนก็อาจจะอยากลองสร้าง Blockchain เป็นของตัวเองบ้าง เผื่อเอาไปทำเป็น ICO เอาไว้ขายไรงี้ แต่ถ้าบอกว่าจะให้เริ่มสร้างเซิฟเวอร์ Blockchain ที่เป็นของส่วนตัวเอาไว้ใช้เองแล้วล่ะก็ อาจจะมึนๆกันอยู่ว่าจะต้องเริ่มทำอะไรบ้าง ไหนจะต้องเตรียม setup cluster ติดตั้งนู่นนั่นนี่ ทำ network security บลาๆๆ ซึ่งกว่าจะลองผิดลองถูกจนมันออกมาใช้งานได้จริงๆก็อาจจะพบว่ามันสูบพลังชีวิตของเราไปอาจจะหลายวันไม่ก็เป็นเดือนเลยทีเดียว

จากปัญหาที่ว่ามาในบทความนี้ ผมจะพาจับมือสร้าง Blockchain ของเราเองตั้งแต่เริ่มต้นจนมันสามารถใช้งานได้ภายในเวลาไม่ถึง 10 นาทีให้ดูกันครัช

{% hint style="success" %}
**แนะนำให้อ่าน**\
บทความนี้เป็นหนึ่งในซีรี่ **Blockchain** ดังนั้นถ้าเพื่อนสนใจบทความทั้งหมดตั้งแต่เริ่มต้นว่า Blockchain คืออะไร แล้วจะเริ่มต้นสร้าง Blockchain เป็นของตัวเองได้ยังไง เพื่อนสามารถกดไปอ่านได้จากลิงค์นี้ครับ [👶 Blockchain](https://saladpuk.gitbook.io/learn/cloud/blockchain) และเราก็มีบทความเรื่องอื่นๆที่น่าสนใจซึ่งสามารถกดดูได้จาก Side menu เบย
{% endhint %}

## 😄 วิธีแก้ปัญหา

จากปัญหาที่ว่ามา วิธีแก้ง่ายๆก็คือ **ไปสร้างบนคลาว์ไงล่ะ** อย่างที่เคยเกริ่นไปในบทความเรื่องของคลาว์แล้วว่า ทุกปัญหา ทุกเทคโนโลยี ทุกความยุ่งยาก ส่วนใหญ่เราสามารถใช้คลาว์แก้ปัญหาเหล่านั้นได้ เพราะถ้าไม่ใช้คลาว์ เราจะต้องเจอปัญหานาๆประการ และ โดยเฉพาะเรื่อง security ซึ่งเราจะมั่นใจได้ขนาดไหนว่าของที่เรา setup มาโดยเฉพาะของที่เกี่ยวกับ public database มันจะไม่โดนมือดีเจาะเข้ามา? ซึ่งถ้าเราใช้คลาว์ปัญหาเรื่องเหล่านี้จะหมดไป (ถ้าคนตั้งเซิฟเวอร์ไม่ทำอะไรหลุดไปซะเองแบบที่เป็นข่าว ฮ่าๆ) ดังนั้นเราจะมาลองดูกันว่าถ้าอยากจะสร้าง Blockchain แล้วจะเริ่มต้นยังไงกันเลยดีกว่า

{% hint style="info" %}
**Azure Portal**\
เนื้อหาตรงจุดนี้จะต้องเข้าไปที่ทำที่เว็บ <https://portal.azure.com> นี้นะครับ ซึ่งเราต้องสมัครสมาชิกก่อน แต่ถ้าใครยังไม่ได้สมัครก็ไปสมัครให้เรียบร้อยแซ๊ร [(วิธีสมัครจิ้มตรงนี้)](https://saladpuk.gitbook.io/learn/cloud/azure101/register)
{% endhint %}

## 🤔 เริ่มยังไงดี ?

ในการสร้าง Blockchain บนคลาว์นี้มันมีให้เราเลือกสร้างได้หลายตัวเลย ซึ่งผมขอแนะนำตัวที่สร้างและเอาไปใช้งานได้ง่ายๆและเป็นกลุ่ม Blockchain ของค่าย **Ethereum** นะครับ

1.ในขั้นตอนแรกเราจะต้องไปทำการสร้าง Blockchain บนคลาว์เสียก่อน ดังนั้นทำการ login เข้าสู่ระบบให้เรียบร้อย แล้วที่เมนูด้านซ้ายให้กดที่ **`+ Createa resource`** แล้วพิมพ์ในช่องค้นหาว่า **`Ethereum on Azure`** แล้วกดปุ่ม Enter ลงไปได้เลย หรือจะลองค้นหาจากหมวดย่อยที่ชื่อว่า **`Blockchain`** ก็ได้ ตามรูปด้านล่าง

![ถ้ามองไม่ชัดให้กดที่รูปนะมันจะขยายใหญ่ให้](/files/-Lokh9rqVE2z7DbiUkRa)

2.ถัดมาเขาก็จะบอกรายละเอียดเกี่ยวกับ `Ethereum on Azure` ว่ามันคืออะไร จะไปศึกษาลองเล่นต่อได้ยังไง ราคาที่ต้องจ่ายต่อเดือนคิดยังไง บลาๆ ก็ถ้าอ่านจนหนำใจแล้วก็จิ้มปุ่ม **Create** เบาๆไป 1 ทีงับ

![](/files/-LpqxBakZbGhDz4RWmW_)

3.ถัดมาก็ใส่รายละเอียดของ Blockchain ของเรา โดยในขั้นตอนนี้มีให้กรอกเยอะหลายขั้นตอนมาก ดังนั้นเราจะลองไล่ดูทีละขั้นตอนละกันนะ

3.1.ในหมวด **Basics** ให้เราทำการใส่ข้อมูลต่างๆในช่องสีแดงลงไปให้ครบ โดยของที่สำคัญคือตัว **`VM username`** และ **`Password`** ซึ่งเราจะต้องทำการจดมันเอาไว้ เพื่อใช้ในการ login เข้าไปใน Cluster ของ Blockchain ของเรานั่นเอง ส่วน `Resource group` ถ้าใครยังไม่เคยสร้างให้กดเลือก Create new แล้วตั้งชื่ออะไรก็ได้ลงไป ตัว `Location` คือจะตั้ง Blockchain นี้ไว้ที่ data center โซนไหน ซึ่งเราใช้ในประเทศไทยก็เลือกเป็น **Southeast Asia** ไปครับมันจะได้เร็วๆ

![ถ้ามองไม่ชัดให้กดที่รูปเพื่อขยายได้นะ](/files/-LoIefsv0_Qv63GJc32W)

3.2.ในหมวด **Deployment regions** เขาจะถามถึงว่าแต่ละภูมิภาคจะให้สร้าง Cluster ไว้ที่ไหนบ้าง ซึ่งถ้าเราจะแค่ลองวิชาในช่อง `Number of region(s)` ก็เลือกแค่ 1 ก็พอ ส่วนช่อง `First region` ให้เลือกเป็นโซนเดียวกับในตอนแรก แต่ถ้าเราจะใช้งานจริงแนะนำว่าให้เลือกไว้เยอะๆหน่อยก็ดีครับ

![](/files/-LnggL5OitM4e_jrVs0S)

3.3.ในหมวด **Network size** เขาจะถามถึงว่าในแต่ละ Cluster จะให้มีเครื่องอยู่ในนั้นกี่ตัว และเครื่องจะให้มันแรงขนาดไหน ยิ่งแรงมาก็ยิ่งแพงนะ ซึ่งผมแค่จะสร้างเอาไว้ลองเล่นเฉยๆดังนั้นในรอบนี้ผมปล่อยไว้แบบนี้เลย แล้วกดตกลงไป ส่วนใครอยากดูเครื่องขนาดอื่นๆก็กดที่ Change size เพื่อลองเล่นดูได้นะ

![](/files/-LoklimenXMV5lJOoUFU)

3.4.ในหมวด **Ethereum Settings** เขาก็จะถามถึงการตั้งเริ่มต้นของระบบ ถ้ายังไม่เคยเล่น Ethereum มาก่อนแนะนำว่าให้ใส่ COnsortium Member Id เป็นอะไรก็ได้ระหว่าง 0-255 และในช่อง Admin Ethereum Address ก็ให้ใส่บัญชีเริ่มต้นของระบบ ซึ่งบัญชีนี้จะถูกตั้งค่าให้เป็น Admin ด้วย ซึ่งรหัสบัญชีจะต้องตรงตามมาตรฐานที่เขาตั้งไว้ด้วย ส่วนถ้าไม่รู้ใส่ค่าตามด้านล่างนี้ไปก่อนก็ได้

```
0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413
```

![](/files/-LvkBcwKIUObuv_OHf97)

{% hint style="success" %}
**แนะนำเพิ่มเติม**\
ในหัวข้อ 3.4 นี้ถ้าใครอยากจะตั้งค่า Gas หรือค่าอะไรต่างๆสามารถกดได้ที่ **Advanced Options** ได้เลยนะ
{% endhint %}

3.5.ในหมวด **Monitoring** เขาก็จะถามว่าจะให้มีการบันทึก Log ต่างๆว่ามีอะไรเกิดขึ้นในระบบบ้างหรือเปล่า ซึ่งในงานจริงก็ควรจะติดตั้งไว้นะเราจะได้ดูว่ามีอะไรแปลกๆเกิดขึ้นกับระบบของเราหรือเปล่า ดังนั้นในรอบนี้ผมจะปล่อยใช้ค่าที่เขาตั้งมาให้เลย

![](/files/-LpMmS0VItRPZuTN6uwf)

3.6.ในหมวด **Summary** เขาก็จะถามยืนยันว่าเราจะทำการสร้าง Blockchain โดยมีข้อมูลแบบนี้ถูกต้องหรือไม่ ซึ่งถ้าเราตรวจสอบแล้วถูกต้องก็กดปุ่ม `OK` ได้เลยครับ แล้วเขาจะให้เรากดให้ยอมรับเงื่อนไขต่างๆ แล้วก็กดปุ่ม `Create` เพื่อเริ่มทำการสร้างได้เลย

![](/files/-M1VKp3ypahgpjf3pMSB)

4..เรียบร้อยครับ ที่เหลือก็แค่รอให้มันสร้าง Blockchain Cluster จนเสร็จ เราก็จะได้ Blockchain มาเล่นกันแบ้วววว

![](/files/-LnNDWdnC_ChnvlxLvlE)

ในการสร้าง Blockchain มันจะต้องไปสร้างของขึ้นมาค่อนข้างเยอะมากราวๆ 40-50 นาทีเลย ดังนั้นเราอาจจะต้องเข้าไปดูใน Resource group ว่ามันสร้างเสร็จหรือยังด้วย ซึ่งใน Resource group มันแสดงผลว่ามี **`Deploying`** อยู่แสดงว่ามันยังสร้างไม่เสร็จนะ ตามรูปด้านล่างมันมี 2 deploying แสดงว่ายังไม่เสร็จครับ

![กินหมูกระทะรอเลยครับ มันใช้เวลาสร้างเกือบชั่วโมง](/files/-LsoE0jgnJ5UFzC19Yvd)

ถ้ามันสร้างทุกอย่างเสร็จแล้วเขาจะทำการส่งอีเมล์มาแจ้งเรา ตามอีเมล์ที่เรากรอกไว้ในตอนที่ 3.1 เลยครับ

![](/files/-LofEgl_sJKDoq8Ho3kZ)

## 🤔 สร้างเสร็จแล้วไงต่อ ?

หลังจากที่เขาสร้าง Blockchain Cluster ให้เราเสร็จแล้ว ถัดไปเราก็จะลองเข้าไปเล่นกันดูบ้างละ ซึ่งการที่เราจะเข้าไปเล่นนั้นมีหลายวิธีมากเลย แต่วิธีที่ง่ายที่สุดคือ เราจะลองเข้าไปสร้าง account ขึ้นมา 2 ตัวเล่นๆดูก่อนละกัน ซึ่งมันก็จะมีขั้นตอนย่อยๆตามด้านล่างนี้เลยครัช

### 🔥 ติดตั้งตัว Blockchain client

![](/files/-LokdAluyhcrcSlWZ1rA)

เพื่อความง่ายในการเข้าไปทำอะไรต่างๆกับ Blockchain ของเรา ผมแนะนำให้เราติดตั้งตัว client ที่ชื่อว่า **`MetaMask`** เอาไว้ในเครื่อง โดยสามารถเข้าไปติดตั้งเป็น chrome extension หรือ firefox เอาไว้ก็ได้นะครับ ซึ่งสามารถติดตั้งได้จากลิงค์นี้เลย [https://metamask.io](https://metamask.io/) ซึ่งพอเข้าไปก็กดติดตั้งให้เรียบร้อยครับ (ในตัวอย่างผมติดตั้งผ่าน Chrome นะ)

![](/files/-Lzbxsqw97kcQRAX3Zsx)

{% hint style="success" %}
**MetaMask**\
คือตัว client ที่เอาไว้ใช้งานกับ **Ethereum Blockchain** ซึ่งสามารถเอาไปใช้งานกับระบบ Ethereum ตัวจริงได้เลย และมันยังสามารถเลือกทำงานกับ Ethereum ที่คนอื่นสร้างไว้ได้ด้วย ดังนั้นเราเลยเลือกตัว client นี้มาใช้งานกับ Blockchain ของเรา
{% endhint %}

หลังจากติดตั้งไปเรียบร้อยที่ด้านบนขวาก็จะมี icon มาป่าโผล่ขึ้นมา ให้เรากดมันเข้าไป 1 ทีครับ ตามรูปเลย

![](/files/-LnFSvdYssEAts8LzP7X)

ถ้าใช้งานเป็นครั้งแรกเขาก็จะให้เราทำการตั้งค่าต่างๆก็กด **`Get Started`** ได้เลยครับ

![](/files/-LsotnEQSoKor_oqaalY)

ถัดมาให้เรากดสร้าง Wallet ไปเลยครับ

![](/files/-M-w96SP4KZgBgYtSemE)

ทำการตั้งรหัสผ่านให้เรียบร้อยอย่างน้อย 8 ตัวอักษร

![](/files/-LvfXn668nNlNZTbb8re)

ถัดมาเขาก็จะให้เราเก็บรหัสสำหรับ backup account ที่พึ่งสร้างนี้ไว้ ซึ่งนี่คือสิ่งที่เขาสร้าง กุญแจคู่มาให้แล้วเรียบร้อยแล้ว ส่วนเจ้า backup อันนี้เอาไว้สำหรับกู้คืนถ้าเราลืมของพวกนั้นเฉยๆ ถ้าใครจะใช้ account นี้ต่อก็จดไอ้ที่อยู่ในกรอบนี้ไว้ดีๆอย่าให้ใครเห็นนะ และถ้าเราข้ามหน้านี้ไปเราจะไม่เห็นมันอีกแล้วตลอดกาลด้วย

![](/files/-M0OG4I6q57EYnzVKIYF)

{% hint style="danger" %}
**อันตราย**\
ในการใช้งานจริง **ห้ามเอาข้อมูลพวกนี้ไปโชว์ให้คนอื่นดูเด็ดขาด** เพราะคนที่เห็นข้อมูลพวกนี้เขาสามารถเข้ามาใช้งานบัญชีเราได้ 100% เลย ไม่ต่างกับเราเอาเลขบัตรเครดิต + รหัสลับ ไปโพสต์โชว์บน Facebook เลยทีเดียว ที่ผมให้ดูได้เพราะผมไม่จะใช้มันอยู่แล้ว ส่วนคนที่จะใช้ต่อให้จดไอ้ข้อความในกรอบนั้นเก็บไว้ให้เรารู้คนเดียวนะครับ
{% endhint %}

ถัดมาเขาจะให้เราใส่ข้อความจากขั้นตอนเมื้อกี้เพื่อยืนยันว่าเราได้จดข้อความนั้นไปแล้วจริงๆ โดยให้เลือกข้อความไปใส่ให้ถูกต้องตามลำดับ แล้วกดถัดไป (ถ้าใครไม่ได้จดไว้ ให้กดปุ่ม Back ด้านบนได้ครับ)

![](/files/-LpTqyFPGpk8VJCBtsay)

เรียบร้อยพร้อมใช้งาน MetaMask กันแล้ว

![](/files/-M-YIZ37ZbCo6sT1EFj6)

เพียงเท่านี้เราก็จะมีบัญชีของ Ethereum ที่สามารถใช้งานจริงๆได้แล้ว รับเหรียญ **ETH** ได้จริงๆด้วยนะ (ไม่เชื่อลองโอนมาซิจ๊ะ รบกวนเมล์บอกผมด้วยฮ่าๆ)

![](/files/-Lqkzz0ZUFPhHCFEFH8j)

### 🔥 การเข้าใช้งาน Blockchain ของเราเอง

หลังจากที่ติดตั้ง **MetaMask** แล้ว ถัดไปเราก็จะเข้าไปเอา like เพื่อให้ตัว MetaMask นั้นทำการเชื่อมต่อเข้ามายัง Blockchain ที่เราสร้างขึ้นกัน โดยทำตามขั้นตอนด้านล่างนี้เลย

1.กดเข้าไปที่ `Resource group` ที่เราพึ่งสร้างไป ดังนั้นจากข้อ 3.1 ตั้งชื่อ resource group อะไรไว้ก็ให้กดเข้าไปจากชื่อนั้นเลยนะ ซึ่งของผมตั้งชื่อไว้ว่า ***saladpuk-demo*** ดังนั้นผมก็จะเข้าไปตามชื่อนั้นตามรูปเลย

![](/files/-LoEby2fCVLIWSclLcBM)

2.ถัดมาที่ด้านบนสุดให้กดที่ **`Deployments`** (ถ้ามันมีสถานะ **Deploying** อยู่แสดงว่ามันยังไม่เสร็จนะให้รอต่อไปหรือลองกด Refresh ดูก็ได้)

![](/files/-LnIE2QEBooRFpaxus_P)

3.ถัดมาให้เลือกหาตัวที่ชื่อยาวที่สุดและใช้เวลานานที่สุดครับ ส่วนใหญ่น่าจะเป็นตัวล่าสุดตามรูปเลย

![](/files/-LsoRGTHFvB-pp1ae2P5)

4.คราวนี้ในเมนูให้เลือก **`Outputs`** แล้วเราจะเห็นรายละเอียดการเข้าใช้งานแต่ละส่วนของ Blockchain ของเรา ซึ่งสิ่งที่เราต้องการก็คือลิงค์ที่จะเอาไว้ MetaMask เข้ามาใช้งานผ่านวง Blockchain ที่เราสร้างไว้ ดังนั้นให้กดคัดลอกด้านหลังสุดของช่องที่ชื่อว่า **ethereum\_rpc\_endpoint** แล้วเอาเก็บไว้ในใช้ในขั้นตอนถัดไปได้เลยครับ

![](/files/-Lw4kc1y-0KtXU2vJuOg)

### 🔥 ตั้งค่า MetaMask ให้มาใช้ Blockchain ของเรา

หลังจากที่ได้ลิงค์ของ Blockchain ส่วนตัวของเรากันแล้ว ถัดไปเราก็จะทำการตั้งค่าให้ MetaMask ชี้มายังวงของ Blockchain ตัวนี้กัน ตามขั้นตอนด้านล่างเลย

1.เข้าไปที่ตัว icon หมาป่าด้านบนขวา แล้วเลือก `เครื่อขาย Main Net` แล้วแลือก `กำหนดค่า RPC`

![](/files/-LpD6B92WErVYAPHLkdj)

2.ในการตั้งค่าให้ใส่ชื่อ network ลงไปเป็นอะไรก็ได้เพื่อเป็นชื่อย่อขอ network ที่เราจะต่อเข้าไป ส่วนในช่อง `New RPC URL` ให้เอาลิงค์ที่ได้จากขั้นตอนก่อนหน้าวางลงไปแล้วกด **`บันทึก`** ได้เลย

![](/files/-LpTraxMWiLyJgc_UojB)

3.เพียงเท่านี้ MetaMask ก็จะมาใช้งาน Blockchain ที่เราสร้างไว้เรียบร้อยแล้วครับ และตัว MetaMask ก็จะสร้างบัญชีใหม่ให้เราโดยอัตโนมัติชื่อ Account 1 ตามรูปด้านล่างเลย

![](/files/-LofSTA7C1IoQBzJ5AIf)

### 🔥 สร้างบัญชีใหม่

คราวนี้เราก็จะลองสร้างบัญชีใหม่เข้ามาใน Blockchain ของเรากันดูบ้าง โดยมีขั้นตอนตามนี้เลย

1.ที่ตัว MetaMask ให้กดที่ icon ด้านบนขวา แล้วเลือก **`+ สร้างบัญชี`** ตามรูปด้านล่าง

![](/files/-LnNasKks0lM4skyKJQc)

2.ทำการตั้งชื่อบัญชีให้จำง่ายๆตามใจชอบ แล้วกดสร้างได้เลย

![](/files/-LrC-BoAtEd58COMZLmo)

3.เรียบร้อยแล้ว เพียงเท่านี้เราก็มีบัญชี 2 ตัวที่จะเอาไว้ลองเล่นกันละ

![](/files/-LnrRLggRrYKE-86e6NE)

## 🎯 บทสรุป

จากบทความนี้เราก็จะเห็นแล้วว่าการสร้าง Blockchain ของตัวเองนั้นจริงๆไม่ใช่เรื่องยากเลย เมื่อเทียบกับการที่เราจะต้องมานั่งติดตั้งเซิฟเวอร์ลง security เอง เพราะการใช้งานบทคลาว์นั้นสามารถทำให้เราได้ทุกอย่างเพียงแค่คลิกไม่กี่ทีเท่านั้น ส่วนตัว client เราก็ใช้ MetaMask เพื่อเข้าไปใช้งานตัว Ethereum ของเราได้แบบง่ายๆอีกด้วย ดังนั้นเดี๋บวบทความถัดไปเราจะมาลองเขียนโปรแกรมหรือที่เรียกว่า **`Smart Contracts`** ให้กับ Blockchain ของเรากันบ้างนะ
