Hiện nay công nghệ BlockChain đang phát triển mạnh mẽ trên mọi lĩnh vực.Blockchain đã và đang đem lại hiệu quả thiết thực do vậy nó được áp dụng rất nhiềuTrên cơ sở các kiến thức được họ
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI: XÂY DỰNG WEBSITE MUA BÁN LINH KIỆN ĐIỆN TỬ SỬ DỤNG
CÔNG NGHỆ BLOCKCHAIN
Sinh viên thực hiện : PHẠM GIA HUY
NGUYỄN ĐĂNG ANH TÚ Giảng viên hướng dẫn: THS.NGUYỄN NGỌC HUYỀN TRÂN
Lớp : 19IT3
Trang 2TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
Trang 3Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến các thầy cô KhoaKhoa học máy tính đã dạy chúng em những kiến thức hay, và các thầy cô trong bộmôn chuyên đề (4) đã truyền đạt những kiến thức chuyên ngành bổ ích cũng như các
kỹ năng trong cuộc sống
Đặc biệt chúng em xin cảm ơn sâu sắc tới giáo viên hướng dẫn THS.NGUYỄNNGỌC HUYỀN TRÂN đã tận tình hướng dẫn, góp ý theo sát giúp chúng em có thểhoàn thành đồ án tốt nhất
Chúng em xin cảm ơn tới gia đình đã luôn động viên tinh thần, tạo động lựccho chúng em trong quá trình thực hiện đồ án Cảm ơn tất cả bạn bè, tập thể lớp 19IT3
đã cùng chia sẻ, góp ý trong quá trình thực hiện
Xin chân thành cảm ơn!
Trang 4MỞ ĐẦU
1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
Công việc kinh doanh buôn bán đã xuất hiện từ rất lâu, trải qua mỗi giai đoạnlịch sử nó mang một hình thức đặc thù riêng Trước kia, khi các công cụ hỗ trợ côngviệc mua bán chưa phát triển mạnh, thì người kinh doanh mua bán chỉ diễn ra dướihình thức mua bán trực tiếp Từ khi khoa học công nghệ phát triển, nó đã tạo ra pháttriển các loại hình thức mua bán mới, điển hình là mua bán trực tuyến Hình thức muabán trực tuyến hỗ trợ đắc lực cho người kinh doanh tiếp xúc với được nhiều kháchhàng, còn khách hàng thì công việc mua bán được diễn ra nhanh chóng, thuận lợi, tiếtkiệm được thời gian Và giờ đây giao dịch với công nghệ blockchain còn nhanh và bảomật hơn nữa
Hiện nay, Thương Mại Điện Tử (TMĐT) đang được nhiều quốc gia quan tâm, coi
là một trong những động lực phát triển của nền kinh tế TMĐT đem lại những lợi íchtiềm tàng, giúp doanh nghiệp thu được thông tin phong phú về thị trường và đối tác,giảm chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ khách hàng
Hiện nay công nghệ BlockChain đang phát triển mạnh mẽ trên mọi lĩnh vực.Blockchain đã và đang đem lại hiệu quả thiết thực do vậy nó được áp dụng rất nhiềuTrên cơ sở các kiến thức được học trong Nhà trường và quá trình tìm hiểu cácwebsite trong thực tế, chúng em đã quyết định chọn đề tài “Xây dựng ứng dụng kinhdoanh linh kiện điện tử sử dụng công nghệ blockchain” Với mục tiêu:
Phục vụ tốt hơn nhu cầu của khách hàng và quản lý cửa hàng trong hoạt độngkinh doanh
Khách hàng chỉ cần các thao tác đơn giản trên website là có thể đặt hàng và thanhtoán được ngay
2 Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Trong quá trình khảo sát, chúng em nhận thấy hầu hết các cửa hàng bán linh kiệnđiện tử cho học sinh sinh viên rất hiếm gặp, các linh kiện ở đây là những linh kiệntrong ngành điện tử môn Vi Điều Khiển của sinh viên Vì vậy các sinh viên phải tìmkiếm và đi khá xa để có thể thấy được một cửa hàng; và có cửa hàng không có linhkiện mà họ cần…Việc phát triển một ứng dụng kinh doanh linh kiện điện tử sẽ giúpcác bạn học sinh, sinh viên hoặc những người quan tâm
Và hiện tại Blockchain cũng đang là một công nghệ đang được nhiều công ty lớn
áp dụng và cũng là công nghệ hot nhất hiện nay chúng em rất muốn được tiếp xúc sớmvới công nghệ này
3 Mục tiêu
Trang 5Mục tiêu của đồ án cơ sở này là nhằm xây dựng một ứng dụng kinh doanh linhkiện điện tử, có thể:
- Tìm hiểu các hoạt động kinh doanh trong thực tế.
- Tìm hiểu cách thức xây dựng một ứng dụng trên website.
- Xây dựng thành công ứng dụng mua bán linh kiện điện tử.
- Tìm hiểu cách thức xây dựng ứng dụng bán hàng sử dụng công nghệ block
chain
- Tìm hiểu công nghệ Blockchain
- Tìm hiểu các ngôn ngữ lập trình: Next.js, Polygon, Solidity, Hardhat.
- Thiết kế và xây dựng hệ thống, biểu đồ use-case, Biểu đồ hoạt động,…
- Tiếp đến, chúng em sẽ nghiên cứu công nghệ phát triển ứng dụng Website
Trang 6Ngoài phần mở đầu và kết luận,bố cục của đề tài còn có thêm 3 chương
Chương 1: Cơ sở lý thuyết tập trung tìm hiểu các cơ sở lý thuyết liên quan, các
công cụ hỗ trợ để xây dựng ứng dụng của đề tài như:
Chương 2: Phân tích và thiết kế tập trung phân tích các yêu cầu,thuật
toán cần xử lý ứng dụng của đề tài.Thiết kế cơ sở dữ liệu Đặc tả ca sử dụng xử
lý các chức năng như …Điền Thêm… Gồm các danh mục:
- Giới thiệu ứng dụng
- Giới thiệu các chức năng chính của ứng dụng
- Phân tích thiết kế hệ thống
- Thiết kế cơ sở dữ liệu
Chương 3: Xây dựng và triển khai chương trình tập trung chủ yếu vào
các modul chính của chương trình,cài đặt và xây dựng chương trình
Cuối cùng là phần kết luận và hướng phát triển của đề tài
Trang 7
NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 2021 Giảng viên hướng dẫn
Trang 8MỤC LỤC
Trang
LỜI CẢM ƠN
MỞ ĐẦU
NHẬN XÉT
MỤC LỤC
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH
DANH MỤC CỤM TỪ VIẾT TẮT
Chương I CƠ SỞ LÝ THUYẾT 1
1.1 Unifield Modeling Language – UML 1
1.2 Blockchain 1
1.2.1 Các đặc tính của blockchain 2
1.2.2 Nguyên lý hoạt động và ứng dụng của Blockchain 6
1.3 Smart contract & Solidity 7
1.3.1 Smart contract 7
1.3.2 Solidity 11
1.4 React.js 11
1.4.1 ReactJS là gì 12
1.4.2 JSX13 1.4.3 Virtual DOM 14
1.4.4 Ưu điểm của ReactJS 15
1.5 Web 3.0 16
1.5.1 Web 3.0 là gì? 16
1.5.2 Đặc điểm chính của Web 3.0 17
1.5.3 Web 3.0 hoạt động như thế nào? 17
1.5.4 Ưu và nhược điểm của Web 3.0 18
1.6 Metamask 18
1.7 NodeJS 19
1.7.1 Node.js hoạt động như thế nào? 20
1.8 Hardhat 20
1.8.1 Cài đặt 21
Chương II PHÂN TÍCH VÀ THIẾT KẾ 24
2.1 Yêu cầu bài toán, khảo sát nghiệp vụ 24
2 1.1 Yêu cầu bài toán 24
2 1.2 Các đối tượng tham gia vào hệ thống 24
2 1.3 Xác định các Actor và Usecase của các tác nhân 24
2.2 Đặc tả UseCase 25
2.3 Biểu đồ UC chi tiết 27
2.4 Biểu đồ hoạt động 30
2.5 Biểu đồ trình tự 33
Chương III TRIỂN KHAI XÂY DỰNG 36
3.1 Màn hình chính 36
3.2 Đăng nhập 36
3.3 Trang danh sách sản phẩm được bán 38
3.4 Trang danh sách mua 38
3.5 Trang mua bán và thanh toán 38
Trang 93.6 Trang thêm Linh kiện 39
3.7 Thu phí khi đăng sản phẩm 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
Kết Luận 41
Hướng phát triển 41
TÀI LIỆU THAM KHẢO 42
Trang 10DANH MỤC CÁC BẢNG
Bảng 2 1 Bảng users 37
Bảng 2 2 Bảng messages 37
Bảng 2 3 Bảng friends 37
Bảng 2 4 Bảng participants 38
Bảng 2 5 Bảng conversation 38
Bảng 2 6 Bảng attachments 39
Trang 11DANH MỤC CÁC HÌ
Hình 1 1: Chuỗi khối 10
Hình 1 2: Quy trình mã hóa khối 11
Hình 1 3: Mô hình sổ cái phân tán 12
Hình 1 4: Liên kết block 12
Hình 1 5: Mạng lưới phi tập trung 13
Hình 1 6: Cơ chế đồng thuận phi tập trung 14
Hình 1 7: Thuật toán mã hoá 15
Hình 1 8: Nguyên lý hoạt động 15
Hình 1 9: Quá trình trao đổi hợp đồng 17
Hình 1 10: Quá trình thanh toán bằng hợp đồng thông minh 18
Hình 1 11: Lợi ích của Smart contract 19
Hình 1 12: React 21
Hình 1 13: DOM 22
Hình 1 14: JSX code style 23
Hình 1 15: Web 3.0 25
Hình 1 16: Metamask extension 27
Hình 1 17: Nodejs 29
Hình 1 18: Cách Noderjs hoạt động 30
Hình 1 19: Website Hardhat 31
Y Hình 2 1: UC tổng quan 37
Hình 2 2: UC Đăng nhập, đăng ký 38
Hình 2 3: UC nhập xuất hàng 39
Hình 2 4: UC thanh toán 40
Hình 2 5: UC thêm linh kiện 40
Hình 2 6: Biểu đồ đăng kí thành viên 41
Hình 2 7: Biểu đồ đăng nhập 41
Hình 2 8: Thêm linh kiện 42
Hình 2 9: Hoạt Động Thanh Toán 43
Hình 2 10 Biểu đồ TT đăng kí 44
Hình 2 11: Biểu đồ trình tự mua LK 44
Hình 2 12: Biểu đồ tuần tự thêm Lk 45
Hình 3 1 Màn hình chính 46
Hình 3 2 Giao diện đăng nhập bằng ví metammask 47
Hình 3 3: Danh sách sản phẩm được bán 48
Hình 3 4: Trang danh sách mua 48
Hình 3 5: Trang mua và thanh toán 49
Hình 3 6: Thêm Sản Phẩm 49
Hình 3 7: Trang thanh toán sản phẩm được đăng lên bán 50
Trang 13Chương I CƠ SỞ LÝ THUYẾT
1.1 Unifield Modeling Language – UML.Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language - UML) làmột ngôn ngữ mô hình hóa thống nhất, có phần chính bao gồm những ký hiệu hìnhhọc, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu tả các thiết
kế của một hệ thống UML là một ngôn ngữ để đặc tả, trực quan hóa, xây dựng, UML
có thể được sử dụng làm công cụ giao tiếp giữa khách hàng, nhà phân tích, nhà thiết kế
Blockchain được tạo thành từ các “khối”- block, mỗi khối chứa một phần dữ liệu
Dữ liệu gần nhất luôn được thêm vào ở đầu chuỗi, trong khi dữ liệu lâu đời nhất đặt ở
phía dưới đáy, bên trong cái được gọi là “Khối nguyên thủy - genesis block”.
Các block được liên kết với nhau bằng mật mã (các thuật toán phức tạp), đó làcách chuỗi được hình thành Toán học liên quan có nghĩa là bất kỳ thay đổi nào đối với
dữ liệu hiện tại đều phá vỡ chuỗi, do đó, mọi cố gắng thay đổi đều có thể bị phát hiện
và từ chối bởi hệ thống
Hình 1 1: Chuỗi khối
Trang 14Hình 1 2: Quy trình mã hóa khối
Có một số định nghĩa khác về Blockchain như sau:
Blockchain về cơ bản là một cơ sở dữ liệu được phân phối của các bản ghi hoặc
sổ cái công khai của tất cả các giao dịch hoặc các sự kiện kỹ thuật số đã được thựchiện và chia sẽ giữa các bên tham gia Mỗi giao dịch trong sổ cái công khai được xácminh bởi sự đồng thuần của đa số những người tham gia trong hệ thống Ngoài ra, mộtkhi đã nhập thông tin không bao giờ có thể bị xóa bỏ (Crosby và cộng sự, 2015)
Công nghệ Blockchain sử dụng mã hóa Public key và hàm hash để đảm bảo tính minh bạch, toàn vẹn và riêng tư của dữ liệu; sử dụng mỗi một nút trong mạng như một Client và cũng là một Server để lưu trữ bản sao ứng dụng, và áp dụng các nguyên tắc đối với các nút tham gia vào hệ thống đều phải tuân thủ luật chơi đồng thuận (Savjee, 2017), (IBM Think Academy, 2016)
1.2.1 Các đặc tính của blockchain.
a Cơ sở dữ liệu phân tán (phi tập trung)
Hầu hết các Blockchain được thiết kế như một cơ sở dữ liệu phi tập trung thay vìquản lí sổ cái tập trung như ngân hàng hoặc một tổ chức nào khác Các “tài sản” kỹthuật số được phân phối thay vì sao chép hoặc chuyển giao trên Blockchain Nhờ đó,mọi người trong cùng chuỗi có thể kiểm soát thông tin, dữ liệu có trong khối
Hình 1 3: Mô hình sổ cái phân tán
Trang 15b Tính bền vững và tăng cường bảo mật
Trong một Blockchain, mỗi khối đều có hàm băm riêng biệt cũng như tham chiếuđến hàm băm của khối nằm trước nó Vì vậy, việc khai thác một chuỗi khá phức tạp,đặc biệt là trên các chuỗi lớn
Những người khai thác chuỗi này sẽ sử dụng phần mềm chuyên dụng để giảiquyết các vấn đề liên quan đến số học vô cùng phức tạp, khi muốn tìm ra một noncetạo ra một hàm băm được chấp nhận Bởi, mỗi nonce chỉ có 32bit trong khi mỗi hàmbăm là 256bit, nên có khoảng bốn tỷ tổ hợp nonce và hàm băm cần phải được tìmkiếm trước khi tìm ra “nonce vàng” để khối của họ được thêm vào chuỗi
Ngoài ra, nếu có bất kì sự thay đổi nào đó ở một khối thì tất cả các khối ở sau đều
bị ảnh hưởng vì khối sau liên kết với khối trước bằng mã băm
Dựa vào điều đó có thể xảy ra các cuộc tấn công hệ thống bằng cách thay đổi cáckhối đến khối cuối cùng tuy nhiên chỉ là có thể nhưng thực tế nó lại không thể
Tại sao?
Mô hình trong blockchain là phi tập trung, mỗi máy được xem là một Node hệthống càng nhiều Node thì càng mạnh mẽ
Hình 1 4: Liên kết block
Trang 16Hình 1 5: Mạng lưới phi tập trung
Mô hình này dựa trên Cơ chế đồng thuận phi tập trung Khi một giao dịch đượcdiễn ra và được thêm vào chuỗi thì nó cần phải được sự chấp nhận của đa số Node(máy đào) trong hệ thống này (ở đây là các Node)
Hình 1 6: Cơ chế đồng thuận phi tập trung
Vì vậy trên lý thuyết hệ thống này có thể xảy ra cuộc tấn công 51%
Khi một hacker hoặc tổ chức cá nhân có số lượng Node trên hệ thống này chiếmđến 51% thì mọi giao dich sẽ bị thao túng dựa vào cơ chế đồng thuận đại đa số
Giải quyết câu hỏi tại sao ở trên thì một hacker có thể sửa đổi một dãy block tuynhiên trên hệ thống này mỗi cá nhân đều sở hữu một bản sổ cái vì vậy để hoàn toànthay đổi các khối này thì phải thay đổi 51% Node trên hệ thống lúc này thông tin sửađổi đó mới được chấp nhận
Trang 17Điều này chỉ diễn ra trên lý thuyết còn thực tế để tấn công hệ thống trên là một điều không thể
c Tính minh bạch
Các block được nối tiếp nhau tạo thành chuỗi, một khi một block đã được cậpnhật, bạn sẽ không thể xóa thông tin trong đó đi Blockchain hoạt động dựa trênnguyên tắc ghi chép phổ biến trong tài chính là không được phép xóa bỏ dữ liệu đã cậpnhật, thay vào đó cập nhật thêm các block mới, với nội dung cần chỉnh sửa và tên tuổicủa người chỉnh sửa Điều này vừa giúp rõ ràng thông tin lẫn sự toàn vẹn của các dữliệu đã được tạo Blockchain minh bạch để mỗi người có thể theo dõi dữ liệu nếu họmuốn
d Tính bất biến
Một khi dữ liệu được đưa vào một khối thì sẽ được mã hóa bằng thuật toán mãhóa băm kết hợp RSA security (mã hóa bất đối xứng) đảm bảo rằng dữ liệu không thểsửa đổi
Trang 18Hình 1 7: Thuật toán mã hoá
1.2.2 Nguyên lý hoạt động và ứng dụng của Blockchain.
Hình 1 8: Nguyên lý hoạt động
Ứng dụng
Blockchain hiện đang được ứng dụng vào rất nhiều lĩnh vực trong đời sống
- Ứng dụng của blockchain trong thương mại điện tử
- Ứng dụng của Blockchain trong chuỗi cung ứng
- Ứng dụng của blockchain trong dịch vụ tài chính, ngân hàng
Trang 19- Ứng dụng của blockchain trong nông nghiệp
- Ứng dụng của blockchain trong y tế
- Ứng dụng của Blockchain trong Internet of Things (IoT)
1.3 Smart contract & Solidity.
1.3.1 Smart contract.
Hợp đồng thông minh được Nick Szabo định nghĩa là một công cụ kết hợp giaothức và giao diện khách hàng giúp chính thức hóa và bảo mật mạng máy tính Sử dụngtrong nhiều lĩnh vực liên quan đến các thỏa thuận hợp đồng
Bitcoin (Một loại tiền mã hóa dưới dạng phần mềm mã nguồn mở, giúp trao đổitrực tiếp bằng Internet) đã đặt ra nền tảng cơ bản để thiết lập Smart Contract Thếnhưng hợp đồng thông minh chỉ thực sự được thỏa mãn mọi yêu cầu và được nhiềungười sử dụng khi Ethereum (Nền tảng điện toán có tính chất phân tán, công cộng, mãnguồn mở) ra đời
Toàn bộ quá trình được thực hiện tự động bởi các bên mà không cần gặp mặttrực tiếp và không có sự can thiệp từ bên ngoài Phương thức thiết lập hợp đồng mớinày vẫn đảm bảo tính minh bạch, có thể truy xuất, đảo chiều và không bị can thiệp từbên ngoài
Bảng 1 1: Bảng so sánh hợp đồng điện tử và hợp đồng truyền thống
Hợp đồng thông minh Hợp đồng truyền thống
Điểm giống nhau giữa hợp đồng truyền thống và hợp đồng thông minh nằm ở chỗ các điều khoản và hình phạt đều được nêu rõ ràng
- Được tạo ra bởi các chuyên gia pháp lý.
- Biên soạn một lượng lớn tài liệu.
- Cần phải có bên thứ ba để thực thi.
- Mất khá nhiều thời gian để thỏa thuận và đi
đến ký kết
- Được tạo bởi ngôn ngữ lập trình nhưC++, Go, Python, Java trên hệ thống máy tính
- Toàn bộ mã được thực hiện bởi hệthống sổ cái phân tán Blockchain
- Không cần đến bên thứ ba trung gian
Trang 20- Mất nhiều chi phí và phải dựa vào hệ thống
tư pháp để giải quyết khi có sự cố
Cách hoạt động
Smart Contract chỉ tự động thực hiện khi những điều khoản đã được lập trình sẵn
từ trước Các điều khoản trong hợp đồng sẽ được viết bằng ngôn ngữ lập trình, sau đó
mã hóa và chuyển vào một block thuộc Blockchain Sau đó, hợp đồng thông minhđược phân phối và sao chép lại bằng các Node đang hoạt động tại nền tảng đó
Sau khi có lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng điều khoản.Đồng thời, tự động kiểm tra quá trình thực hiện những cam kết, điều khoản
Vì hệ thống hoạt động dựa trên câu lệnh “If - Then” và hàng trăm người giám sátnên sẽ không xảy ra lỗi sai trong quá trình giao nhận
Hình 1 9: Quá trình trao đổi hợp đồng
Ví dụ: Nếu bạn muốn mua một chiếc xe từ công ty tôi và trả tiền điện tử qua hệthống Blockchain
Biên nhận sau đó sẽ được đưa vào hợp đồng thông minh của công ty và có tráchnhiệm giao mật mã và chiếc xe cho bạn với đúng thời hạn đã nêu trong hợp đồng.Nếu mật mã của công ty không giao đúng thời hạn thì tiền sẽ được chuyển lạivào tài khoản bạn Nếu đến trước thời hạn thì hệ thống sẽ giữ lại cả tiền của bạn vàmật mã của công ty tôi để chuyển vào đúng ngày
Trang 21Hình 1 10: Quá trình thanh toán bằng hợp đồng thông minh
Lợi ích của Smart contract
Smart Contract là một ứng dụng tận dụng tất cả những điểm mạnh của công nghệBlockchain mang lại vì vậy nó có rất nhiều lợi ích, dưới đây là các lợi ích chính củanó
Tự động hóa: Quá trình được thực hiện hợp đồng là tự động bằng Đồngthời bạn chính là người tạo hợp đồng, không còn phải phụ thuộc vào môigiới, luật sư hay bất kì ai khác Như vậy, nó cũng xóa bỏ những nguy cơđến từ bên thứ ba
Không bị thất lạc: Tài liệu của bạn được mã hóa trên một cuốn sổ cáichung, có nghĩa là không thể bị thất lạc
Trang 22Hình 1 11: Lợi ích của Smart contract
An toàn: Blockchain sẽ đảm bản sự an toàn cho tài liệu của bạn Khôngmột hacker nào có thể đe dọa đến chúng
Tốc độ: Hợp đồng thông minh sử dụng các ngôn ngữ lập trình, code phầnmềm để tự động hóa các điều khoản, tiết kiệm hàng tiếng đồng hồ chonhững công việc không cần thiết
Tiết kiệm: Hợp đồng thông minh tiết kiệm cho bạn hàng đống tiền nhờxóa bỏ khâu trung gian
Chính xác: Các hợp đồng tự động không chỉ nhanh và rẻ hơn mà còn tránhđược các lỗi thường thấy khi viết giấy tờ
Ưu nhược điểm
a Ưu điểm
Ứng dụng của hợp đồng thông minh có thể được sử dụng vào nhiều lĩnhvực khác nhau: Logistic, ngân hàng, bất động sản, bầu cử,
Tự do: Không nhận sự quản lý của bất kỳ một cơ quan nào
Giảm thiểu rủi ro đến từ bên thứ ba
An toàn và minh bạch
Tiết kiệm và nhanh chóng
b Nhược điểm
Rủi ro từ Internet: Có thể bị tấn công hoặc khai thác bởi các hacker nếu để
lộ những thông tin quan trọng
Không nhận được quyền pháp lý: Quyền lợi có thể không được bảo vệ vìchưa có chính sách
Yêu cầu cao về trình độ triển khai của các lập trình viên và hệ thống Từ đó,chi phí để trả cho họ và cơ sở hạ tầng là không hề nhỏ
Trang 23c Biến
Solidity yêu cầu khai báo biến và kiểu dữ liệu trước khi sử dụng.
VD: uint public numberOne = 20;
d Structs
Cho phép tạo các kiểu dữ liệu phức tạp hơn có nhiều thuộc tính Kiểu cấu trúc này tương tự như trong ngôn ngữ lập trình C
e Array
Có hai loại mảng trong Solidity: mảng cố định và mảng động
Bạn có thể khai báo một mảng như là public, và Solidity sẽ tự động tạo ra mộtphương thức getter cho nó Cú pháp như sau: Person[] public people;
Các hợp đồng khác sau đó sẽ có thể đọc (nhưng không viết) cho mảng này Vìvậy, đây là một mô hình hữu ích để lưu trữ dữ liệu công cộng trong hợp đồng của bạn
1.4 React.js.
Trang 24Hình 1 12: React
Đối với một web developer, nếu bạn muốn tìm kiếm một công việc có giờ giấclinh hoạt, được trả một mức lương cao, thì điều đó hết sức dễ dàng để biến thành sựthật Tuy nhiên, cái khó ở chỗ là bạn cần phải xác định được đâu là những kỹ năng cầnthiết và quan trọng để bạn tìm kiếm được một công việc phù hợp với nhu cầu mongmuốn của bạn
Nếu bạn đang lên kế hoạch học xây dựng website để tìm kiếm thu nhập cho bảnthân, ít nhiều gì bạn cũng biết bạn cần phải học những thứ như là HTML, CSS vàJavaScript Nhưng nếu bạn chỉ dừng lại ở những kiến thức này thôi thì chắc chắn bạn
sẽ không thể apply vào bất kỳ một công ty phát triển website nào bởi vì những yêu cầuhiện nay đòi hỏi bạn phải biết sử dụng thêm những framework hay thư viện để tăng tốcquá trình phát triển website hơn nữa
Chắc hẳn bạn đã từng nghe đến ReactJS? Nhưng liệu bạn đã biết chính xácReactJS là gì? Nó có phải là một ngôn ngữ lập trình khác không? Để trả lời cho nhữngthắc mắc của bạn và giúp bạn dễ dàng tiếp cận với ReactJS, chúng tôi đã tổng hợpnhững thông tin hữu ích trong bài viết này để giải đáp các thắc mắc trên của bạn
1.4.1 ReactJS là gì.
ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013,bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác với cácthành phần trên website Một trong những điểm nổi bật nhất của ReactJS đó là việcrender dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa.ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giaodiện khách hàng hay UI Trong lập trình ứng dụng front-end, lập trình viên thường sẽphải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của khách hàng UI làtập hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ
có thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạnđang lập trình một website thương mại điện tử, sau khi khách hàng chọn được sảnphẩm ưng ý rồi và nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà bạn phải