Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit 631b4a7

Browse files
committed
Merge branch 'develop' of github.com:input-output-hk/cardano-sl into faucet
2 parents 49b37b3 + 836ed9b commit 631b4a7

File tree

290 files changed

+4934
-2749
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

290 files changed

+4934
-2749
lines changed

CHANGELOG.md

+97-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,104 @@
11
# CHANGELOG
22

3-
## Cardano SL 1.2.1 (Mainnet)
3+
## Cardano SL 1.3.0
4+
5+
### Features
6+
7+
- #### Cardano wallet API v1 for the exchanges
8+
A subset of endpoints from the Cardano wallet API, used by cryptocurrency exchanges, was moved to the new
9+
Cardano REST API v1. The remaining endpoints will move from v0 to v1 in the next iteration of work.
10+
Cryptocurrency exchanges using the API are encouraged to update their integrations and move to API v1
11+
because the old API is now regarded as deprecated and will be removed in future versions. (CBR-101)
12+
13+
- #### Subscription status added to node information
14+
The endpoint that provides information about the node (`/api/v1/node-info`) was expanded to include
15+
information about the node subscription status, which can be used to check if the Cardano node is
16+
connected to the network or not. (CBR-186)
17+
18+
- #### Improved error message for missing charset in API calls
19+
The generic message returned from Cardano node endpoint calls when the charset was not specified is replaced with
20+
a more descriptive error message to help users of the API troubleshoot the problem. (Wallet Backend - CBR-223)
21+
22+
- #### Support for sending raw data on the network
23+
It is now possible to send raw, CBOR serialized data to the network using the diffusion layer. Previously, the data
24+
had to be serialized before sending it to the network, which had a negative impact on performance. (CBR-277)
25+
26+
### Specifications & documentation
27+
28+
- #### Formal specification for new wallet backend
29+
The formal specification of a wallet for Cardano (or any UTXO-based cryptocurrency) has been written and it is
30+
available [here](https://cardanodocs.com/technical/formal-specification-for-a-cardano-wallet/). (CBR-60)
31+
32+
- Feedback about the current Wallet API has been collected from Exchanges (CBR-104).
33+
34+
- Complete Peer Discovery (P2P) design (CDEC-157).
35+
36+
- Specification of shared seed generation via VSS (CDEC-180).
37+
38+
- Specification of Randomness Generation (CDEC-208).
39+
40+
- As-is specifications of ATRedeem addresses (CDEC-366).
41+
42+
### Fixes and improvements
43+
44+
- #### Performance improvements for sending and receiving blocks
45+
Sending and receiving blocks on the network now works better because of the following changes. First,
46+
deserialization performance has been improved by optimizing memory usage. Next, blocks are now downloaded
47+
concurrently without batching. Finally, block traversal is optimized by the introduction of 'forward links' which
48+
remove the need for header retrieval and serialization. (CDEC-49)
49+
50+
- #### Optimised block storage
51+
Block storage is now optimized by consolidating block and undo data in a single file. This change reduces
52+
disk use and improves performance when reading and writing blocks. In later Cardano versions, much greater
53+
optimizations for the storage of blocks will be introduced, so this is only an interim solution. (CDEC-293)
54+
55+
- #### High (and recurrent) I/O traffic in wallet
56+
I/O spikes in traffic were being caused by large logs being flushed. This issue has been fixed. (CBR-83)
57+
58+
- #### Failure to reconnect to the network
59+
Due to improper handling of DNS failures, Cardano node would sometimes fail to reconnect to the network after an
60+
internet connection was interrupted and would need to be restarted. This issue has been fixed. (CDEC-259)
61+
62+
- #### Wrong time difference calculation between user’s computer and the network
63+
The endpoint (`/api/settings/time/difference`) for calculating the time difference between a user’s computer and
64+
Cardano network was returning an incorrect value in some cases. This was because the calculation was not properly
65+
handling the time needed to request current time from NTP servers and to get the response. As a result, some Daedalus
66+
users were prevented from using their wallet since Daedalus cannot be used if there is a time difference of more
67+
han 15 seconds. This issue has been fixed. (TSD-42)
68+
69+
### Testing
70+
71+
- Implement WalletActiveLayer & WalletPassiveLayer for wallet testing purposes (CBR-163).
72+
73+
- Add integration deterministic tests for the Transaction endpoints (CBR-184).
74+
75+
### Chores
76+
77+
- Back port Timer to Pos.Diffusion.Subscription.Common (CDEC-243).
78+
79+
- Message size limits should not be configurable (CDEC-260).
80+
81+
- Upgrade to GHC 8.2.2 (CBR-51).
82+
83+
- Fix AppVeyor hard limitation on Windows (CBR-268).
84+
85+
- Fix tmux versions in demo-script (CO-295).
86+
87+
- Clean script fails if file is missing (CO-316).
88+
89+
## Cardano SL 1.2.1
490

591
Bug fix release.
692

7-
- The wallet launcher now uses a lock file. This prevents problems on
93+
- The Wallet Launcher now uses a lock file. This prevents problems on
894
Windows if upgrading Daedalus while the old version is still
995
running. (DEVOPS-872)
1096

1197
- Fix character encoding error in the connect script of the Docker
1298
image. (DEVOPS-877)
1399

14100

15-
## Cardano SL 1.2.0 (Mainnet)
101+
## Cardano SL 1.2.0
16102

17103
These are the most important code changes which were included in release 1.2.0.
18104

@@ -38,14 +124,20 @@ These are the most important code changes which were included in release 1.2.0.
38124

39125
- Add sorting and filtering capabilities to the wallet V1 API (CBR-20).
40126

127+
### Specifications & documentation
128+
129+
- Document the new Wallet V1 API (CBR-102, CBR-183, CO-105 & CBR-278).
130+
131+
- Write a devops guide for the Exchanges (CBR-137).
132+
41133
### Bug fixes
42134

43135
- Fix wallet creation and backup when there are non-latin characters in wallet name (R120-4).
44136

45137
- Fix issue where Daedalus remains stuck at "Connecting to network..." screen after updating version (CBR-282, R120-17).
46138

47139

48-
## Cardano SL 1.1.1 (Mainnet)
140+
## Cardano SL 1.1.1
49141

50142
Bug fix release.
51143

@@ -56,7 +148,7 @@ Bug fix release.
56148
infrastructure, which fixes some issues in receiving bug reports.
57149

58150

59-
## Cardano SL 1.1.0 (Mainnet)
151+
## Cardano SL 1.1.0
60152

61153
Most important code changes which made to release 1.1.0.
62154

appveyor.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ before_test:
7373

7474
# Install rocksdb
7575
- git clone https://github.com/facebook/rocksdb.git --branch v4.13.5
76-
- ps: Start-FileDownload 'https://ci.appveyor.com/api/buildjobs/kbpteb8j55p6sa2m/artifacts/rocksdb%2Fbuild%2FRocksdb.zip' -FileName rocksdb.zip
76+
- ps: Start-FileDownload 'https://s3.eu-central-1.amazonaws.com/ci-static/serokell-rocksdb-haskell-325427fc709183c8fdf777ad5ea09f8d92bf8585.zip' -FileName rocksdb.zip
7777
- 7z x rocksdb.zip
7878

7979
# CSL-1509: After moving the 'cardano-sl' project itself into a separate folder ('lib/'), the 'cardano-text.exe' executable fails on AppVeyor CI.

auxx/Main.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import Universum
77
import Control.Exception.Safe (handle)
88
import Data.Maybe (fromMaybe)
99
import Formatting (sformat, shown, (%))
10-
import Mockable (Production (..), runProduction)
1110
import qualified Network.Transport.TCP as TCP (TCPAddr (..))
1211
import qualified System.IO.Temp as Temp
1312
import System.Wlog (LoggerName, logInfo)
1413

1514
import qualified Pos.Client.CLI as CLI
1615
import Pos.Context (NodeContext (..))
1716
import Pos.Core (ConfigurationError, epochSlots)
17+
import Pos.Core.Mockable (Production (..), runProduction)
1818
import Pos.Crypto (ProtocolMagic)
1919
import Pos.DB.DB (initNodeDBs)
2020
import Pos.Infra.Diffusion.Types (Diffusion, hoistDiffusion)

auxx/cardano-sl-auxx.cabal

-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ library
5656
, cardano-sl-db
5757
, cardano-sl-generator
5858
, cardano-sl-infra
59-
, cardano-sl-networking
6059
, cardano-sl-ssc
6160
, cardano-sl-txp
6261
, cardano-sl-update
@@ -133,7 +132,6 @@ executable cardano-auxx
133132
, cardano-sl-core
134133
, cardano-sl-crypto
135134
, cardano-sl-infra
136-
, cardano-sl-networking
137135
, cardano-sl-txp
138136
, cardano-sl-util
139137
, log-warper

auxx/src/AuxxOptions.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ data AuxxStartMode
4848

4949
data AuxxAction
5050
= Repl
51-
| Cmd { cmd :: !Text }
51+
| Cmd !Text
5252

5353
----------------------------------------------------------------------------
5454
-- Parse action

auxx/src/Command/Tx.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ import qualified Data.Text as T
2828
import qualified Data.Text.IO as T
2929
import Data.Time.Units (Microsecond, fromMicroseconds, toMicroseconds)
3030
import Formatting (build, int, sformat, shown, stext, (%))
31-
import Mockable (Mockable, SharedAtomic, SharedAtomicT, concurrently,
32-
currentTime, delay, forConcurrently, modifySharedAtomic,
33-
newSharedAtomic)
3431
import System.Environment (lookupEnv)
3532
import System.IO (BufferMode (LineBuffering), hClose, hSetBuffering)
3633
import System.Wlog (logError, logInfo)
@@ -44,6 +41,9 @@ import Pos.Core (BlockVersionData (bvdSlotDuration),
4441
deriveFirstHDAddress, makePubKeyAddress, mkCoin)
4542
import Pos.Core.Configuration (genesisBlockVersionData,
4643
genesisSecretKeys)
44+
import Pos.Core.Mockable (Mockable, SharedAtomic, SharedAtomicT,
45+
concurrently, currentTime, delay, forConcurrently,
46+
modifySharedAtomic, newSharedAtomic)
4747
import Pos.Core.Txp (TxAux (..), TxIn (TxInUtxo), TxOut (..),
4848
TxOutAux (..), txaF)
4949
import Pos.Crypto (EncryptedSecretKey, ProtocolMagic, emptyPassphrase,

auxx/src/Mode.hs

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import Control.Lens (lens, makeLensesWith)
2626
import Control.Monad.Reader (withReaderT)
2727
import Control.Monad.Trans.Resource (transResourceT)
2828
import Data.Conduit (transPipe)
29-
import Mockable (Production)
3029
import System.Wlog (HasLoggerName (..))
3130

3231
import Pos.Block.BListener (MonadBListener (..))
@@ -44,6 +43,10 @@ import Pos.Core (Address, HasConfiguration, HasPrimaryKey (..),
4443
IsBootstrapEraAddr (..), deriveFirstHDAddress,
4544
largestPubKeyAddressBoot, largestPubKeyAddressSingleKey,
4645
makePubKeyAddress, siEpoch)
46+
import Pos.Core.JsonLog (CanJsonLog (..))
47+
import Pos.Core.Mockable (Production)
48+
import Pos.Core.Reporting (HasMisbehaviorMetrics (..),
49+
MonadReporting (..))
4750
import Pos.Core.Slotting (HasSlottingVar (..), MonadSlotsData)
4851
import Pos.Crypto (EncryptedSecretKey, PublicKey, emptyPassphrase)
4952
import Pos.DB (DBSum (..), MonadGState (..), NodeDBs,
@@ -52,12 +55,9 @@ import Pos.DB.Class (MonadDB (..), MonadDBRead (..))
5255
import Pos.Generator.Block (BlockGenMode)
5356
import Pos.GState (HasGStateContext (..), getGStateImplicit)
5457
import Pos.Infra.Network.Types (HasNodeType (..), NodeType (..))
55-
import Pos.Infra.Reporting (HasMisbehaviorMetrics (..),
56-
MonadReporting (..))
5758
import Pos.Infra.Shutdown (HasShutdownContext (..))
5859
import Pos.Infra.Slotting.Class (MonadSlots (..))
5960
import Pos.Infra.Util.JsonLog.Events (HasJsonLogConfig (..))
60-
import Pos.Infra.Util.TimeWarp (CanJsonLog (..))
6161
import Pos.Launcher (HasConfigurations)
6262
import Pos.Ssc.Types (HasSscContext (..))
6363
import Pos.Txp (HasTxpConfiguration, MempoolExt, MonadTxpLocal (..),

auxx/src/Plugin.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import Control.Monad.Except (ExceptT (..), withExceptT)
1818
import Data.Constraint (Dict (..))
1919
import Data.Time.Units (Second)
2020
import Formatting (float, int, sformat, (%))
21-
import Mockable (Delay, Mockable, delay)
2221
import System.IO (hFlush, stdout)
2322
import System.Wlog (CanLog, HasLoggerName, logInfo)
2423

24+
import Pos.Core.Mockable (Delay, Mockable, delay)
2525
import Pos.Crypto (AHash (..), ProtocolMagic, fullPublicKeyF,
2626
hashHexF)
2727
import Pos.Infra.Diffusion.Types (Diffusion)

binary/cardano-sl-binary.cabal

+5
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,15 @@ library
3535
, formatting
3636
, hashable
3737
, lens
38+
, micro-recursion-schemes
39+
, mtl
3840
, safecopy
3941
, safe-exceptions
4042
, serokell-util
4143
, tagged
4244
, template-haskell
4345
, text
46+
, text-format
4447
, th-utilities
4548
, time-units
4649
, universum
@@ -86,6 +89,7 @@ test-suite test
8689
other-modules:
8790
Spec
8891
Test.Pos.Binary.BiSerialize
92+
Test.Pos.Binary.BiSizeBounds
8993
Test.Pos.Binary.Cbor.CborSpec
9094
Test.Pos.Binary.Helpers
9195
Test.Pos.Binary.Helpers.GoldenRoundTrip
@@ -120,6 +124,7 @@ test-suite test
120124
, quickcheck-instances
121125
, safecopy
122126
, serokell-util >= 0.1.3.4
127+
, tagged
123128
, template-haskell
124129
, text
125130
, formatting

0 commit comments

Comments
 (0)