前不久,aelf正式釋出了測試穩定幣aeusd,並基於該測試穩定幣開發了bingogame demo aeusd版本。這是一款基於區塊鏈底層技術的投注小遊戲demo,使用者按照一定規則投注任意token數額後,鏈上將產生隨機數,之後根據隨機數值並按照一定規則向使用者返回中獎結果。其資料上鍊,在使用區塊鏈隨機數線上即開的遊戲方式上有重大創新,具有很強的互動性、娛樂性,能夠讓玩家零距離體驗區塊鏈技術的魅力
為了不斷最佳化bingogame版本,並在此基礎上將區塊鏈隨機數技術應用於福利彩票、搖號系統等更多場景,消除傳統中心化應用隨機數產生過程中資料無法驗證、無法追溯、有作弊風險等隱患,此前,aelf特舉辦了兩期bingogame demo aeusd版本體驗活動。本文記錄了社羣使用者代表艾斯試玩bingogame的過程、體驗及思考,一起來看看吧。
歡迎來到aelf區塊鏈的開發之旅!這是aelf區塊鏈專案第一篇技術性的支援文章。如果你想在aelf區塊鏈上開發dapp(去中心化應用),這一系列文章可以為大家提供幫助,讓你能夠無門檻地逐步搭建自己的dapp。
我們並不能一開始就進行aelf區塊鏈上的dapp開發,因為對於新手而言,進行dapp的開發有較大門檻。所以我們先體驗一下已經由aelf團隊開發好的dapp樣例——bingogame demo,這是一個投注類的小遊戲,首先你需要押注,比如押“大”或押“小”,並且提供押注的金額,然後應用會告訴你投注的輸贏結果。如果你已經把bingogame這款dapp安裝在手機上了,那我們就開始體驗吧!
當你第一次開啟這個應用時,你會看到三個板塊,最上面的板塊是“prize pool”,也就是獎池,這裡彙集了玩家輸掉的“錢”的總額。中間的板塊是“bet type”,即選擇押注型別,你可以選擇押大(big)或者押小(small)。下面的板塊是“bet amount”,即押注數量或金額,在輸入框中填寫押注的數量。在這個dapp中,押注的“金錢”單位是aeusd,這是aelf在測試網上釋出的測試穩定幣。最後,只需點選最下方的bet按鈕就可以進行投注了。
首先你需要註冊一個新賬號並且完成登入。註冊新賬號時,點選底部選單欄的“my”按鈕。點選之後,應用會顯示“login”和“register”,選擇“register”,設定暱稱和密碼,注意密碼的格式要正確,最後點選“register”。
點選之後會來到備份賬號二維碼的頁面,注意,這個二維碼必須要備份,因為當你再次登入時,只能透過這個二維碼匯入你的賬號資訊,一旦丟失,你的賬號和其中的代幣就會永久丟失。點選“save to album”儲存這個二維碼到手機相簿,儲存之後點選右上角的“done”。
接下來,我們來到設定交易密碼的頁面。實際上,這個應用在互動的背後都是在進行各種交易,所以自然而然需要交易密碼,就如同其他的數字貨幣錢包一樣。
最後,當你完成註冊之後,系統自動回到主介面,這時候,在“prize pool”的面板能夠看到顯示“please bet”的長條框,這說明你已經登入成功了。
在開始玩這個投注遊戲之前,檢查一下自己是否有餘額(即“bet amount”面板中的“balance”)。比如,我現在有48個aeusd,我選擇“small”,然後我輸入2個aeusd,點選“bet”按鈕投注,你會看到“bet success”的提示框,然後在底部選單欄上快速切換到“my bet”頁面,然後點選“waiting for draw”選項卡。如果你的操作足夠快,你會在這個選項卡中看到剛才投注的資訊,這就是你剛才投注的那一輪次,這個投注輪次正在等待被開獎(即bingo)。
實際上,你需要等待幾十秒才會看到你的投注是贏還是輸。過一會,你會發現在這個選項卡下的本輪投注資訊突然消失了,這說明這輪次的投注已經被開獎。接下來,切換到“lottery”選項卡。對於我而言,這一次我贏了2個aeusd,除此之外,你還能看到本輪投注的其他資訊,比如交易id等。你可能在這一頁面看到其他輪次的開獎結果,這是我之前玩過的幾輪。現在再返回到主介面——即底部選單欄左側的“index”按鈕,這裡你可以看到你有50個aeusd,也就是說你贏了這一局,之前你的押注的金額被返還回來了(還記得你押注了2個aeusd嗎?),而且又另外得到了與投注數量相同的aeusd作為獎賞(2個aeusd)。相反,如果你輸了這一局,你之前押注的金額就不會被返還了,你會只剩下46個aeusd。另外,你會在“prize pool”面板上看到你上次投注的簡要資訊:投注了2個aeusd,小。
那麼在這個過程中,實際發生了什麼呢?其實這個應用可以產生一個0~255之間的隨機數,如果這個隨機數處於0~126之間,則對應“小”,如果處於129~255之間,則為“大”,如果是127或者128,則為“中”。如果玩家的投注型別和這個隨機數的對應型別相同,則玩家贏,反之玩家輸。如果這個隨機數的結果是“中”,也是玩家輸。
當清楚了這一點之後,我們這次連續投注多次。首先,我投注2.5個aeusd,在“bet success”提示框消失之後,立刻投注4.5個aeusd,然後以這種方式再投注5.5個aeusd,讓我們看看發生了什麼。立刻切換到“my bet”頁面的“waiting for draw”選項卡下,你會看到你玩的三個輪次先後排成了一個佇列,過了一小會,這些待開獎的輪次資訊就依次消失了。這時候,當你到“lottery”選項卡下面檢視時,你會看到新的開獎結果:贏了2.5aeusd、輸了4.5aeusd、輸了5.5aeusd。
當你體驗完了這個dapp示例之後,你可能會問兩個問題:
1.為什麼我在投注之後並不是立刻得到開獎結果,必須等待一段時間才可以呢?
這是因為這款dapp是基於區塊鏈的,當你投注了某個數額之後,你實際上向區塊鏈上的某個智慧合約發了一個交易,這個交易資訊隨即被智慧合約處理,在這之後,需要經過區塊鏈其他節點的確認,並且在這之後產生了幾個新區塊之後,你才會得到可靠的開獎結果,這個過程消耗了一定的時間。當然,其中的過程遠比該描述複雜。
2.為什麼aelf的團隊以bingogame作為樣例呢?
這是因為“bingogame”是基於aelf完全自主研發的“真隨機數產生器”的一個應用,真隨機數完全基於純自然產生的隨機現象,它和自然的隨機現象一一對應,所以它完全不可預測,不可被設計。而相反的是,我們見到的隨機數產生方式一般都是偽隨機數產生方式,比如大多數程式語言中random包中的方法,就完全是偽隨機數的產生方法,偽隨機數是由位元的各種運算產生的,使得其可以被預測和操控。在涉及到搖號等業務時,偽隨機數產生的方法極容易被人暗箱操作,而基於aelf區塊鏈的真隨機數產生方法,可以為這些業務提供完全可信、可追溯和不可篡改的保障,做到真正的公平。
最後,我們來看看登出賬號後如何再次登入。切換到“my”頁面,在頂部的二維碼區域會看到你的暱稱和現有aeusd餘額,點選“logout”,出現一個提示框,提示你需要把和賬號相關的一切內容備份好,如果你已經備份充分,那就選擇“logout”登出即可。登出之後,你自動回到了主介面上,這時候重新回到“my”頁面,這次選擇“login”,你會發現你進入了掃二維碼的狀態,當然如果你已經把備份好的二維碼列印在了紙上,直接掃描即可。不過這一次我們點選右上角的“album”,從相簿中選擇之前備份好的二維碼。選好之後,應用會讓你輸入登入密碼,點選“confirm”,等待幾秒鐘,應用會讓你輸入交易密碼,輸入之後點選“confirm”,我們就回到了已登入狀態。
以上就是關於bingogame這款示例dapp的全部內容。在下一篇文章中,我們開始對aelf區塊鏈專案進行簡要介紹,為之後的dapp開發打下堅實基礎。
如果你是一個對在aelf區塊鏈上做dapp開發感興趣的開發者,歡迎新增aelf對外開發者社羣客服號,微訊號:a439714(大魚同學);開發者qq群:102857654。