Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
336 commits
Select commit Hold shift + click to select a range
d492c56
create streamfilter and liststreamfilters
mike31 Oct 8, 2018
cbd3374
Fixed a few compiler warnings about integer size in the V8 interface …
ztarem Oct 9, 2018
3a7bfc9
Stream filter approval
mike31 Oct 9, 2018
ce6b584
liststreams with filter infor
mike31 Oct 9, 2018
93c6488
Stream filters for new txs in the wallet
mike31 Oct 10, 2018
9d39275
runstreamfilter, teststreamfilter and getstreamitem callback
mike31 Oct 10, 2018
118ec71
Stream filters for mempool transactions
mike31 Oct 11, 2018
e2cfcb5
Verifying stream filters before sending tx
mike31 Oct 11, 2018
d0eb609
Filters bypass for standard coinbase
mike31 Oct 14, 2018
07752af
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 14, 2018
3420b7e
Added fall-through annotations to switch in tinyformat.h
ztarem Oct 14, 2018
33fb136
Fixed crash on exchange with restricted asset
mike31 Oct 14, 2018
d3e3092
Stream filter tweaks
mike31 Oct 14, 2018
994e224
Stream filters for offchain items
mike31 Oct 14, 2018
d96be42
sendskipstreamfilters suntime parameter
mike31 Oct 15, 2018
e426e60
FilterLimitedMathSet feature flag
mike31 Oct 16, 2018
025a719
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 16, 2018
f8d8ca4
Fixed tx filter restrictions for asset followon txs
mike31 Oct 16, 2018
7fd6f9d
If required, limit the set of JS Math functions available to the user.
ztarem Oct 16, 2018
24d6220
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 16, 2018
4ad0c1a
Optional vout in teststreamfilter
mike31 Oct 16, 2018
1a22ced
Fixed permission processing for stream items in block
mike31 Oct 16, 2018
73153d4
Simplified caption for named filters
mike31 Oct 16, 2018
7b23517
Stream item format for offchain items rejected by stream filter
mike31 Oct 16, 2018
cbd12bc
Removed inputcache ouput from per-antity grant transaction
mike31 Oct 17, 2018
9a2763a
Fixed per-entity permission processing when not restricted
mike31 Oct 18, 2018
7b2933b
Fixed liststreamqueryitems when all items should be returned
mike31 Oct 18, 2018
d8543ca
Allow forced termination of filter function
ztarem Oct 17, 2018
84f1306
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 21, 2018
af2a103
Filter watchdog Cleanup and comments
ztarem Oct 21, 2018
a861e00
Error message on missing SSL files
mike31 Oct 21, 2018
0c3f0d8
Moved FilterWatchdog to filter files.
ztarem Oct 21, 2018
c6e459a
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 21, 2018
e632350
Filter timeout
mike31 Oct 21, 2018
d4894ea
Better error messages for multichaind-cold params.dat mismatch
mike31 Oct 22, 2018
cce9e1c
Provide filter function termination reason.
ztarem Oct 22, 2018
6ed95de
acceptfiltertimeout, sendfiltertimeout runtime parameter
mike31 Oct 22, 2018
4454699
Fixed processing of stream filters for onchain items
mike31 Oct 23, 2018
5469316
Make sure filter watchdog does not miss FilterEnded notification due …
ztarem Oct 23, 2018
8eedaea
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 23, 2018
64a213f
Passing txid to tun/testtx/streamfilter
mike31 Oct 23, 2018
8ddf2de
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Oct 23, 2018
d6fd763
Applying maxshoendata to asm.hex in getfiltertransaction
mike31 Oct 23, 2018
c478179
Checking wallet error in APIs
mike31 Oct 24, 2018
dc4e143
Reimplemented filter watchdog with requested/actual status management.
ztarem Oct 24, 2018
1e4aa23
Selective wallet indexing
mike31 Oct 24, 2018
a789c94
Wallet cached txdef
mike31 Oct 25, 2018
dcaea05
Using cached tx def when adding new tx
mike31 Oct 25, 2018
b725668
Checking state of chunk database before sending
mike31 Oct 28, 2018
2b6084f
lockinlinemetadata runtime parameter
mike31 Oct 28, 2018
5923fad
Fixed decoderawtransaction output on unsent stream creation
mike31 Oct 28, 2018
7791f48
Fixed wallet indexing
mike31 Oct 29, 2018
353b73f
Fixed makefile for local compilation scheme
mike31 Oct 29, 2018
ee042fc
Delete Date.now for protocol 20005
ztarem Oct 29, 2018
1547a29
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Oct 29, 2018
d30463a
Fixed emergency filterdisapproval
mike31 Oct 29, 2018
1917d4b
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Oct 29, 2018
f6259e1
Null value in data filed for invalid stream items
mike31 Oct 29, 2018
b4e10c6
Ifgnoring stream items with errors in getstreamkeysummary
mike31 Oct 29, 2018
932230e
getfilterassetbalances
mike31 Oct 30, 2018
3d27cdb
getfilterassetbalances for native currency
mike31 Oct 30, 2018
15fd81c
Rolling back entity database if issuance tx was rejected by filters
mike31 Oct 31, 2018
4b4ffcf
Filter tweaks
mike31 Oct 31, 2018
e4d2ada
Fixed filter logging
mike31 Oct 31, 2018
b254146
Fixed paytxfee calculation
mike31 Oct 31, 2018
87c3de5
Cleanup for 2.0 alpha 6
mike31 Oct 31, 2018
0d63418
Fixed skipping txid/vout fields in filters
mike31 Nov 1, 2018
abf3fbb
Fixed available flag
mike31 Nov 1, 2018
710beea
Fixed createfilter/testfilter crash
mike31 Nov 1, 2018
ef8e4dc
Fixed output for empty list in getstreamkeysummary
mike31 Nov 1, 2018
9c2f43a
Switch back to boost threads
ztarem Nov 1, 2018
0cb5989
Fixed getfiltertxinput when all inputs are spent in the same block
mike31 Nov 5, 2018
941517f
Merge pull request #79 from MultiChain/2.0-dev
mike31 Nov 7, 2018
35660eb
Cosmetics
ztarem Nov 11, 2018
d977b49
Move resposibilities of V8IsolateManager to V8Engine
ztarem Nov 12, 2018
0aa87ca
Merge remote-tracking branch 'upstream/2.0-dev' into 2.0-dev
ztarem Nov 12, 2018
8a36dea
Merge remote-tracking branch 'local/2.0-dev' into 2.0-dev
ztarem Nov 12, 2018
3e39a81
Fixed invalid chain in case of wallet error
mike31 Nov 12, 2018
11717d6
Avoid sending tx in case of wallet error
mike31 Nov 12, 2018
01faa9a
Refactoring filters directory
mike31 Nov 13, 2018
1a02fd5
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Nov 13, 2018
6e127ee
filters/multichainfilter
mike31 Nov 13, 2018
2648bf6
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Nov 13, 2018
115cad8
Fixed lockinlinemetadata default value in getruntimeparams
mike31 Nov 13, 2018
0c7bd97
publishmulti/from APIs
mike31 Nov 14, 2018
596683c
Implemented a single filter callback function.
ztarem Nov 14, 2018
0b4c4d0
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Nov 14, 2018
93dca0f
Reimplemented filter watchdog in src/filters.
ztarem Nov 14, 2018
50cdec6
Better separation between V8 and non-V8 filter code.
ztarem Nov 15, 2018
ec6343e
Merge remote-tracking branch 'local/2.0-dev' into 2.0-dev
ztarem Nov 15, 2018
b76caa7
Fixed preparelockunspent bug when used with filters
mike31 Nov 15, 2018
1805405
Better separation between V8 and non-V8 filter code.
ztarem Nov 15, 2018
cf455bd
Merge remote-tracking branch 'local/2.0-dev' into 2.0-dev
ztarem Nov 15, 2018
648d445
base58 encoding optimization
mike31 Nov 22, 2018
7d6161b
Avoiding stream filter verification if there are no stream filter
mike31 Nov 22, 2018
d0581a2
MC V8 Windows DLL
ztarem Nov 25, 2018
352d813
MC V8 Windows DLL
ztarem Nov 25, 2018
26eb503
Merge branch '2.0-dev' of https://github.com/ztarem/multichain into 2…
ztarem Nov 25, 2018
a7f8346
Fixed storing of comment fields
mike31 Nov 25, 2018
21964b8
Version 2.0 alpha 7
mike31 Nov 25, 2018
43a7eaf
Merge pull request #80 from MultiChain/2.0-dev
mike31 Nov 27, 2018
08195c2
Merge branch '2.0-dev' of https://github.com/ztarem/multichain into 2…
ztarem Nov 25, 2018
4621cb0
Merge branch '2.0-dev' of https://github.com/ztarem/multichain into 2…
ztarem Nov 27, 2018
b2f6192
Fixed getfilterassetbalances with asset issuance in input
mike31 Nov 28, 2018
eb246d2
Fixed help and error messages in publishmulti(from)
mike31 Nov 28, 2018
32e85e5
Recplaying mempool after invalid block
mike31 Nov 28, 2018
261c8b5
Signed nonce in block signature
mike31 Nov 29, 2018
e0de39b
Setting maximum nbirs for signed nonce to 12
mike31 Nov 29, 2018
6fcc3af
Full working version of V8 and filters for windows
ztarem Nov 29, 2018
2d01f30
Create V8 snapshot data library
ztarem Nov 29, 2018
71308fc
Implicit connect premission for admin/activate/mine
mike31 Dec 2, 2018
ed65ccd
Fixed runtime issues, cleanup
ztarem Dec 4, 2018
fdf3237
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Dec 4, 2018
bb5290d
FAvoiding multiple connections to self
mike31 Dec 5, 2018
8366770
Fixed build and dependency of spdlog
ztarem Dec 6, 2018
a4b661e
Avoiding storing of invalid and oversized blocks on disk
mike31 Dec 6, 2018
94d8b81
Version 2.0 beta 1
mike31 Dec 6, 2018
7e99847
Modified build instructions for Windows
ztarem Dec 6, 2018
c98655f
Merge branch '2.0-dev' of https://github.com/ztarem/multichain into 2…
ztarem Dec 6, 2018
38778fc
Fixed reference to v8_win.md
ztarem Dec 6, 2018
89aeb0d
Update win.md
ztarem Dec 6, 2018
5f63cb6
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Dec 9, 2018
8158085
Hide debug object dump in src/v8_win/callbacks_win.cpp
ztarem Dec 9, 2018
2d26a86
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Dec 9, 2018
f9c80ea
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Dec 10, 2018
0208599
Improved Windows documentation
ztarem Dec 11, 2018
11b538c
Reverted filter watchdog model to requested/actual state
ztarem Dec 11, 2018
e49d965
Update win.md
ztarem Dec 11, 2018
8ce09de
Fixed conversion of json_spirit int_type to V8
ztarem Dec 13, 2018
240a36c
Committing block in case of wallet commit error
mike31 Dec 14, 2018
f69183c
Fixed unsubscription wallet corruption bug
mike31 Dec 16, 2018
e4c61e1
Merge pull request #82 from MultiChain/2.0-dev
mike31 Dec 19, 2018
4fb5287
Avoiding levelDB compaction triggered by read operations
mike31 Dec 20, 2018
29017fb
2.0 error code review
mike31 Dec 20, 2018
519418b
Fixed minimal supported version
mike31 Dec 23, 2018
23a81ec
Community stubs
mike31 Dec 27, 2018
0e4db00
Added MultiChain clone step
ztarem Dec 27, 2018
852674b
Fixed V8 checkout version
ztarem Dec 27, 2018
998d87e
Build v8_data.lib from .bin and .dat files
ztarem Dec 31, 2018
5f2f7ee
Merge remote-tracking branch 'origin/2.0-dev' into 2.0-dev
ztarem Dec 31, 2018
0508825
Added --platform to builder/v8_data_lib.py
ztarem Jan 6, 2019
87b5fc1
Added nasm-based binary data object file creation.
ztarem Jan 7, 2019
2c7e86f
Added nasm-based binary data object file creation.
ztarem Jan 7, 2019
b91ee89
Merge remote-tracking branch 'origin/2.0-dev' into 2.0-dev
ztarem Jan 7, 2019
ab9736f
Fixed names of V8 data symbols
ztarem Jan 7, 2019
5bed5d9
Fixes required by the OSX (Darwin) build.
Jan 7, 2019
bbc937e
Help message tweaks
mike31 Jan 8, 2019
1550b2e
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 8, 2019
31c7433
Fix use of watchdog on Windows.
ztarem Jan 9, 2019
ebb5e27
Refactored BerkeleyDB wrappers
mike31 Jan 9, 2019
f6ac1c9
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Jan 13, 2019
6e80b88
Build documentation improvements
ztarem Jan 13, 2019
b9fcb9e
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Jan 13, 2019
aaae678
Added/corrected instructions for Mac.
ztarem Jan 13, 2019
14b39bc
Added depends/clang_fix.py
ztarem Jan 16, 2019
b34763b
-walletdbversion=3, working, not tested
mike31 Jan 16, 2019
573b96b
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 16, 2019
287d1bd
Added flag -Wno-class-memaccess to clang_fix.py
ztarem Jan 17, 2019
4904049
Wallet upgrade
mike31 Jan 17, 2019
7fca1ef
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 17, 2019
f473cf4
Added argument for MultiChain home diretory
ztarem Jan 18, 2019
14dae14
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Jan 18, 2019
2db63b1
Fixed Windows build instructions
ztarem Jan 21, 2019
ebd447f
Improved outbound address selection
mike31 Jan 22, 2019
1cb3560
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 22, 2019
73278a7
Fixed error message for send APIs with encrypted wallet
mike31 Jan 22, 2019
7725aa5
Fixed walletdbversion in getwalletinfo
mike31 Jan 22, 2019
696d9b9
Stopped support for walletdbversion=1
mike31 Jan 22, 2019
42e424a
Filters in raw transactions
mike31 Jan 23, 2019
4c8e24e
Fixed file copying for Windows
mike31 Jan 27, 2019
13619c0
Foxed selection of watch-only addresses for publishmulti
mike31 Jan 27, 2019
7dc4fa8
Fixed V8 build instructions for Windows
ztarem Jan 28, 2019
ff779ae
Tweaks in raw transactions for filters
mike31 Jan 29, 2019
594e26e
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 29, 2019
e280831
Filter raw transaction error message tweak
mike31 Jan 29, 2019
2e48c14
-maxoutconnections runtime parameter
mike31 Jan 30, 2019
4640a19
Final touches on Windows build instructions.
ztarem Jan 30, 2019
533e4b1
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Jan 30, 2019
8b1175c
Fixed V8 build instructions for Windows
ztarem Jan 28, 2019
ca1c3d2
Merge branch '2.0-dev' of https://github.com/multichain/multichain in…
ztarem Jan 30, 2019
61a745e
-salvagewallet for walletdbversion=3
mike31 Jan 30, 2019
7da81bf
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Jan 30, 2019
9a9e2d9
Update mac.md
ztarem Jan 31, 2019
a75b764
Update V8_mac.md
ztarem Jan 31, 2019
f1ce262
Added missing resource.h
ztarem Jan 31, 2019
898f3fc
Merge branch '2.0-dev' of https://github.com/multichain/multichain in…
ztarem Jan 31, 2019
14cca90
Propose dowloading pre-built V8 binaries
ztarem Jan 31, 2019
e8c68f8
Corrupted wallet message tweak
mike31 Feb 3, 2019
a5d932d
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
mike31 Feb 3, 2019
5489cef
Tweaks in Windows instructions
mike31 Feb 3, 2019
816e4cd
Fixed copyright information
mike31 Feb 4, 2019
03e72d9
Fixed Windows version and LevelDB copyright
mike31 Feb 4, 2019
1172447
Protocol changes required for enterprise version
mike31 Feb 6, 2019
fb533dc
Version 2.0 beta 2
mike31 Feb 6, 2019
ffaa0a7
anyone-can-* upgrades
mike31 Feb 7, 2019
709635d
Modified format for raw stream filter approval
mike31 Feb 10, 2019
2fd4815
walletdbversion help message
mike31 Feb 10, 2019
ebc8c4a
Help messeages for enw upgradable parameters
mike31 Feb 10, 2019
ae14a41
Checking filter code in raw transactions
mike31 Feb 10, 2019
f3d4287
Merge pull request #85 from MultiChain/2.0-dev
mike31 Feb 11, 2019
18bc202
gitignore - removed v8 build objects
mike31 Feb 12, 2019
6456f5c
gitignore - removed wdebug binaries
mike31 Feb 12, 2019
2e0b386
Fixed for Mac - block pkh calculation error
mike31 Feb 12, 2019
bdd353d
Compilation warnings
mike31 Feb 12, 2019
053f414
Minimizing number of boost warnings on asio
mike31 Feb 12, 2019
10a790c
Configuration changes required for Enterprise version
mike31 Feb 12, 2019
bda0053
RPC asio header
mike31 Feb 12, 2019
f59aa30
Configuration tweaks for Community Edition
mike31 Feb 12, 2019
bb94ed2
Fixing listtxfilters crash on Mac
mike31 Feb 14, 2019
a959a22
Fixing getfiltertransaction crash on Mac
mike31 Feb 14, 2019
95a73ff
Increased stack size for Mac
mike31 Feb 14, 2019
5c3776f
Fixed MAc switch for thread attributes
mike31 Feb 14, 2019
dc930de
Fix MacOS instructions
ztarem Feb 14, 2019
f7e2adf
Merge branch '2.0-dev' of https://github.com/MultiChain/multichain in…
ztarem Feb 14, 2019
5be0c21
Final fix to mac.md
ztarem Feb 16, 2019
3bc877d
-logdir runtime parameter
mike31 Feb 17, 2019
03f4acc
multichaind.pid for Windows
mike31 Feb 17, 2019
f2469d7
multichaind.pid for Windows
mike31 Feb 17, 2019
23c6bcd
multichaind.pid for Windows
mike31 Feb 18, 2019
ed9fc3f
Reverting emterprose makefile preparations
mike31 Feb 18, 2019
e16fe0e
multichaind.pid for Windows
mike31 Feb 18, 2019
b25595d
Fixed empty offchain data bug
mike31 Feb 18, 2019
e2ba49e
txouttobinarycache API
mike31 Feb 18, 2019
67d7e8f
Added nasm to mac instructions
mike31 Feb 18, 2019
acb3670
Makefile for Enterprise version
mike31 Feb 18, 2019
4083ca5
MultiChain startup message
mike31 Feb 18, 2019
090d2b3
Fix MacOS instructions
ztarem Feb 14, 2019
6bb6398
Final fix to mac.md
ztarem Feb 16, 2019
3c80cec
Added nasm to mac instructions
mike31 Feb 18, 2019
61b21d7
Purely proprietary wallet wrapper
mike31 Feb 18, 2019
99ea4b1
Fixed double free issue for daemon
mike31 Feb 19, 2019
aa99fb0
txouttobinarycache with unlimited size
mike31 Feb 19, 2019
fb3625c
Fixed multichain-cli error when called without chain name
mike31 Feb 20, 2019
77fe929
Checking walletdbversion in different editions
mike31 Feb 20, 2019
b4225b1
Fixed wallet upgrade message
mike31 Feb 21, 2019
f695e1e
Subscribe help message for ent
mike31 Feb 21, 2019
33bf5fc
Moved EF initialization
mike31 Feb 21, 2019
dfaa8b9
Fixed multichain-cli error message on missing chain name
mike31 Feb 21, 2019
fd6c759
Preparation for contitional stream indexing
mike31 Feb 21, 2019
10ed9b5
Creating subscriptions
mike31 Feb 24, 2019
858784f
Modified import list, prepared for skipped local subscription
mike31 Feb 25, 2019
280ab60
Enterprise subscribe
mike31 Feb 27, 2019
3e6d7f8
Enterprise subscriptions - modified subscribe API
mike31 Feb 27, 2019
5ff8de3
Version 2.0 beta 3
mike31 Feb 27, 2019
5afe7ae
Fixed JS Date function determinism
mike31 Feb 28, 2019
43328da
Fixed JS Date function determinism on Windows
mike31 Feb 28, 2019
79f22ee
Disabling indexes parameter in subscribe for Community
mike31 Mar 3, 2019
e5ba5cf
Checking parameter count in subscribe
mike31 Mar 3, 2019
e5f6565
Fixed date string function output
mike31 Mar 3, 2019
1d16b2b
Merge pull request #86 from MultiChain/2.0-dev
mike31 Mar 5, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com>
#
# You may use this file under the terms of the 3-clause BSD license.
# See the file LICENSE from this package for details.

