A small Laravel demo that polls the ETH gas price in real time with soketi.
The server requires:
- Composer
- Node.js + NPM (for soketi)
- PHP 8.0+
git clone [email protected]:soketi/laravel-eth-history.git
cd laravel-eth-history
Run the following chain commands to install the project:
composer install --ignore-platform-reqs && \
cp .env.example .env && \
touch database/database.sqlite && \
php artisan key:generate && \
php artisan migrate:fresh --seed && \
php artisan storage:link
Open your .env
file and configure your mainnet host (for the ETH API) and the PUSHER_*
credentials (which can be the same as the default ones below):
WEB3_WS_HOST=wss://mainnet.infura.io/... # for example
WEB3_HTTP_HOST=https://mainnet.infura.io/... # for example
PUSHER_APP_KEY=app-key
PUSHER_APP_ID=app-id
PUSHER_APP_SECRET=app-secret
PUSHER_HOST=127.0.0.1
PUSHER_PORT=6001
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_HOST="${PUSHER_HOST}"
MIX_PUSHER_PORT="${PUSHER_PORT}"
Build the frontend assets:
npm install && npm run dev
Run the internal server to make the HTTP server accessible on http://127.0.0.1:8000
:
php artisan serve
If you correctly configured the WEB3_WS_HOST
variable, running eth:poll:gas
will pick the gas price and stream it to the frontend.
$ php artisan eth:poll:gas --interval=5 --verbose
You can find multiple installation methods for soketi, but for this project we assume you already have NPM installed:
npm install -g @soketi/soketi@latest
To launch the server, open a new terminal window and let it run in the background:
soketi start
You can lint the code for Vue:
npm run lint
For PHP, use the CSFixer command:
vendor/bin/php-cs-fixer fix