Skip to content
This repository has been archived by the owner on Mar 23, 2023. It is now read-only.

feat: broadcast to multiple peers #937

Merged
merged 20 commits into from Jan 14, 2019
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0e895a8
feat: add broadcast to multiple peers option to broadcastTransaction
ItsANameToo Jan 4, 2019
f49ea45
feat: go over the array response of transactions
ItsANameToo Jan 5, 2019
03c93d0
feat: add translation for new error
ItsANameToo Jan 5, 2019
90d3319
feat: add option to set broadcasting to multiple peers
ItsANameToo Jan 5, 2019
0b6c6c5
feat: use broadcast property for broadcastTransaction function
ItsANameToo Jan 5, 2019
bb3dd01
fix: use peer clientServiceFromPeer for broadcast
alexbarnsley Jan 10, 2019
4a5d515
refactor: default to broadcasting
ItsANameToo Jan 11, 2019
733f1aa
feat: show indication that transaction is being broadcasted
ItsANameToo Jan 11, 2019
cd27238
feat: also broadcast to 5 random peers
ItsANameToo Jan 11, 2019
b5466af
feat: enable broadcasting on v1 networks
ItsANameToo Jan 11, 2019
a23caf3
chore: remove console.log
ItsANameToo Jan 11, 2019
555dc35
Merge branch 'develop' into feat/broadcast-tx
ItsANameToo Jan 11, 2019
3e9e33f
chore: fix lint issue
ItsANameToo Jan 11, 2019
2b589cd
feat: close transaction modal instead of waiting for emitSent
ItsANameToo Jan 11, 2019
25156c1
feat: add seed server peers
ItsANameToo Jan 11, 2019
857fe0a
test: add peer tests
ItsANameToo Jan 11, 2019
f49d3eb
Merge branch 'develop' into feat/broadcast-tx
alexbarnsley Jan 14, 2019
46dffbe
fix: style issues and small improvements
ItsANameToo Jan 14, 2019
cd1e9d0
fix: determine broadcast from wallet's profile
alexbarnsley Jan 14, 2019
625642e
Merge branch 'develop' into feat/broadcast-tx
alexbarnsley Jan 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
48 changes: 48 additions & 0 deletions __tests__/unit/__fixtures__/store/peer.js
Expand Up @@ -40,6 +40,48 @@ const goodPeer3 = {
lastUpdated: null,
isHttps: false
}
const goodPeer4 = {
ip: '4.4.4.4',
host: 'http://4.4.4.4',
port: 4003,
p2pPort: null,
version: '2.0.0',
height: 6030358,
status: 'OK',
os: 'linux',
delay: 345,
isCustom: false,
lastUpdated: null,
isHttps: false
}
const goodPeer5 = {
ip: '5.5.5.5',
host: 'http://5.5.5.5',
port: 4003,
p2pPort: null,
version: '2.0.0',
height: 6030358,
status: 'OK',
os: 'linux',
delay: 345,
isCustom: false,
lastUpdated: null,
isHttps: false
}
const goodPeer6 = {
ip: '6.6.6.6',
host: 'http://6.6.6.6',
port: 4003,
p2pPort: null,
version: '2.0.0',
height: 6030358,
status: 'OK',
os: 'linux',
delay: 345,
isCustom: false,
lastUpdated: null,
isHttps: false
}
const badPeer1 = {
ip: '4.4.4.4',
host: 'http://4.4.4.4',
Expand All @@ -59,12 +101,18 @@ export default [
goodPeer1,
goodPeer2,
goodPeer3,
goodPeer4,
goodPeer5,
goodPeer6,
badPeer1
]

export {
goodPeer1,
goodPeer2,
goodPeer3,
goodPeer4,
goodPeer5,
goodPeer6,
badPeer1
}
19 changes: 18 additions & 1 deletion __tests__/unit/store/modules/peer.spec.js
Expand Up @@ -4,7 +4,7 @@ import Vue from 'vue'
import Vuex from 'vuex'
import apiClient, { client } from '@/plugins/api-client'
import PeerModule from '@/store/modules/peer'
import peers, { goodPeer1, goodPeer2, badPeer1 } from '../../__fixtures__/store/peer'
import peers, { goodPeer1, goodPeer2, goodPeer4, goodPeer5, badPeer1 } from '../../__fixtures__/store/peer'

Vue.use(Vuex)
Vue.use(apiClient)
Expand Down Expand Up @@ -56,11 +56,28 @@ describe('peer store module', () => {
expect(bestPeer).not.toEqual(badPeer1)
})

it('should get peers in random order', () => {
const randomPeers = store.getters['peer/randomPeers']()
expect(randomPeers[0]).toBeOneOf(peers)
const randomPeers2 = store.getters['peer/randomPeers']()
expect(randomPeers).not.toEqual(randomPeers2)
})

it('should get random seed server peer', () => {
const randomSeedPeers = store.getters['peer/randomSeedPeers'](5, 'ark.mainnet')
const randomSeedPeers2 = store.getters['peer/randomSeedPeers'](5, 'ark.mainnet')
expect(randomSeedPeers).not.toEqual(randomSeedPeers2)
})

it('should get & set current peer', async () => {
await store.dispatch('peer/setCurrentPeer', goodPeer1)
expect(store.getters['peer/current']()).toEqual(goodPeer1)
await store.dispatch('peer/setCurrentPeer', goodPeer2)
expect(store.getters['peer/current']()).toEqual(goodPeer2)
await store.dispatch('peer/setCurrentPeer', goodPeer4)
expect(store.getters['peer/current']()).toEqual(goodPeer4)
await store.dispatch('peer/setCurrentPeer', goodPeer5)
expect(store.getters['peer/current']()).toEqual(goodPeer5)
})

it('should return false if no initial peer', () => {
Expand Down
5 changes: 5 additions & 0 deletions config/index.js
Expand Up @@ -8,6 +8,11 @@ exports.NETWORKS = [
require('./networks/devnet.json')
]

exports.PEERS = {
'ark.mainnet': require('./peers/mainnet.json'),
'ark.devnet': require('./peers/devnet.json')
}

exports.ANNOUNCEMENTS = {
rssUrl: 'https://blog.ark.io/feed'
}
Expand Down
26 changes: 26 additions & 0 deletions config/peers/devnet.json
@@ -0,0 +1,26 @@
[{
"ip": "167.114.29.51",
"port": 4003,
"isHttps": false,
"version": "2"
}, {
"ip": "167.114.29.52",
"port": 4003,
"isHttps": false,
"version": "2"
}, {
"ip": "167.114.29.53",
"port": 4003,
"isHttps": false,
"version": "2"
}, {
"ip": "167.114.29.54",
"port": 4003,
"isHttps": false,
"version": "2"
}, {
"ip": "167.114.29.55",
"port": 4003,
"isHttps": false,
"version": "2"
}]