# This is the clang-format configuration style to be used by Qt,
# based on the rules from https://wiki.qt.io/Qt_Coding_Style and
# https://wiki.qt.io/Coding_Conventions

---
# Webkit style was loosely based on the Qt style
BasedOnStyle: WebKit

Standard: Cpp11

# Leave the line breaks up to the user.
# Note that this may be changed at some point in the future.
ColumnLimit: 120
# How much weight do extra characters after the line length limit have.
PenaltyExcessCharacter: 400

# Disable reflow of qdoc comments: indentation rules are different.
# Translation comments are also excluded.
CommentPragmas: "^!|^:"

# We want a space between the type and the star for pointer types.
PointerBindsToType: false

# We use template< without space.
SpaceAfterTemplateKeyword: false

# We want to break before the operators, but not before a '='.
BreakBeforeBinaryOperators: NonAssignment

BreakBeforeBraces: Allman
# Braces are usually attached, but not after functions or class declarations.
#BreakBeforeBraces: Custom
#BraceWrapping:
# AfterClass: true
# AfterControlStatement: false
# AfterEnum: false
# AfterFunction: true
# AfterNamespace: false
# AfterObjCDeclaration: false
# AfterStruct: true
# AfterUnion: true
# BeforeCatch: false
# BeforeElse: false
# IndentBraces: false

