THẢO LUẬN

thg 5 12, 2018 6:54 SA

NameError: name 'translate' is not defined

0
thg 5 12, 2018 3:45 SA

Bài viết thiếu rất nhiều bước

0
thg 5 11, 2018 10:59 CH

Rất hữu ích, dễ hiểu

0
thg 5 11, 2018 4:32 CH

Hello, do you have the source files? With details of class name etc?

0

Cậu cấu hình lại file config nhé tên thư mục bên trong themes trùng với tên trong file themes = "" trong file config thế là chạy được ấy

0

vâng em cám ơn a để em thử lại ạ

0

Mỗi node khi mới đăng ký thì sẽ lấy data ở đâu khi không có server chung, có phải nó sẽ download từ 1 node khác được chỉ định? Nghĩa là lúc mới đăng ký node, mình phải gõ địa chỉ IP của node nào đó?

Một IP khi muốn bắt đầu kiếm tiền từ Blockchain Bitcoin sẽ download mã nguồn BitCoin về, trong đó sẽ có sẵn thuật toán connect đến 1 IP gần nhất (bạn phải hiểu mạng ngang hàng P2P nghĩa là 2 máy tính connect trực tiếp và truyền được file cho nhau, như kiểu 2 máy bắn bluetooth cho nhau). Vì máy nào cũng sẽ có một bản copy của data mảng Blockchain hiện tại. Nên ta kết nối máy nào cũng sẽ down được, không cần server chung. Bạn cũng k cần tự gõ địa chỉ IP vì bạn không biết máy kia là máy nào. Danh sách các máy đang kết nối trong mạng sẽ có sẵn thuật toán tìm và kết nối. Cái này nếu bạn tự viết Blockchain bạn sẽ phải tự viết thuật toán phần này.

Transaction khi được tạo mới, có phải sẽ được Broadcast đến tất cả các nodes trong mạng biết, vậy khi nào thì 1 node sẽ bắt đầu tính Hash để thêm block mới? Có phải nó chờ cho đến khi nhận được đủ số transactions (ví dụ 10 txs), hay theo 1 khoảng thời gian nhất định thì nó sẽ bắt đầu tính Hash?

Transaction được tạo mới nhưng để regist thành công được vào Blockchain thì phải có mã Hash đã chứ bạn. Khi tạo mới nó chỉ lưu tạm vào mảng GiaoDichTamHoan để chờ có máy đào Hash cho nó. Một node sẽ tự động lấy 1 số lượng tùy chọn các giao dịch để tính Hash. Nhưng BitCoin họ muốn giới hạn chính xác 10 phút 1 Block ra đời. Vì thế số lượng Tx ít hay nhiều sẽ được dùng để chia ra cho vào Block cho hợp lý. Cái này do thuật toán lựa chọn của BitCoin. Ở demo của mình k viết thuật toán này.

Cơ chế giải quyết conflict của các node như thế nào, khi có 2 nodes cùng tìm được 2 Hash khác nhau, cùng 1 thời điểm?

Cái này bạn chưa đoc kỹ bài của mình. Cơ chế giải quyết khi 2 máy cùng đào 1 Hash, máy nào xong trước sẽ được thưởng 12,5Bitcoin (ví dụ ở đồng BitCoin) còn máy kia cho dù đào xong cũng sẽ vứt đi, coi như bad luck (y như đánh đề trật). Thời gian đào được tính đến nghìn mili giây. Đó chính là lý do người ta đầu tư trâu cày BitCoin và chưa thành tỉ phú vì bạn phải giành giật mới có được 1 Hash. Trên thực tế thế giới sẽ không chơi 1 chọi 1 như thế. Mà lúc này khái niệm Pool mới ra đời. Pool là một tập hợp nhiều Node, cùng đào 1 lượng lớn Hash và khi đào xong sẽ đảm bảo là chuỗi có được sẽ rất dài. Đào hẳn 100Hash 1 lần và số tiền thưởng được chia đều cho toàn bộ máy tham gia đào. Các farm (nông trại cày Coin) sẽ join vào các Pool để đảm bảo chắc chắn nhận được 1 phần tiền thường (chứ k chơi may rủi)

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 5 11, 2018 10:14 SA

Em vừa test thấy ok đấy bác ạ. Nhưng em thử trường hợp nếu nested view của adapter cha mà lại là nhiều kiểu nested view khác nhau(2 trở lên). Thì khi scroll nested view, xong scroll mẹ sẽ bị lỗi cast data bác à. Hình như nó bảo là do nested view là 2 adapter khác nhau, mà mình đang tái sử dụng cái viewPool đó nên nó bị lỗi ko thể lấy viewPool của adapter này gán cho viewPool của adapter kia. Bác có giải pháp gì ko nếu mà nó như thế ạ @@

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 5 11, 2018 10:05 SA

Khởi tạo trong adapter (Y)

0
thg 5 11, 2018 9:46 SA

đoạn code

tags.*.not_in' => ":values have been blocked.",

không pass được giá trị vào trong message nhé bạn ?

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 5 11, 2018 9:31 SA

Khi khởi tạo adapter, mình sẽ tạo luôn 1 viewPool bằng câu lệnh: viewPool = new RecyclerView.RecycledViewPool(); Sau đó, mình gán các nested view sử dụng chung các viewPool đó bằng cách: itemView.subRc.setRecycledViewPool(viewPool) phải ko bác?

0

bạn gõ thử: ngrok http [port] -host-header="localhost:[port]". [port] là port mà localhost của bạn chạy

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 5 11, 2018 8:50 SA

Bác có thể cho em xin mail / skype để được tư vấn free cụ thể hơn ko ạ? 😄

0

oh, thank you em, 👍

anh đã sửa rồi 😉

0

Anh ơi 14/11/2018 => 14/11/2008

0

Mong chờ các bài tiếp theo của bạn. Mình cũng từ PHP Developer đi lên.

0

Cảm ơn series của bạn đã làm rất rõ ràng.

mình đang chờ demo của phần này để hiểu rõ về cơ chế trao đổi tiền trong mạng ra sao.

Mình có vài thắc mắc, nhờ các bạn giải thích giúp mình:

  • Mỗi node khi mới đăng ký thì sẽ lấy data ở đâu khi không có server chung, có phải nó sẽ download từ 1 node khác được chỉ định? Nghĩa là lúc mới đăng ký node, mình phải gõ địa chỉ IP của node nào đó?

  • Transaction khi được tạo mới, có phải sẽ được Broadcast đến tất cả các nodes trong mạng biết, vậy khi nào thì 1 node sẽ bắt đầu tính Hash để thêm block mới? Có phải nó chờ cho đến khi nhận được đủ số transactions (ví dụ 10 txs), hay theo 1 khoảng thời gian nhất định thì nó sẽ bắt đầu tính Hash?

  • Cơ chế giải quyết conflict của các node như thế nào, khi có 2 nodes cùng tìm được 2 Hash khác nhau, cùng 1 thời điểm?

Cảm ơn các bạn nhiều.

0
thg 5 11, 2018 6:33 SA

Tks bạn, mình đếm thì cứ đến request 101 là bị, chắc họ giới hạn 100 request rồi 😃

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí