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 git@github.com:soketi/laravel-eth-history.gitcd laravel-eth-historyRun 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:linkOpen 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 devRun the internal server to make the HTTP server accessible on http://127.0.0.1:8000:
php artisan serveIf 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 --verboseYou can find multiple installation methods for soketi, but for this project we assume you already have NPM installed:
npm install -g @soketi/soketi@latestTo launch the server, open a new terminal window and let it run in the background:
soketi startYou can lint the code for Vue:
npm run lintFor PHP, use the CSFixer command:
vendor/bin/php-cs-fixer fix