Nếu thấy câu trả lời, comment của mình hay và hữu ích, bạn đừng quên vote up nha :v
Mục đích không phải vì điểm Viblo cho mình mà là để tạo sự uy tín/hữu ích cho câu trả lời hay comment.
Để người khác giống bạn vào đây có cơ sở chọn lọc thông tin mà giải quyết vấn đề. Cũng là giúp nội dung trên Viblo trở nên chất lượng hơn!
Tạo DatabaseChanel mới như thế thì mình đặt tên khác chứ đúng không bạn? Vì DatabaseChanel có sẵn rồi ạ?
Bạn đặt tên như nào cũng được, miễn là class bạn tạo khác namespace và extends cái class cũ. Và overwrite lại method send.
A có thể cho em hỏi buildPayload method trong DatabaseChanel ta có thể thêm user_id được không ạ? (Ý em là thêm như thế để e có thể truy xuất được người gửi comment để thông báo cho author ấy ạ..
Chính xác! Từ phiên bản Laravel 5.6, thay vì khai báo trực tiếp một array trong method send, thì method send sẽ gọi sang buildPayload (được thêm mới) để lấy dữ liệu. Chắc chắn bạn đang dùng Laravel 5.6, như vậy bạn overwrite lại buildPayload là được.
Tạo DatabaseChanel mới như thế thì mình đặt tên khác chứ đúng không bạn? Vì DatabaseChanel có sẵn rồi ạ?
A có thể cho em hỏi buildPayloadmethod trong DatabaseChanel ta có thể thêm user_id được không ạ? (Ý em là thêm như thế để e có thể truy xuất được người gửi comment để thông báo cho author ấy ạ..
Cảm ơn bài viết của bác nhé. nhưng có câu này cần chỉnh lại "Custom Control public một thuộc tính là Camera được sử dụng để điều khiển xem Video Stream được hiển thị từ camera phía trước hoặc phía sau của thiết bị." 2 chữ đầu phải sữa lại thành CameraOptions nhé. Để vậy đọc khó hiểu
Cám ơn bạn nhé! Chức năng này thích hợp dùng để phân biệt các môi trường test (dev, stg, pro) trên cùng 1 bản build, nhiều lúc QA bị nhầm khi download build từ testflight về
Trong ví dụ ở phần 3 này mình lấy ví dụ đơn giản và chỉ là góc nhìn một chiều của 1 người đào. Nhưng thực tế hoạt động đào tiền ảo là hoạt động MẠNG NGANG HÀNG. Nghĩa là bạn phải luôn luôn kết nối và trao đổi (sync) song song với ít nhất 3 người đào khác, để luân chuyển cái mảng Blockchain.
Bạn đọc phần 4 thì sẽ hiểu đến sự tranh chấp Block trong Blockchain. Không có chuyện một mình bạn tự tung tự tác với cả Blockchain, bạn luôn phải chiến đấu với những người khác để đạt được chuỗi Blockchain dài nhất. Và giao dịch trong đó chỉ có một mình giao dịch của bạn thì liệu những người kia có tin tưởng bạn nữa không? Bạn không nên quên sau mỗi lượt đào bạn phải sync lại toàn bộ BLockchain (kết nối với những người đào khác bằng mạng ngang hàng và so sánh xem dữ liệu đã đào được như thế nào)
Nếu bạn đọc đến phần 5 thì sẽ hiểu là, khả năng bạn nhận được cả 100 phần thưởng kia thì sẽ rất thấp vì bạn đào xong rồi nhưng người khác đào nhanh hơn đã đào trước bạn và được thưởng trước bạn.
Trong thế giới BitCoin thì sau 6 lượt đào mới chính thức nhận đc phần thưởng. Sẽ ra sao nếu bạn hì hục đào ra 6 Block và nhận ra toàn bộ điện năng bỏ ra đều không được tiền thưởng.
Con số 6 blocks, hay 6 confirmations, là con số thường dùng dành cho một transaction bình thường em ạ, bởi để thay đổi chuỗi 6 blocks bằng một chuỗi khác dài hơn, sẽ cần một lượng sức mạnh tính toán rất lớn, và con số 6 này được coi là an toàn để một service có thể coi một transaction là thành công và gần như không thể bị đảo ngược.
Ngày nay, sức mạnh tính toán của mạng lưới Bitcoin ngày càng lớn, kéo theo việc đào được 1 block càng ngày khó hơn, thế nên nhiều nơi họ chỉ cần 2 confirmations thôi là coi là OK rồi.
Còn UTXO của coinbase transaction thì phải chờ tới 100 blocks thì mới dùng được em ạ Đó là thiết kế trong các client bitcoin rồi.
Cho mình hỏi, nếu chạy code MyCoin.DaoTienAo("DiaChiViTienCuaToi"); liên tục thì t sẽ đào được rất nhiều coin à, chẳng cần biết có ai giao dịch hay không, ở đây là mình đã không tạo sẵn dữ liệu giao dịch
dạ vâng e cảm ơn, vậy tức là sau khi một block được thêm vào sổ cái thì (vdu như là 2 block e đề cập bên trên) vậy thì UTXO của coinbase sẽ phải chờ thêm khác block khác được nối thêm vào sổ cái ( chắc chắn xác định được block nào dành chiến thắng) thì miner đó mới có thể sử dụng coinbase phải k a ( theo e tìm hiểu thì hình như là 6 block thì phải)
DISCUSSIONS
Bạn làm như vậy không có ai hiểu đâu , ít nhất bạn cũng phải dẫn chứng bằng 1 số file
Cám ơn các bạn đã nhiệt tình giúp đỡ mình. Đọc câu giải thích của mọi người mình học và biết được thêm nhiều cái mới. Cám ơn tất cả ạ !
Đúng rồi, sống cho đời nó đỡ ghét 😄 xem thì học 1 lần, viết này học lại lần nữa luôn 😄
Bạn còn source code này không cho mình tham khảo với
@huukimit Em hiểu ạ.. e rất muốn voteup nhưng e chưa đủ 50 reputations nên e chưa vote được ạ... a thông cảm cho em với ạ...
Nếu thấy câu trả lời, comment của mình hay và hữu ích, bạn đừng quên vote up nha :v Mục đích không phải vì điểm Viblo cho mình mà là để tạo sự uy tín/hữu ích cho câu trả lời hay comment. Để người khác giống bạn vào đây có cơ sở chọn lọc thông tin mà giải quyết vấn đề. Cũng là giúp nội dung trên Viblo trở nên chất lượng hơn!
@minhtuancnttk39 Mình có bổ sung thêm thông tin ở cuối câu trả lời để câu trả lời được hoàn chỉnh, có thể tóm gọn lại như sau:
buildPayload
để trả về thêm dữ liệusender_id
cần lưu.via
vào Notification, để áp dụng lưu dữ liệu quaCustomDatabaseChannel
thay thế:Sau khi thực hiện đủ các bước trên, nếu vẫn lỗi bạn mở laravel.log xem nó báo lỗi như nào nha.
@huukimit Đây là code chưa custom của
buildPayload
method ạ...Sau khi e custom lại như code dưới, cùng trong
DatabaseChanel
luôn ạ, thì nó không lưu được vào DB để query nữa... E đang tìm hiểu tại sao ạ?@minhtuancnttk39
Bạn đặt tên như nào cũng được, miễn là class bạn tạo khác namespace và extends cái class cũ. Và overwrite lại method
send
.Chính xác! Từ phiên bản Laravel 5.6, thay vì khai báo trực tiếp một array trong method
send
, thì methodsend
sẽ gọi sangbuildPayload
(được thêm mới) để lấy dữ liệu. Chắc chắn bạn đang dùng Laravel 5.6, như vậy bạn overwrite lạibuildPayload
là được.Bạn cho mình hỏi:
Tạo
DatabaseChanel
mới như thế thì mình đặt tên khác chứ đúng không bạn? VìDatabaseChanel
có sẵn rồi ạ?A có thể cho em hỏi
buildPayload
method trongDatabaseChanel
ta có thể thêmuser_id
được không ạ? (Ý em là thêm như thế để e có thể truy xuất được người gửicomment
để thông báo cho author ấy ạ..cái này giải quyết đươc vấn đề gì vậy ad?
Chuẩn rồi bạn ^^ Thuận tiện cho việc test trên nhiều version
Cảm ơn bài viết của bác nhé. nhưng có câu này cần chỉnh lại "Custom Control public một thuộc tính là Camera được sử dụng để điều khiển xem Video Stream được hiển thị từ camera phía trước hoặc phía sau của thiết bị." 2 chữ đầu phải sữa lại thành CameraOptions nhé. Để vậy đọc khó hiểu
Cám ơn bạn nhé! Chức năng này thích hợp dùng để phân biệt các môi trường test (dev, stg, pro) trên cùng 1 bản build, nhiều lúc QA bị nhầm khi download build từ testflight về
Em cứ mạnh dạn chia sẻ đi
Anh cùng mọi người khác sẽ tích cực vào review, bàn luận mà
dạ vâng, e cảm ơn a đã giải đáp thắc mắc cho e ạ. e định sớm viết một bài về việc tìm hiểu blockchain, mong a sẽ review và góp ý cho e ạ. e cảm ơn ạ
Trong ví dụ ở phần 3 này mình lấy ví dụ đơn giản và chỉ là góc nhìn một chiều của 1 người đào. Nhưng thực tế hoạt động đào tiền ảo là hoạt động MẠNG NGANG HÀNG. Nghĩa là bạn phải luôn luôn kết nối và trao đổi (sync) song song với ít nhất 3 người đào khác, để luân chuyển cái mảng Blockchain.
Bạn đọc phần 4 thì sẽ hiểu đến sự tranh chấp Block trong Blockchain. Không có chuyện một mình bạn tự tung tự tác với cả Blockchain, bạn luôn phải chiến đấu với những người khác để đạt được chuỗi Blockchain dài nhất. Và giao dịch trong đó chỉ có một mình giao dịch của bạn thì liệu những người kia có tin tưởng bạn nữa không? Bạn không nên quên sau mỗi lượt đào bạn phải sync lại toàn bộ BLockchain (kết nối với những người đào khác bằng mạng ngang hàng và so sánh xem dữ liệu đã đào được như thế nào)
Nếu bạn đọc đến phần 5 thì sẽ hiểu là, khả năng bạn nhận được cả 100 phần thưởng kia thì sẽ rất thấp vì bạn đào xong rồi nhưng người khác đào nhanh hơn đã đào trước bạn và được thưởng trước bạn.
Trong thế giới BitCoin thì sau 6 lượt đào mới chính thức nhận đc phần thưởng. Sẽ ra sao nếu bạn hì hục đào ra 6 Block và nhận ra toàn bộ điện năng bỏ ra đều không được tiền thưởng.
Con số 6 blocks, hay 6 confirmations, là con số thường dùng dành cho một transaction bình thường em ạ, bởi để thay đổi chuỗi 6 blocks bằng một chuỗi khác dài hơn, sẽ cần một lượng sức mạnh tính toán rất lớn, và con số 6 này được coi là an toàn để một service có thể coi một transaction là thành công và gần như không thể bị đảo ngược.
Ngày nay, sức mạnh tính toán của mạng lưới Bitcoin ngày càng lớn, kéo theo việc đào được 1 block càng ngày khó hơn, thế nên nhiều nơi họ chỉ cần 2 confirmations thôi là coi là OK rồi.
Còn UTXO của coinbase transaction thì phải chờ tới 100 blocks thì mới dùng được em ạ Đó là thiết kế trong các client bitcoin rồi.
Cho mình hỏi, nếu chạy code MyCoin.DaoTienAo("DiaChiViTienCuaToi"); liên tục thì t sẽ đào được rất nhiều coin à, chẳng cần biết có ai giao dịch hay không, ở đây là mình đã không tạo sẵn dữ liệu giao dịch
dạ vâng e cảm ơn, vậy tức là sau khi một block được thêm vào sổ cái thì (vdu như là 2 block e đề cập bên trên) vậy thì UTXO của coinbase sẽ phải chờ thêm khác block khác được nối thêm vào sổ cái ( chắc chắn xác định được block nào dành chiến thắng) thì miner đó mới có thể sử dụng coinbase phải k a ( theo e tìm hiểu thì hình như là 6 block thì phải)