# When constructor initializers do not fit on one line, put them each on a new line.
ConstructorInitializerAllOnOneLineOrOnePerLine: true
# Indent initializers by 4 spaces
ConstructorInitializerIndentWidth: 4

# Indent width for line continuations.
ContinuationIndentWidth: 8

# No indentation for namespaces.
NamespaceIndentation: None

# Horizontally align arguments after an open bracket.
# The coding style does not specify the following, but this is what gives
# results closest to the existing code.
AlignAfterOpenBracket: true
AlwaysBreakTemplateDeclarations: true

# Ideally we should also allow less short function in a single line, but
# clang-format does not handle that.
AllowShortFunctionsOnASingleLine: Inline

# The coding style specifies some include order categories, but also tells to
# separate categories with an empty line. It does not specify the order within
# the categories. Since the SortInclude feature of clang-format does not
# re-order includes separated by empty lines, the feature is not used.
SortIncludes: false

# macros for which the opening brace stays attached.
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ]

57 changes: 44 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,33 @@ src/multichain-cli
src/multichain-util
src/multichaind
src/multichaind-cold
src/multichain-cli-wdebug
src/multichain-util-wdebug
src/multichaind-wdebug
src/multichaind-cold-wdebug
src/test/test_bitcoin
src/qt/test/test_bitcoin-qt

