The Blockstack Browser allows you to explore the Blockstack internet.
|
---|
Please note these instructions have only been tested on macOS 10.13
git clone https://github.com/blockstack/blockstack-browser.git
npm install
npm run dev
git clone https://github.com/blockstack/blockstack-browser.git
npm install
npm run dev
Note: npm dev runs a BrowserSync process that watches the assets in /app
, then builds them and places them in /build
, and in turn serves them up on port 3000. When changes are made to the original files, they are rebuilt and re-synced to the browser frames you have open.
Common problems and solutions:
The sign-in page does not load: These instructions run the Browser in developmentmode, which uses a different port (3000) than the production mode (8888).However, existing applications will direct you to http://localhost:8888
onsign-in. You will need to manually edit the URL to change 8888
to 3000
and refresh the page.
The sign-in page does not load with localhost:3000: If you have taken theabove step and the page still does not load, check your auth=
queryparameter. If it starts with any number of /
characters, remove them andreload the page. For example, if your auth=
query looks likeauth=///abcdef...
, then you will need to change it to auth=abcdef...
.
npm run mac:release:dev
to build an unsigned application bundle.native/macos/export/Blockstack.app
.Note: This has only been tested on macOS High Sierra 10.13
brew install openssl --build-bottle
Prerequisites:
Run npm run win32
.
This will:
The output file can be found at native\windows\BlockstackSetup\bin\Release\en-us\BlockstackSetup.msi
.
This does not perform any code or installer file signing.
npm run web
fpm
./native/linux/make_deb.sh
.deb
package will be placed in ./native/linux/dist/
We do project-wide sprints every two weeks and we're always looking for more help.
If you'd like to contribute, head to the contributing guidelines. Inside you'll find directions for opening issues, coding standards, and notes on development.
The Browser uses log4js
for logging. The macOS app uses macOS's unified loggingAPI, os_log
for logging.
On macOS, the Browser sends log events to the macOS app's log server. These arethen included in macOS's unified logging API. You can view logs by startingConsole.app
.
To see only Blockstack
process logs, filter by process by typingprocess: Blockstack
in the search box. You can also filter for only logentries proactively generated by the BLockstack project using this query:subsystem:org.blockstack.portal subsystem:org.blockstack.core subsystem:org.blockstack.mac
If you'd like to see more detail, enable the inclusion of Info and Debugmessages in the Action menu. Please note that in our experience, Console.app
doesn't always show debug messages in real time and only shows them when doing alog dump as described below.
Blockstack logs are included in macOS's unified logging system. This allows usto easily collect a large amount of information about the user's system when weneed to troubleshoot a problem while protecting their privacy.
/private/var/tmp
sysdiagnose_DATE_TIME.tar.gz
file to your friendly developers.The most important file in this archive is system_logs.logarchive
, which willinclude recent system logs including Blockstack's logs. You can open it ona Mac using Console.app
. The other files include information about your computerthat may help in diagnosing problems.
If you're worried about inadvertently sending some private information,you can select the log entries you'd like to send inside Console.app
and copythem into an email or github issue. To help us debug your problem, we ask thatat a minimum you enable Info and Debug messages and filter by process: Blockstack
.
More technical users (with admin permission) can use the sysdiagnose
commandto generate a custom dump of information.
This app uses the latest versions of the following libraries:
And a few other smaller modules (these can be found in package.json
).
This repository is maintained by hankstoever.id.
Run all tests in the test/
directory with the npm run test
command. A singlefile can be run by specifing an -f
flag: npm run test <PATH_TO_TEST_FILE>
.
Note: When running tests, code coverage will be automatically calculated and output to an HTML file using the Istanbul library. These files can be seen in the generated __coverage__/
directory.
When developing apps, the browser can be run in a Docker test environment thatis backed by the regtest bitcoin network, hence no real money involved.
Note: The Dockerfile
creates an image that release on AMD64 architecture.
The easiest way to get that setup is through Docker containers for the api, thebrowser and the cors-proxy. There is adocker-compose.yaml filepublished in the Blockstack todo app repo that does this. To use it, first install Dockerand stop any running Blockstack applications (blockstack-browser or blockstackapi) then:
$ docker-compose up -d
This brings up
A blockstack-core api
node that is backed
bitcoind
instance running regtest andblockstack-core
node built from the test chain.The initialization script generates 50 BTCs for the core wallet.
a blockstack-browser node. It uses bitcoin addresses that are mapped to regtest bitcoin addresses.
a cors-proxy to bypass origin policy issues.
The easiest way to work with this setup is in Incognito mode in your browser. Once the images have been pulled down and the containers are started you can open http://localhost:8888.
Choose the Advanced Mode setup and enter the API Password as blockstack_integration_test_api_password
You can send bitcoins from the core wallet to the browser wallet by opening the hidden url http://localhost:8888/wallet/send-core
You can inspect the mapped bitcoin addresses from the browser node to the regtest address by looking into the log file of the api node (execute bash
in the api container and look at /tmp/blockstack-run-scenario.blockstack_integration_tests.scenarios.portal_test_env/client/api_endpoint.log).
You can inspect the api password by looking into the client.ini file of the api node (execute bash
in the api container and look at /tmp/blockstack-run-scenario.blockstack_integration_tests.scenarios.portal_test_env/client/client.ini)
You can verify the blockstack version of the api node by running curl localhost:6270/v1/node/ping
这是一个最简单的区块链小程序“Hello Blockstack”的搭建过程,这个程序不需要后端api,也不需要用户进行注册数据库。 在这篇教程中我们会用到下面的工具: npm to manage dependencies and scripts browserify to compile node code into browser-ready code blockstack.js to auth