local/*
openssl*

# autoreconf
Makefile.in
aclocal.m4
autom4te.cache/
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/m4/libtool.m4
build-aux/m4/lt~obsolete.m4
build-aux/m4/ltoptions.m4
build-aux/m4/ltsugar.m4
build-aux/m4/ltversion.m4
build-aux/missing
build-aux/compile
build-aux/test-driver
**/build-aux/config.guess
**/build-aux/config.sub
**/build-aux/depcomp
**/build-aux/install-sh
**/build-aux/ltmain.sh
**/build-aux/m4/libtool.m4
**/build-aux/m4/lt~obsolete.m4
**/build-aux/m4/ltoptions.m4
**/build-aux/m4/ltsugar.m4
**/build-aux/m4/ltversion.m4
**/build-aux/missing
**/build-aux/compile
**/build-aux/test-driver
config.log
config.status
configure
Expand Down Expand Up @@ -115,7 +122,31 @@ qa/pull-tester/run-bitcoind-for-test.sh
qa/pull-tester/tests-config.sh
qa/pull-tester/cache/*
qa/pull-tester/test.*/*
test_filters.sh

!src/leveldb*/Makefile

/doc/doxygen/

# V8
v8build

# Eclipse CDT
.autotools
.cproject
.project
.settings/

# Qt Creator
*.user
*.config
*.creator
*.files
*.includes

.idea/
cmake-build-debug
x86_64-w64-mingw32
*.dll

!depends/clang_fix.config
129 changes: 30 additions & 99 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ MultiChain

[MultiChain](http://www.multichain.com/) is an open source platform for private blockchains, which offers a rich set of features including extensive configurability, rapid deployment, permissions management, native assets and data streams. Although it is designed to enable private blockchains, MultiChain provides maximal compatibility with the bitcoin ecosystem, including the peer-to-peer protocol, transaction/block formats and [Bitcoin Core](https://bitcoin.org/en/bitcoin-core/) APIs/runtime parameters.

MultiChain is licensed under the GPLv3 open source license. We also offer commercial licenses for those wishing to integrate MultiChain into a proprietary software solution.

Copyright (c) 2014-2017 Coin Sciences Ltd
Copyright (c) 2014-2019 Coin Sciences Ltd
License: GNU General Public License version 3, see COPYING

Portions copyright (c) 2009-2016 The Bitcoin Core developers
Expand All @@ -14,29 +12,47 @@ MultiChain is licensed under the GPLv3 open source license. We also offer commer
System requirements
-------------------

These compilation instructions have been tested on Ubuntu 14.04 x64 only.
These compilation instructions have been tested on Ubuntu 16.04 x64 (xenial) and Ubuntu 18.04 x64 (bionic) only.

C++ compilers are memory-hungry, so it is recommended to have at least 1 GB of memory available when compiling MultiChain. With less memory, compilation may take much longer due to swapfile thrashing.


Linux Build Notes (on Ubuntu 14.04 x64)
Linux Build Notes (on Ubuntu 16.04 x64 or later)
=================

Install dependencies
--------------------

sudo apt-get update
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install libboost-all-dev
sudo apt-get install git
sudo apt-get install software-properties-common
sudo apt-get install -y software-properties-common
sudo apt-get install -y build-essential libtool autotools-dev automake pkg-config libssl-dev git python python-pip
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
sudo apt-get install -y libdb4.8-dev libdb4.8++-dev
sudo pip install pathlib2

MultiChain requires Boost version no later than 1.65.

sudo apt-get install -y libboost1.65-all-dev

Clone MultiChain
----------------

git clone https://github.com/MultiChain/multichain.git

Prepare to download or build V8
-------------------

cd multichain
set MULTICHAIN_HOME=$(pwd)
mkdir v8build
cd v8build

You can use pre-built headers and binaries of Google's V8 JavaScript engine by downloading and expanding [linux-v8.tar.gz](https://github.com/MultiChain/multichain-binaries/raw/master/linux-v8.tar.gz) in the current directory. If, on the other hand, you prefer to build the V8 component yourself, please follow the instructions in [V8.md](/V8.md/).

Compile MultiChain for Ubuntu (64-bit)
-----------------------------

cd $MULTICHAIN_HOME
./autogen.sh
./configure
make
Expand All @@ -49,98 +65,13 @@ Notes
* The release is built with GCC after which `strip multichaind` strings the debug symbols, which reduces the executable size by about 90%.


Windows Build Notes (on Ubuntu 14.04 x64)
Windows Build Notes
=====================

Install dependencies
--------------------

sudo apt-get update
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev g++-mingw-w64-x86-64 mingw-w64-x86-64-dev curl
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo apt-get install git
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

Compile MultiChain for Windows (64-bit)
------------------------------

./autogen.sh
cd depends
make HOST=x86_64-w64-mingw32 -j4
cd ..
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32 --enable-cxx --disable-shared --enable-static --with-pic
make

Notes
-----

* This will build `multichaind.exe`, `multichain-cli.exe` and `multitchain-util.exe` in the `src` directory.
Please see the instructions in [win.md](/win.md/) to build MultiChain for use with Windows.


Mac Build Notes (on MacOS Sierra)
================

Install dependencies
--------------------

Install XCode and XCode command line tools
Install git from git-scm
Install brew (follow instructions on brew.sh)
brew install autoconf automake berkeley-db4 libtool boost openssl pkg-config rename

on MacOS High Sierra

brew uninstall boost
brew install boost@1.57
brew link boost@1.57 --force

Prepare for static linking
--------------------------
Apple does not support statically linked binaries as [documented here](https://developer.apple.com/library/content/qa/qa1118/_index.html), however, it is convenient for end-users to launch a binary without having to first install brew, a third-party system designed for developers.

To create a statically linked MultiChain which only depends on default MacOS dylibs, the following steps are taken:

1. Hide the brew boost dylibs from the build system:
rename -e 's/.dylib/.dylib.hidden/' /usr/local/opt/boost/lib/*.dylib

2. Hide the brew berekley-db dylibs from the build system:
rename -e 's/.dylib/.dylib.hidden/' /usr/local/opt/berkeley-db\@4/lib/*.dylib

3. Hide the brew openssl dylibs from the build system:
rename -e 's/.dylib/.dylib.hidden/' /usr/local/opt/openssl/lib/*.dylib

The default brew cookbook for berkeley-db and boost builds static libraries, but the default cookbook for openssl only builds dylibs.

3. Tell brew to build openssl static libraries:
brew edit openssl
In 'def configure_args' change 'shared' to 'no-shared'
brew install openssl --force



Compile MultiChain for Mac (64-bit)
--------------------------

export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
./autogen.sh
./configure --with-gui=no --with-libs=no --with-miniupnpc=no
make

Clean up
--------

rename -e 's/.dylib.hidden/.dylib/' /usr/local/opt/berkeley-db\@4/lib/*.dylib.hidden
rename -e 's/.dylib.hidden/.dylib/' /usr/local/opt/boost/lib/*.dylib.hidden
rename -e 's/.dylib.hidden/.dylib/' /usr/local/opt/openssl/lib/*.dylib.hidden
brew edit openssl
In 'def configure_args' change 'no-shared' to 'shared'

Notes
-----

* This will build `multichaind`, `multichain-cli` and `multichain-util` in the `src` directory.

Please see the instructions in [mac.md](/mac.md/) to build MultiChain for use with MacOS.
Loading